Increase and decrease CC value relative to other CC value

So I have a TB3 and, like other 303ish synths, its volume drops when resonance goes from 0 to let’s say 45 (in a 0-127 scale). I’m thinking I might be able to program a pipe that would allow me to affect the Volume CC (#13) when Resonance CC (#71) value passes certain limit. This way I could have a constant volume despite the resonance value.

So, how my setup is configured:

  • Octatrack MIDI Out → Midihub IN 1

  • Midihub OUT 1 → TB3 MIDI In

  • TB3 MIDI Out → Midihub IN 2 ----> Not in place, I would be setup for this purpose

So the idea is to send CC#71 (Reso) to Midihub, Filter out all the values above 45, and for the lower values (under 45) somehow (here is the tricky part), add or substract certain amount to the current value of CC#13 (Vol), and send it back to the TB3. This Vol parameter maybe different for every patch, so I would prefer increasing or decreasing the already set value instead of sending a fixed value relative to the Resonance (the latter seems easier tough, so it could be an option too).

So when resonance is 45-127, no action is done. When it goes below 45 it will drop the Volume like:

Let’s say this is the original values:

So if I turn resonane down:
Lower CC#71=46 → Do nothing (CC#13=100)
Lower CC#71=45 → Do nothing (CC#13=100)
Lower CC#71=44 → Decrease CC#13 1 unit (=99)
Lower CC#71=43 → Do nothing (CC#13=99)
Lower CC#71=42 → Do nothing (CC#13=99)
Lower CC#71=41 → Decrease CC#13 1 unit (=98)
Lower CC#71=40 → Do nothing (CC#13=98)
Lower CC#71=39 → Do nothing (CC#13=98)
Lower CC#71=38 → Decrease CC#13 1 unit (=97)
Lower CC#71=37 → Do nothing (CC#13=97)
Lower CC#71=36 → Do nothing (CC#13=97)

And then turn up again:
Rise CC#71=37 → Do nothing (CC#13=97)
Rise CC#71=38 → Do nothing (CC#13=97)
Rise CC#71=39 → Increase CC#13 1 unit (=98)
Rise CC#71=40 → Do nothing (CC#13=98)
Rise CC#71=41 → Do nothing (CC#13=98)
Rise CC#71=42 → Increase CC#13 1 unit (=99)
Rise CC#71=43 → Do nothing (CC#13=99)
Rise CC#71=44 → Do nothing (CC#13=99)
Rise CC#71=45 → Increase CC#13 1 unit (=100)
Rise CC#71=46 → Do nothing (CC#13=100)
Rise CC#71=47 → Do nothing (CC#13=100)
Rise CC#71=48 → Do nothing (CC#13=100)
Rise CC#71=49 → Do nothing (CC#13=100)
Rise CC#71=50 → Do nothing (CC#13=100)
Rise CC#71=51 → Do nothing (CC#13=100)

So only when resonance is 0-45, volume would be increased or decreased accordingly

Is this something that can be done or am I crazy? I think converting to note numbers and playing with Transpose could work, but not sure how


Hey, try this:

CC Resonance to Volume.mhp (445 Bytes)

For every CC controlling the resonance, it will produce a volume CC roughly according to your value table. :slight_smile:

First line handles the case when resonance >= 45, the 2nd handles values <= 45.

Btw, add Filter pipes just after the input pipe to remove all messages apart from CC, so you don’t duplicate the rest of the message types. (forgot to add it)

You can control how fast the volume CC decreases by editing Out Low of Rescale pipe.

Thanks @Giedrius! I tested it and couldn’t tell if it works, because as soon as I tweak the resonance, sound starts glitching and sounds like half the speed. I see continuously overflow in the midi monitor… not sure if there could be some midi loop here?


There’s probably some loop, or message duplication. Try first bypassing every input of the rest of the pipelines, and just have those 2 pipelines there. Also, make sure you’ve done this for the 2 pipelines:

Btw, add Filter pipes just after the input pipe to remove all messages apart from CC, so you don’t duplicate the rest of the message types. (forgot to add it)