Currently, TinyMidiLoader doesn't recognize MIDI port Meta Event, and TinySoundFont also don't have related support as well, which can cause incorrect playback in some MIDI file which uses such meta event.
Some example MIDI files that can be used to test:
Add parsing for that meta event in tml.h is (or might be) simple...
switch (meta_type)
{
case TML_PORT:
if (buflen != 1) { TML_WARN("Invalid length for Port meta event"); return -1; }
evt->type = TML_PORT;
evt->key = metadata[0]; // simply store it somewhere for later use..?
break;
// ...
...but I can't find midi port-related support in tsf.h is that means this will be hard to implement in tsf?
Additional Context
I previously tested some other players to check if they support this meta event, the result:
There was a related discussion in FluidSynth as well, see FluidSynth/fluidsynth#1352 and FluidSynth/fluidsynth#1361.
Currently, TinyMidiLoader doesn't recognize MIDI port Meta Event, and TinySoundFont also don't have related support as well, which can cause incorrect playback in some MIDI file which uses such meta event.
Some example MIDI files that can be used to test:
Add parsing for that meta event in
tml.his (or might be) simple......but I can't find midi port-related support in
tsf.his that means this will be hard to implement in tsf?Additional Context
I previously tested some other players to check if they support this meta event, the result:
There was a related discussion in FluidSynth as well, see FluidSynth/fluidsynth#1352 and FluidSynth/fluidsynth#1361.