ppmdu
ppmdu copied to clipboard
AudioUtil: Use of MIDI Channel 10 is incompatible with (at least some) MIDI synths and decoders
Some of the tracks I have exported appear to have missing instruments when attempting to play them back. Very noticeable on 7_B_MAP_GUILD_01
where channel 10 is mapped to intro trumpet track. Swapping channel 1 (the flute/whistle) with channel 10 causes that track to become audible but then track 1 becomes silent, so it's not a problem with the soundfont or the track data itself.
Having looked into it, this seems to be because of how track 10 is usually reserved for percussions, so instruments on those tracks are assumed to be in a separate soundbank which is not populated in the generated soundfont. That limitation is noted in the README for the -gm
option, but it seems like most MIDI software (at least what I could get my hands on) will apply that rule regardless. Shouldn't ppmdu avoid using channel 10 whenever possible?
Tested with FluidSynth (on Linux), with the MIDI importer for OpenMPT and with a MIDI piano. Fluidsynth and OpenMPT would fail to load/find the associated samples and the MIDI piano did nothing.
EDIT: Just noticed that comment, looks like you tought of that too, but even as a solution for General MIDI it has enough issues that you'd want to phase it out eventually... https://github.com/PsyCommando/ppmdu/blob/1a9fac662d4d43e02b9a3462a09f8c6a9583637a/src/dse/dse_interpreter.cpp#L1139-L1145