I am writing music for organ in LilyPond and listening to it via the LilyPond MIDI output through Qsynth/FluidSynth. I've been using Fluid_R3, but it only has a very generic (and not very convincing) "Church Organ" patch. I recently found JEUX, a soundfont with all sorts of organ stops, and I'd like to export a synthesis that works like a real organ, with multiple patches registered on each channel.

Is there a straightforward way to configure FluidSynth (or a similar software synth) to apply multiple patches on a single MIDI channel? If so, would I have to do something special in LilyPond for its MIDI output to work? (I could do something like multiple exports and add the sound files together, but that's a lot of complication!)

  • Given the synth you're using, you're are using gnu/Linux right?
    – Tom
    Mar 31, 2021 at 6:52
  • @Tom Yes, I'm on GNU/Linux. FluidSynth because it's something of a default, but I'm open to alternatives. Mar 31, 2021 at 15:05
  • Maybe qmidiroute could help you? That's a midi utility that can route midi signals depending on conditions, for instance to another channel or things like that... I did not understand exactly what you wanted to do but Could be worth a try! You can intercalate it between LP and qsynth.
    – Tom
    Mar 31, 2021 at 16:43
  • @Tom Hmm, checking that out! I am wanting to do this in CLI mode to produce a "recording"; do you know offhand whether it would work sensibly in that context? Mar 31, 2021 at 17:12
  • Cli? Command line? If so, all these tools are compatible for that! That's part of the alsa library suite.
    – Tom
    Mar 31, 2021 at 17:55

1 Answer 1


Speaking in principle, MIDI specifications allow only one patch per channel. You can change the patch as often as you want, you can set a different patch before every note you play, but a channel can only have a single patch at any time.

  • I'm not the downvoter, but while MIDI can send Program Change commands, I can certainly imagine a means to provide a channel mapping that would be used instead. Program Change is a side-channel to the actual instrument events. Mar 31, 2021 at 4:27
  • 1
    @chrylis-cautiouslyoptimistic- Program Change is an actual instrument event, just like Note On. "The Program Change message is used to specify the type of instrument which should be used to play sounds on a given Channel." midi.org/midi-articles/about-midi-part-3-midi-messages MIDI channel number is a part of the Program Change message. Mar 31, 2021 at 12:28

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.