So basically, MIDI in SS14 works like this: We have x buffers of y length each. MIDI synthetizing/rendering occurs in another thread, on a loop. We fill as many buffers as there are available in each iteration. This means that there will always be some latency when using MIDI input. OpenAL plays back the buffers in real time as long as there’s one buffer filled with data. But what happens if OpenAL plays back buffers much faster than we can fill with data? The audio becomes crunchy.
Any soundfonts found in
Resources/MidiCustom will be loaded automatically into new MIDI renderers. This means you can easily create your own custom instruments to be used in-game! Just remember not to use bank 0, as it is reserved for General MIDI 1.
Currently, we have a custom soundfont called
Ideally, you should add new instruments to it instead of making new soundfonts for adding single instruments.