C3 Utility Racks

2 X 2 MIDI CC Filter Splitter Router Matrixer

Hi All,

This a Swiss army knife style of rack that can be used to easily route and mix 2 Keyboard Controllers to different destination synths and vsti plugins. You just select the global MIDI Port routing / combinations as shown in the picture to route and blend your controller inputs and / or …

route matrixer

you can do manual discrete output port taps and routing for special needs.

2x2 matrix 1

2 X 2 MIDI CC Filter Splitter Matrixer.cantabileRack (276.3 KB)




Some cool racks there, @dave_dore.

There’s one I think could be really useful, and I think it could be doable in C3, but I haven’t had time to investigate further - and that’s to generate asymmetrical pitch bend - i.e. where the down range and the up range are not the same. Many (most?) VIs don’t offer that as an internal feature.

The typical use for this would be to have the usual two or three semitones bend up, but one or two octaves down to enable “dives”.

In this case, you’d set the VI pitch bend range to the down (larger) range. Down pitch bend would be passed on unchanged, up pitch bend would be scaled to the smaller range.

Is this feasible?

Or maybe there’s a MIDI plugin already out there that offers this?

Hi Danny,

Yes, it’s feasible (of course, it’s Cantabile!). Set up a route into your plugin that filters out pitch bend info, as we’re going to send that in via bindings. Then set up two bindings as follows:

In the value boxes, the range mappings should be set up something like this:



Note the “Discard” out of range mode - this is important. If you use those values on a synth that has a ±12 semitones pitch bend range, you should find it maps to an octave down, and a minor third up (the minor third comes from that 2000, which I guessed…for other intervals you’d have to do a bit of trial and error).

You could of course use as many of these bindings as you like, for different portions of the pitch wheel range, allowing some pretty freaky effects!



Hi Danny,

Thanks for looking in, @Neil_Durant provided an excellent explanation of how to set this up. Here’s a small chart of the useful interval numbers for the different common pitch bend settings if you want to make your own.


The way the charts works is if you have the non adjustable synth vst set to the amount on the left then each semi tone you want to offset by would be added to the offset direction like Neil described. e.g For a 2 octave setting on the vsti you would leave the down range alone and use the 341 per interval to determine the up bend.




Brilliant. Thanks, guys!

1 Like

MIDI CC Multiplexer / De-Multiplexer

Hi All,

This set of racks is for the MIDI scientists out there. :nerd_face: There are 2 racks here, one for De-Multiplexing MIDI and One for Multiplexing MIDI. It is true point to point (unless I missed something and I usually do …lol). The Multiplexer has all channel Ctrl inputs and the 127 cc control inputs and the De-Multiplexer has all channel ctrl and all 127 cc numbers split out to separate ports. A MIDI disection beast! I looked for this in a vst and as far as i know it’s not out there, likely due to lack of interest …:grin:… anyway it’s made now and only works in Cantabile environment but has already been very fun from a science perspective for me. Hope others might enjoy it too …

MIDI CC Multiplexer.cantabileRack (218.9 KB)

MIDI CC Demultiplexer.cantabileRack (247.3 KB)



1 Like

Pitch Wheel to Switch

Hi All,

I made this rack that converts the pitch wheel into a variety of usable switches. Below are the output ports available. The ‘MIDI Out’ Port has the state selected output


here are the states

pitchswt 2

Connect a route from your controller to this rack and it will produce the CC various switch types above at the MIDI Out port and also will simultaneously produce other switch types on separate ports. The up arrows are for up wheel and the down for down wheel. The leslie toggle has it’s own port.

Enjoy! :smiley:

Pitch Wheel Switch.cantabileRack (803.4 KB)



Notes Scroller

Hi All,

a new linked rack that auto scrolls the built in notes page. It’s start and stop function is linked to the transport and has a variety of preset delay times. Just place in the song, pick the scroll delay time and when you press the play button on the main transport it will begin scrolling, when you press stop or the track ends it will return to the top of the notes list. A word of warning, do not change delay time while running always change delay time when stopped.


Notes Scroller.cantabileRack (285.7 KB)

Edit: i removed the first version of the scroll with pause/resume as it quit operating after recent improvements to the bindings. Sorry if you downloaded it is not usable.

I went back and adjusted it to work with the new builds and have posted here for those who want to try it. On longer delay times the execution can take a few seconds to change states so be patient on transport changes on long delay times.

Notes Scroller Pause.cantabileRack (430.6 KB)

Enjoy! and Happy 2018 Everyone !



Hey people,

I don’t have a rack to share at the moment but this tip will fit this topic.

I was looking for some kind of feature, that keeps tracking of a single note. If this particular note is pressed x-times it should change something in Cantabile. An example would be if you have to play the same musical phrase three times in a row and on the last note of the last row you want Cantabile to advance automatic to the next Song-State.

So I tried a few things… and finally found that plugin which you can find here:

midistep.zip (682.5 KB)

This plugin is part of the piz-midi-compilation. I don’t think you find the x64 version on their official homepage, so I uploaded that for you.

And this plugin does exactly what I need! You set a trigger-note. Each time the plugin receives this note it will go one step further. Now you can f.e. add another note to the 7th step. If you now press the trigger-note 7 times the second note will be fired too! If you bind this note to “Next Song-State” you are done!

The capabilities are endless. Have fun with that!


Hate to revive such an old thread … but … it might have what I’m looking for …

I need to (don’t laugh) play percussion on my wind synth (you’re laughing … I can hear you). I need to loop a simple “four on the floor”.

The MIDI coming out of my Sylphyo has notes with fixed velocity, which is ignored by all the wind-synth aware HW and SW I have - they use Breath Control - CC #2 - to control volume (and filter, resonance, growl, and all the the other nice expression stuff …).

It IS possible to configure the Sylphyo to generate a bona fide velocity on each note, but that introduces a delay, so I never use it. And re-configuring the Sylphyo must be done by hand (no SysEx upload), so configuring is out of the question in this situation (unless I had a second Sylphyo for the drum work, which is impractical).

  • So is there a rack in this thread that might do what I want?*

  • Do these racks even work in C4??

  • Maybe a VST someone might know about???

Hi Clint,

I need to confirm that you want to take a fixed velocity note input from your controller and have a utility rack or some other scheme to produce a variable velocity output?



In more detail … Take a MIDI Note On with Velocity 1, wait for “a bit” while some MIDI CC #2’s arrive with (typically) increasing CC values, pick the highest such value, and then spit out a MIDI Note On with the same not number as the incomping MIDI Note On, but with the Velocity set to the highest MIDI CC #2 value seen.

That’s essentially what my Sylphyo would do if I reconfigured it …

I think it could be done, there is no rack like that I know of (yet). Do you want me to look at it or are you going to craft your own? It would work along the the lines of the recipe you described IMO.

1 Like

Well, I’m really not so swift with crafting my own racks … if you had the spare cycles to get a rack even just started, that would be fantastic. I could maybe carry forward from whatever starting point you could conjure up …

This is a know issue in the WindSynth community … I’ve seen folks discuss it but I’ve never seen a solution …

Well, I prep the egg for my face and see if I can figure something out. :grin:

1 Like

The thing I can’t imagine is how to get a rack to “wait and collect CC’s for a while”.

I was even thinking of attempting this in JSFX. But that’s a whole mountain to climb and I shudder to think of the limitations that introducing a new technology might incur …

Thanks for whatever you come up with …

Hi @ClintGoss,

maybe it’s a silly question but…why can’t you just use the latest CC value and assign velocity to the next note based on that? While playing (and blowing) it shouldn’t make such a big difference if you sample the CC immediately before or after the note.


Right off the bat I wanted to ask if you ever tried the CodeFN42 VeloScaler? It accepts incoming velocities and can set the percentage of velocity that is passed through and they have a random function. I’m not certain how many velocities you would need to do beats but it might be worth a look. It offers 5 zones you can set so I envisioned using a zone for each trigger note you use and fiddling with the percentage and randomizing.

This can also be done with Cantabile filters but no randomizing.

1 Like

The Sylphyo produces Note On at the first micro-zephyr of breath pressure. It then follows it up with Breath CC’s at the rate of anything from 125 to 1000 CC’s per second.

There is a mode on the Sylphyo to do exactly what is needed - wait a configurable amount of time (20ms is the default) and then produce the Note On with the highest CC value observed. However, that reconfiguration of the Sylphyo must be done by hand and is impractical in the time I have between playing percussion and another wind instrument …

So all of my Note On messages have Velocity = 1. I can set that to any fixed value 1-127.

Rather than random velocities, I’d like to get velocities based on the CC#2 values in the first 20 msec or so …