Change Midi Note Velocity according to the value of incoming CC values

Hello to you,

first of all wishing you all a great and Happy New Year 2026 !!

I must apologize for my potential beginner question, but I´m new with this quite overwhelming possibilities and have no experiences at all in programming such scripts.

What I´m looking for (this is achievable by the e.g. midi-solutions-event-processor) but would love to use it with the (bome) MIDI Translator Pro software (which I own) - is

a) have incoming Midi Notes (incl. definable at what Midi channel)
b) have incoming Midi CC values (incl. definable for what CC parameter (e.g. CC16) and definable at what Midi channel)
c) the current value of e.g. CC16 defines (set´s) the Velocity of all incoming Midi Notes to that value
d) once a new value of e.g. CC16 “arrives”, that new value would be used as Velocity value for the incoming Midi Notes.

Just a short example, what use case I do have in mind: I have a “stream” of Midi Notes, e.g. coming from an arpeggiator and by moving / changing e.g. the Modwheel or e.g. CC16, I could dynamically change the Velovity of the Notes.

A 2nd “version” of such a script might be to apply an offset to the existing Velocity of the incoming Notes by considering No Velocity change when the CC value is about 64 and increasing the Velocity when the CC value gets greater than 64 and decreasing the (existing Note) Velocity when the CC values gets below 64 (?) Does all this makes sense?

If anyone could help me with that , it would be awesome !! :slight_smile:

Thank you very much in advance & best wishes, Tom

Hi Tom, and welcome to the Bome community!

Please see the below example.

Preset 0 just handles housekeeping stuff and is not of material interest to your request but may be helpful in a structure for setting up new projects.

Translator 0.0 (Preset 0 , Translator 0) takes any incoming note on MIDI Channel one no matter what incoming velocity and sends the velocity with the value of global variable “ga”.

Translator 0.1 Takes incoming CC16 value and populates the value of global variable “ga” with that incoming value allowing translator 0.0 to output the value you want.

I also set up the MIDI router so that all other MIDI messages will pass through untouched.

I set up my aliases a follows. You will need to change them according to your physical MIDI devices.

You can learn more about aliases from this tutorial.

I hope this helps get you started!

CC-16-Adjust-Velocity.bmtp (2.6 KB)

Steve Caldwell
Bome Customer Care


Also available for paid consulting services: bome@sniz.biz

Oh and there is no need to apologize for asking questions here. That is what we are here for.