C3 Utility Racks

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 …

OK, understood…

Ok, now I understand.
125 CCs per second is one CC every 8 msec.
ATM, I can’t see a way to obtain this using just Cantabile, but Dave is much better than me at this.
Anyway, I think it could be easily done in ReaJS: if you can afford a 10 msec delay of each note, the script just needs to delay all notes by 10ms and then send them out (also setting the velocity value basing on the last received CC, which should have arrived in the meantime).

I could try putting together a script but I have not so much time in the next few days. Maybe if another solution does not come out in the meantime…


EDIT: of course, instead of working with a fixed delay, the script could just wait for the first CC and then send the note out but…what happens if the CC does not arrive in a reasonable amount of time? Shouldn’t the note be emitted anway (using a reasonable value for the velocity)?

How about using something simple like this:

or this:

…instead of futzing around with MIDI notes from your Sylphyo?

Also: who really needs dynamic response for a “four-to-the-floor” loop? Just give it a fixed velocity, and be done with it…

Just saying…

So I’m really planning on layering far more than “four on the floor” … hoping to build up layers of several rhythms.

Here’s audio and MIDI for a recording the way the Sylphyo normally produced MIDI. I’ve fixed the Velocity at 64. I’ll post a second message with variable velocity …

MIDI: https://www.dropbox.com/scl/fi/avvxer7z6h67120iino4z/Able-0102-2023-12-09.mid?rlkey=e6kf0ev07f70rp626oz3sxn8f&dl=0

MP3: https://www.dropbox.com/scl/fi/c40busurzdzb8uq0og34q/Able-0102-2023-12-09.mp3?rlkey=2kznt88vtoyeh370ecoh00imy&dl=0

… the audio sounds pretty “flat” all at the same velocity.