I’m trying to make SDL_mixer use bundled libtimidity and it has been a nightmare so far…
Mix_OpenAudio(44100, MIX_DEFAULT_FORMAT, 2, 4096);
auto music = Mix_LoadMUS("sample.midi");
This code works perfectly fine for Native MIDI driver but not for Timidity.
I tried several config files, midi files, different parameters for Mix_OpenAudio etc.
Mix_GetError() returns “”, config file is read properly, actual MIDI decoding is running (TIMIDITY_GetSome is called from audio thread) but I hear no sound.
What am I missing? Can you share a working sample please?
I didn’t try, but here’s the answer from readme:
To play MIDI files using Timidity, you’ll need to get a complete set of GUS patches from:
and unpack them in /usr/local/lib under UNIX, and C:\ under Win32.
Not sure if it’s the same, but in SDL_sound (a different library) the timidity is not the actual Timidity, but a cutdown sdl adaptation, and it doesn’t support all possible configs some patches have, have you really used the Gravity UltraSound patches or some other?
Honestly, I gave up on Timidity long time ago, so I can’t test it now.
These lines came from SDL_mixer’s readme, so it should be reliable.