I am playing with sound fonts and FluidSynth.
First, I installed some General MIDI compatible sound fonts, like:
GeneralUser GM
Freepats
Arachnosoft SoundFont
fluid-soundfont-gm from Debian repo
Then I downloaded some MIDI files which are said to be GM2 compatible. Thus, I thought I can just load those MIDI files in Ardour, add ACE FluidSynth to the MIDI tracks and load a GM2 compatible SF2 soundfont and Ardour will create a pleasant audio. But thats not really the case.
First, I just dragged and dropped the MIDI file onto a MIDI track. From there I needed to move the different MIDI regions to different MIDI tracks. I realised that I do not need to do this when importing the MIDI file with Session > Import. With “Use MIDI tempo map” even the tempo was imported correctly.
So far so good.
But the instruments do not really align with what I expected from the GM2 compatible MIDI files and GM2 compatible soundfonts.
It seems that I have to map the instruments (programs?) to the channels in ACE FluidSynth.
E.g. the percussion track was mapped to Grand Piano which is on C1 on Arachno SF when opening that SF on FluidSynth. The percussion track uses C10.
I then struggled on how to map the instruments properly. I can open the FluidSynth plugin and select an instrument on a channel. When in Edit mode on a track/region, the track shows instrument information as well when hovering with the mouse over the instrument names. This I understand as program change or patch change within a track?
When I change the instrument/channel mapping on the plugin, it is not valid throughout the complete track, right? When I right click on an “program / patch change” flag, drop downs appear with banks and instruments for instrument assignments.
And, when I assign a different instrument during playback, sometimes the instrument does not change. Is this because the playhead did not pass the instrument or program change event?
And when I right click on the track name and select “Patch selector…”, the patch selector dialog opens. How does this dialog relate to the other two possibilities to select assign an instrument?
And finally, how does FluidSynth know that he needs to chat on channel 4? Most likely from the imported MIDI file… on the track the channel is set to 1, shouldnt that reflect channel 4?