Can I fade in/out volume over a range of keys in a midi route?

Say I have 2 programs layered, e.g. Program 1 C-1 --> C-3 and Program 2 C#-3 --> C5. That gives quite a harsh transition from C3 to C#3. So, is there as way to overlap these ranges, and “fade out” the volume around C3 as I leave the range from Program 1; and “fade in” as I enter the range from C3 upwards?

Hey Tom

strictly speaking, ATM this is not a layer, but a split :wink:

There’s no mechanism in Cantabile to do directly what you want to do, since Cantabile can’t get “inside” your two VST instruments for those layers to turn down the actual volume for the specific notes in the overlap range. This would need to be done inside the respective instruments - Cantabile can only turn down (or up) the volume for the overall output of the instruments.

The only thing that would be possible from the “outside” is to scale the MIDI velocity of the notes in the overlap range (gradually reduce the multiplier for one, increase for the other). There isn’t a function in Cantabile to do that, but it would be possible to realize something like this in ReaJS with a bit of programming.

Still, I’d be doubtful if this would be a satisfactory solution - instruments will react differently to velocity changes, so if you e.g. want to fade a piano into an organ, this would absolutely fail, since the organ is normally not velocity sensitive. Plus, velocity respones of instruments will often not only influence the volume, but also the sound (e.g. less brightness at lower velocities); again something you don’t want to happen in the “blend zone” - you’ll want to blend the “hard hits” of both programs when you hit the keys hard. And in soft key presses, the lower-faded instrument will probably completely disappear due to the MIDI velocity becoming too low. Overall, MIDI velocity scaling doesn’t sound like a promising approach to blending zones.

So “blended” zones like you are describing would probably still need to be realized inside a VST instrument, where you (may) have detailed control over the actual volume of individual notes (e.g. in VST samplers).



1 Like

One thing that might help here is a “Pitched Velocity Ramp” MIDI filter - it can scale the velocity of notes based on their pitch.

(Note though that note velocity doesn’t always map to just volume).

@Brad: thx, that is exactly what I am looking for!

The Pitched Velocity Ramp filter isn’t state controlled.

I’m trying this, using it to fade a bass into a piano.

I have a standard “splits” rack which has states for each split point.


The rack has Midi outputs for “UPPER SPLIT” and “LOWER SPLIT” which I then connect to the instrument racks.

I edit the MIDI route for each output for each state to send the correct key range.

I can apply the filter to each output to fade at the end of each key range, but these fade points are not controlled by state, so the filter range will not change for each split point.

Any ideas on how to apply the fade differently for each state?


The only way I can think to do this is put each velocity ramp filter on a different MIDI route and then use states to enable the just the appropriate route depending which ramp you want.

Thanks Brad, that will be very messy though with 2 new routes (1 per instrument) per split point.

Any chance of adding the velocity ramp to the Route menu which is then state controlled please? Wonder if other people would want this?

1 Like

My suspicion is that velocity ramp is a rarely used option so I’m not keen to add this to the route unless it’s something that’s really needed. I’ve created a Trello card where people can vote for it here: