Sustaining Chords

I am looking for a way to sustain chords and continue to play over them from my Sylphyo WindSynth. Here is an example, done by a hardware synth with this feature:

I can do the chords, no problem (I have several single-note-to-chords VSTs) … it is the sustain and continue-to-play that begins at 1:18 in the video above …

I do have a hardware sustain pedal that generates CC64 (or any CC I want …). However synths such as SurgeXT seem to implement only a damper pedal and not a Sostenuto, which is what I think I need …

Maybe there’s a fancy binding system? Open to any ideas …

Maybe trigger Pizz midi looper to do it?

1 Like

Hi @ClintGoss!

When I was developing my “All notes off” ReaJS script, I tried the midiSostenuto plugin from pizMIDI and it seemed to work quite well. Anyway, @Ade certainly knows more than me about it.


P.S. Here is the thread about the “All notes off” script and the interaction with midiSostenuto


OK, since you asked Clint …

Here is a take on it using just Cantabile elements. The main part of it is the linked rack you make to control the sostenuto pedal effect. Inside it is composed of all bindings. In state one which is labeled Normal the first 2 bindings set up up what is effectively a Notes Only route. The last binding is set up for a CC66 pedal to toggle the states of the rack, when it’s value = 0 the Normal state is selected

& when it’s = 127 the Hold state is selected. Note that there is a binding that is activated on this route that sends an all notes off message when you change back to the normal state or release the sostenuto pedal.

I set up a song using a single VSTi and did a split and sent the lower range to the chordz VSTi which then sent to the String machine VSTi. On the route I wanted to use for solo over the chords I set the range to avoid conflict with the chordz range and set the route to “Notes Only” so it wouldn’t send any unwanted CC messages to the String VST.

In practice you play the note with chord attached that you want to hold and while holding it press the Sostenuto pedal or whatever CC you use and it will prevent the note off for that note from passing to the Chordz Vst. Meanwhile you can solo in stacato on the upper range of the same Vsti or another Vsti if you want to route to 2 Vstis. When you release the pedal it sends an all notes off message to the Chordz Vst to silence the chord and returns to the Normal state waiting for new input. Here’s the rack to try out. (v4063)

MIDI Sostenuto.cantabileRack (18.1 KB)




Close … but not quite.

I’m playing a Wind Controller, and my instruments typically use Breath Controller (CC2) to control volume (and filter and other stuff). Even through midiSostenuto blocks (delays, actually) the Note Off message, the CC2 messages are still getting through and the held note/chord goes silent.

But thanks for this suggestion - I have a new interest in the PIZ utilities that I have never fully checked out …

Including the Looper, which I have played with in the past, but it doesn’t quite do the trick …

Well that’s cool. I have not yet tried it, but I see how it works.

In my case, things are complicated by the need for managing Breath Controller CCs and I will probably need to run two (state drive) different paths for my chords and my lead, since the Breath Controller still need to go through for the lead (but not the held chords). (I don’t really have an option for “Staccato” notes on my breath controller without some level of Breath Controller action).

So … next question:

Should I learn ReaJS for this (I’m comfortable with programming in general), or should I try to swing all this by a significantly more complex version of the MIDI Hold rack?

If you want elegant go with scripted solution. In Cantabile as you know the parts and pieces do a lot of interesting things but it’s not for everyone. Learning ReaJS would be good I think considering your complex setups. FWIW the rack could be modified to include re-routing the lead notes to a different channel or output if you wanted.


There is a standard sostenuto midi filter in cantabile, I would expect that it could do the trick.


Thanks Torsten, it works well and I didn’t remember it was there :open_mouth: :slight_smile:

1 Like

Depending on what you are looking to do and level of complexity, I have MuLabs looper plugin nicely integrated with Cantabile. Allows you to do all sorts of things with ether audio or midi loops.

See my guide on it for details.

The videos I posted recently of my ambient gig and the songs I played have been using this capability in pretty much all the songs.

I did this as an alternative to trying to link Cantabile with Ableton which looked too much of a faff, so I was looking for a looper type program that would play nicely inside Cantabile.

1 Like

Here’s the link to the documentation that @TorstenH mentioned:

Looks at first glance to be similar in functionality to the PizMIDI Sostenuto VST … so it probably will not work as-is for wind controllers … And I’m guessing it would not be in the cards for @brad to add functionality to the Sostenuto filter for the (miniscule) wind controller sub-sub-cohort of Cantabile users.

So it’s likely I’ll go down the ReaJS route and then maybe (if successful) provide that as a working model for a native-coded filter in C4 (or C5?) …

But first have to check out MuLabs …

If you use two routes, one for sostenuto and one for ‘normal’, then I would imagine that you can use the conditions on routes to block for the CC02 on the sostenuto when it has been activated, i.e. when the sostenuto pedal has been used.

This would be a slightly more complex version of the rack. It accepts a single MIDI input but switches it between 2 target ports to allow using either a single VSTi or 2 different ones. Same basic idea but the splits if any would be on the output ports of the rack instead of the inputs to it.

MIDI Sostenuto.cantabileRack (44.3 KB)



1 Like