This New Features helps me to understand midi better.
My background is in recording audio. The terms patch, banks in midi are totally strange to me. The only thing I understand is the 16 program channels. But now, with the new features added in Ardour 5.12 the “New patch selector dialog for MIDI tracks”, I’m very well aware of what wonderful features Midi has.
This has also impressed me with the built-in General MIDI Synth. Always thought that these is a toys sound synth. But nothing is less true. This instrument sounds very good. The Patch selector allows you to open Patch Banks where I get more instruments. Many hiding under names like Pgm-1 to Pgm-128.
My question is, can we rename this Pgm’s? I also do not know what the function of MSB is?
Who made this beautiful General MIDI Synth in Ardour, I would like to thank you for his work. And how were the sounds made in General MIDI Synth? Are these samples?
Now I have no further need to work with A-Fluid plugin. Because this General MIDI Synth gives me enough instrument capabilities.
For various technical reasons (MIDI is early 80’s) General MIDI Instrument selection is organized in 16384 banks * 128 patches (sometimes called programs).
Since everything MIDI is 7bit, those 16K banks are two 7bit numbers: 7 Most Signification Bits (MSB) , 7 Least Significant Bits (LSB) 2^7 * 2^7 = 16384. times 2^7 patches ~ 2million total.
One motivation for this was that loading a new bank can take a very long time (think 80’s floppy disks or ROM cartridges), but switching between the patches in a bank should be instantaneous when playing. For that reason some instrument-patches are duplicated across banks.
Fast forward to 2017 and you can load gigabytes of samples into RAM, switch between banks in an instant and most synths can also use different banks per MIDI-channel…
In case of the GMSynth which is bundled with Ardour, there are no additional instruments hiding under un-named “Pgm-XX”. When you select a program that’s not explicitly assigned to any sound, the behavior is undefined. It could be “no change” to current sound or fall back to “bank 1” or select some other existing bank/program. GMSynth aims to be deterministic: Even if you select some un-assigned bank+program, next time you load the session, you’ll get that sound again. You can currently not re-name those.
The GMSynth which comes with Ardour is basically a special cased a-fluidsynth that only ever uses the .sf2 from http://www.schristiancollins.com/generaluser.php (yes, they’re samples).
We stand on the shoulders of giants: fluidynth + S.Chris Collins work. Last mile integration as plugin: https://github.com/x42/gmsynth.lv2
I’m glad that you like it and find it useful. That makes the whole thing worthwhile.
Wow! I’ve just discovered the bundled GMSynth as a result of this post. Thanks!
I’ve recently switched from an AV Linux configuration of Ardour to WIndows 7, and I’ve been pulling my hair out trying to get the Windows version of Linux Sampler working in this environment.
I’m very happy to discover this bundled set of soundbanks as this will get me up an running until I can figure out how to load my own library of sf2 and Gig samples …
Great work on the latest build!
I’ve been able to create a project, add a MIDI track with the GMSynch and use the virutal keyboard to play back the sounds.
I’m currently stuck on getting my MIDI keyboard to control it though. I don’t want to hijack this thread since this should remain a kudos to all the work in getting this functionality native into Ardor (even on Windows!) so if someone could just point me to any reading materials for how to go about configuring MIDI input devices to control the GMSynth, that would be much appreciated. I’ll start a new thread if I continue to run into issues.
Thanks for the MIDI improvements in 5.12 though … looks great!
… and I’ve actually just solved my problem controlling the virtual keyboard with my hardware synth …
I had created a new project with the ASIO driver as opposed to MME … i thought I read somewhere that connections in an ASIO project would “just work” without needing to manually connect anything … I’m wondering if that only related to audio connections and not MIDI …
at any rate … i created a new MIDI track, added the General MIDI Synth, right-clicked on the new track header, selected Inputs, selected the Hardware tab, and made sure to click the connection between System and MIDI In … my keyboard is now able to control the General MIDI synth and my latency is down to 5ms, so live playing/recording is possible …
off to explore all the new sounds now …
very happy with this functionality
Thank you for your comprehensive explanation. You made it understandable for me. I appreciate you taking so much effort to make it clear.