Standard MIDI file playback using instrument sound banks
Opened this issue · 2 comments
peteroupc commented
I post the following issue to summarize ways to improve MIDI playback support in this library.
- Support software synthesis of MIDI data stored in standard MIDI files (SMF, .mid), using instrument sound banks in SoundFont 2 (.sf2), downloadable sounds (.dls), and in OPL2, OPL3, and other FM synthesis sound banks, and possibly also in Timidity++/UltraSound patch format (.cfg). (The source code in fluidsynth, libADLMIDI, libOPNMIDI, and OPL3BankEditor may be useful here, but review the licenses for these projects.)
- Support popular loop-point conventions found in MIDI files (see also libsdl-org/SDL_mixer#101).
- Support seeking of MIDI files such that a pause and resume function can be offered by a media player.
Just as an aside, a public-domain music synthesis library and instrument banks would greatly help improve MIDI playback support across the open-source ecosystem; however, I don't insist on that for purposes of this issue.
nlaha commented
These are some great suggestions; I'm currently prioritizing features most useful for rhythm game developers where MIDI is usually synced to a pre-rendered audio file. That said, adding a built-in MIDI synthesizer (for SoundFont files) would be extremely interesting and I'll consider adding it if I have time.
filipworksdev commented
+1 for SoundFont sf2 support!