WohlSoft / SDL-Mixer-X

SDL Mixer X (Or "MixerX" shortly) - An audio mixer library based on the SDL library, a fork of SDL_mixer
https://wohlsoft.github.io/SDL-Mixer-X/
Other
102 stars 26 forks source link

Idea for enhancement: abilty to toggle/choose between emulation cores for ADLMIDI/OPNMIDI #12

Closed freq-mod closed 6 years ago

freq-mod commented 6 years ago

Since both ADLMIDI and OPNMIDI support two cores (less acurate but faster DOSbox/Gens and more accutare but resource-hungry Nuked cores) would it be possible to have the option for choosing between them? sorry if it has more to do with audiocodecs rather than mixer library itself

Wohlstand commented 6 years ago

Those features are must be implemented on those libraries http://github.com/Wohlstand/libADLMIDI and http://github.com/Wohlstand/libOPNMIDI are mainstream repositories of those codecs. AudioCodecs is just a collection of codecs are copied from different repositories and combined into united CMake/QMake build project. Any changes on main codecs I applying on original repos and then I coping tested/stable changes into AudioCodecs for final testing as "how it will work in SDL Mixer X".

For now ADLMIDI by default uses Nuked for PC while OPNMIDI uses Gens everywhere (As Nuked OPL3 has acceptable performance to work fine on PCs and Nuked OPN2 is much more heavy which gives inability to simulate more than 3~4 chips on same CPU core without getting of choppy output).

Anyway I have a plan to provide ability to support more than one emulation core with ability to switch it in runtime rather having separate builds for each emulation core. For now there are chooseable on compilation only yet.

freq-mod commented 6 years ago

As of 0e63061, is there a way to change emulation core? I can't find anything in PGE MusPlay/Simple SDL2 Mixer X Music player I'm asking because I don't know whether to close this issue or not

Wohlstand commented 6 years ago

Yes, now both libADLMIDI and libOPNMIDI are supporting emulator switching and I gonna to bind those options to SDL Mixer X API probably today after job. There are wasn't binded into SDL Mixer X API yet, but libraries are already supporting emulator switching by theme selves.

freq-mod commented 6 years ago

looks like emulaton core choice is possible by editing raw MIDI arguments, so it's done I guess.

Wohlstand commented 6 years ago

The con of MIDI raw arguments now is no way to pass custom bank path I wasn't provided yet... But yeah, raw MIDI arguments are allowing most of ADL/OPN-MIDI features setup include the emulator setup. :fox_face: