libsdl-org / SDL_mixer

An audio mixer that supports various file formats for Simple Directmedia Layer.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Improving MIDI playback support

peteroupc opened this issue · comments

I post the following issue to summarize ways to improve MIDI playback support in this library. Some of these may be implemented already or the implementation may be in progress.

  • 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++ patch format (.cfg). (The source code in libADLMIDI, libOPNMIDI, and OPL3BankEditor may be useful here.)
    • playmus2 already supports SoundFont 2 via an environment variable, but selecting the instrument sound bank should also be a command line option, not just an environment variable (see also #233).
  • Support popular loop-point conventions found in MIDI files (see also #101).
  • Support seeking of MIDI files such that a pause and resume function can be offered by a media player (see also #519).

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.