Comments (4)
Basically need 2 things in order to do this...
- refactor audio output to a generic interface, which could be either a file writer or WebAudio context. Medium difficulty.
- expose discrete voices (write to an audio buffer for each voice) outside of each player engine. The player engines are all designed for internal mixing, and write to stereo audio buffer only. Very difficulty.
Getting discrete voices in some common interface would have other benefits, like being able to show an oscilloscope for each channel, but it requires modifying the engines. The problem with modifying the engines is that (1) they each do things differently, so the work doesn't scale very well and (2) it makes things (more) brittle since they will diverge from upstream improvements.
I would like to see how Modizer handles this :)
from chip-player-js.
It looks like Modizer only does this where the engine already supports it.
https://github.com/yoyofr/modizer/blob/master/src/ModizMusicPlayer.mm
see
m_voicesdataavail=
m_voice_buff_ana
//copy voice data for oscillo view
edit: actually Modizer makes deep modification to emulation cores:
yoyofr/modizer@cf11760#diff-7390462695712dbe8460edcaab01bd6597b9d920f20a15211b0172acc8ceb4df
from chip-player-js.
Furnace Tracker provides another example of emulation cores being modified to expose discrete channel output:
from chip-player-js.
See also:
tildearrow/furnace#1361
tildearrow/furnace#1355
from chip-player-js.
Related Issues (20)
- Integrate libvgm HOT 1
- Pause button UI HOT 1
- Firefox styles
- tuning issue when playing a .mod HOT 2
- request: developer who can help me ...
- musician playalong mode / voice IDs- ideas HOT 1
- Sega Genesis: can't mute all channels HOT 4
- Invalid MIDIFileHeader : MThd prefix not found HOT 1
- Favorite button heart symbol is not visible in Safari
- Parent directory navigation is broken
- Add opensearch/omnibox integration
- Repeat one not working for local files HOT 2
- Sega 32X PWM channel not working
- extremely high windows sample rates confuse some of the players. HOT 2
- Misidentified midi files.
- Auto fast forward trips midi feedback detection. HOT 2
- Notable missing soundfont HOT 2
- Missing fm bank.
- Error when attempting to play Theme Hospital MIDI files HOT 1
- no credit for the pc beep soundfont
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from chip-player-js.