Can Midihub do this?

Hello, I am hoping that Midihub can help with something I want to do. I have many hardware 80s synths that I want to use CC66 sostenuto with but none of them support it. Also, I am using a guitar controller so each string is sending a different MIDI channel, even to the same synth (Mono Mode 4). So can Midihub be set up to do something like this:

  • a pipe that when it receives a controller will then send and hold CC64 for all notes being played at that time on different channels, while also
  • blocking any newer incoming MIDI notes on those channels from going out the output port

Example #1 - say that I

  • played a note on channel 1, another on channel two 2 and another on channel 3
  • while those notes are sounding, I send a controller, say CC64 with a value 127
  • at that point, the Midihub allows all that data to go through and the receiving synth will sustain those 3 notes on those 3 channels BUT
  • any additional note-on commands that are sent on those channels are blocked from going out of the Midihub output port until I release the footswitch and stop sending CC64.

Example #2 - say that I

  • play a three note chord on a keyboard controller, all three notes going out on a single MIDI channel, say channel 1
  • while those three notes are being held down, I send a controller, say CC4 with a value 127
  • at that point, I release the three keys but the Midihub does not allow the note-off (or note-on with a value of 0) commands to go out of the port, so those three notes just sustain as long as the synth envelope is programmed to
  • any additional notes played are allowed through in a normal manner

The first example is hopefully more possible because it is the one that I really want. The second example is possibly more difficult but it is not as important, I only ask because it is still interesting. Thank you and kind regards, Scott Loiselle

take notice, I did not quote the blocking part; not everything is possible

yep! Sustain Pipe can do it :wink:
Two modes available (ALL and CHORD) just midi map a control to “Sustain On”

DISPATCHER + CH FILTER allows some clever things going on… although not everything…


There is a sustain pipe that can be used for emulating the sustain behavior. For note limiting I think we could add a new pipe, which would simply let through some configured number of notes, and not allow new ones until all of the original notes are released (or at least if there’s no slot available). An ‘inverse’ flag could be used in the Note Limit pipe in another pipeline to be able to processes notes above that limit in some different way.