Micro scale supporting the sustain pedal

When a keyboard sends the sustain on/off MIDI message, Micro Scale repeats it on the exact same channel. It effectively prevents a sustain pedal from working via Micro Scale.

To make the sustain pedal work, a sustain message would need to be replicated at once to all enabled channels in Micro Scale. Can it be currently done with some combination of pipes? If not, would it be possible to add a respective option to Micro Scale?

It looks like for CC sustain to work when using with pipes that do channel dispatching, like Dispatcher and Micro Scale do, it would have to be multiplied and sent to every channel being used for dispatching, this can already be done by using a couple of Transform pipes, making use of ‘work with’ and ‘set channel to’ arguments to duplicate the sustain CC to the same channels as used by Micro Scale.

Alternatively, you could use Midihub’s Sustain pipe before or after Micro Scale pipe and map it’s ‘on’ param to the sustain CC.

In my opinion, this shouldn’t be handled by Dispatcher or Micro Scale pipes themselves, as there could be more CCs that should be getting duplicated (like volume or pan), but at the same time, some devices might not support those CCs, or they can be used for being mapped to something else, and if Dispatcher or Micro Scale would start duplicating those messages by default to every channel used, it may cause some confusion on where they’re coming from. Configuring every kind of CC within the pipe for enabling / disabling duplication for every channel would quickly become cumbersome. So I think the above alternatives should be good enough to handle this case.

Hi Giedrus. You suggest that making Micro Scale a configurable filter would be “cumbersome”. I would rather want it to not effectively be a filter at all. A channel dispatcher which dispatches all per-channel messages, just this.

Also, you say that all that filtering may be required in some hypothetical case (did you actually see any such actual application?) In that case, I would suggest using a CC filter. So that a channel dispatcher is a channel dispatcher and a CC filter is a CC filter. Just this. Is it “cumbersome”?

What you propose instead is a number of message modifiers to be used together as a kind-of half-channel dispatcher, the rest being done by Micro Scale. This requires more than a dozen pipes, each with more than a dozen options. About a hundred of editions for a simple effect and they cannot be appended to another preset because no copy&paste and/or presets are not saved in a clear text form. And it does not follow the channel selection in Micro Scale.

Don’t get me wrong. I find Midihub a very solid option and the discussed functionality could actually be implemented. And I understand that you may want to focus on the more “hub” functionality of Midihub. It would well do as one even without Micro Scale. I attach the respective patch in case someone finds it useful.

MicroScale+CC.mhp (905 Bytes)

1 Like

You have to keep in mind that “Sustain” CC must be multiplied to every channel that Micro Scale pipe is using, regardless of which channel the last note is, so the ‘sustain’ operates correctly. If it’s not just Sustain, but all the CCs, it would simply run out of the available MIDI bandwidth and would start to lag. That’s why doing the message multiplication explicitly makes it more obvious that it’s happening.

A pipe that copies messages to multiple channels may be useful in this circumstance, so it doesn’t take many Transforms.

Is there a pipe which copies messages to multiple channels?

Not yet, but in this case it would be a valid use case for it.