mmontag / chip-player-js

Web-based music player for a variety of video game and chiptune music formats.
https://chiptune.app
GNU General Public License v3.0
324 stars 17 forks source link

Discrete voice audio routing #23

Open javigaralva opened 4 years ago

javigaralva commented 4 years ago

Export channels to wav files could be a nice feature. Could be possible to do that? Currently I try to do this job with RYMCast, but the channels completely panned to the right, generate an empty wav file.

Thanks for this amazing project

mmontag commented 2 years ago

Basically need 2 things in order to do this...

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 :)

mmontag commented 2 years ago

It looks like Modizer only does this where the engine already supports it.

https://github.com/yoyofr/modizer/blob/master/src/ModizMusicPlayer.mm

see

edit: actually Modizer makes deep modification to emulation cores:

https://github.com/yoyofr/modizer/commit/cf117601dd9909b1635b99650df6537f0450b92c#diff-7390462695712dbe8460edcaab01bd6597b9d920f20a15211b0172acc8ceb4df

mmontag commented 10 months ago

Furnace Tracker provides another example of emulation cores being modified to expose discrete channel output:

https://github.com/search?q=repo%3Atildearrow%2Ffurnace+oscilloscope&type=commits&s=committer-date&o=asc

mmontag commented 6 months ago

See also: https://github.com/tildearrow/furnace/discussions/1361 https://github.com/tildearrow/furnace/discussions/1355