Controller Bar - CC 16 slider range to hold note

Tags: #<Tag:0x00007f9785e5f8c0>

I would like to move a physical slider assigned to cc16 on my keyboard so when between 1-11 hold note c2, 12-23 hold note c#2. Before I load up Bome Midi Translator Pro I thought I would ask here if anyone thinks it can be done with Cantabile alone.

EDIT - found this RFC: MIDI Filter to map CC to Note - Cantabile - Cantabile Community (
Looks like it can send a note on/off for a single cc value

Hi @dsteinschneider,

Not sure if the CC to Note filter will cover what you need here because it can’t check for CC value ranges. Interested to hear what you come up with.


Hi Brad, the Bome solution worked, Steve Caldwell on their forum helped me.

So my Cantabile controller bar button shows which note his held while the below bome script actually holds the note. So I can look at Cantabile to see which harmony is active.

Here’s the text export of the project:

Project: Hold-Single-Notes-with-CC16-v2
Project MIDI IN ports: My Controller
Project MIDI OUT ports: Application

[x] Preset 0: New Preset

[x] Translator 0.0: CC 16 Slider Note C2 down
Options: swallow
Incoming: Control Change on ch. 1 with CC#:16 (0x10) and any value set ‘qq’ to value

if qq<1 then exit rules, skip Outgoing Action
// lets start with higher notes and
// go down from there
// Add higher notes if desired
if qq<127 then ga=11
if qq<124 then ga=10
if qq<112 then ga=9
if qq<100 then ga=8
if qq<88 then ga=7
if qq<76 then ga=6
if qq<64 then ga=5
if qq<48 then ga=4
if qq<36 then ga=3
if qq<24 then ga=2
if qq<12 then ga=1

// Set note to play.
// get last note played into tt

// next iteraion set lst note played

if pp!=tt then gb=pp
// if last note played is same as current note, skil
if pp==tt then exit rules, skip Outgoing Action
//Log “Log Note off %tt% - Playing note %pp%”
Outgoing: MIDI 80 tt 00 90 pp 7f, to port Bome MIDI Translator 1 Virtual Out

1 Like

While working on this I had the idea of a controller bar button that shows just a particular octave of the controller keyboard so you can see what keyswitch is held. Please don’t work on it - I’m mentioning it to see if anyone else ever had this idea.

Hey Doug,

Sorry I’m late to the issue but there is a way using bindings to do this if I understand the OP. The type of bindings below determine the range of CC16 coming in and generate a note on when true and a note off when false. I only did bindings for the OP request but it can be expanded with more bindings to match your Bome project.


1 Like