Modulation wheel to determine velocity of played notes

rv_midi

2015-05-23 21:39:04

Ok this is a wild idea. I dont know how to explain what i need so ill help myself with a parable.

Lets say i have a broken midi keyboard (i dont this is just a parble to explain what i "need" bome to do for me)

When i play some notes on this broken keyboard lets say C,D,E,F they come in with erroneous velocities all over the place.

C Velocity 3
D Velocity 120
E Velocity 20
F Velocity 100

I want bome to discard these original "crazy" velocities that come with the notes and replace them with values from mod wheel...

How ?

Lets imagine i turn mod wheel at the same time i play the notes.

Bome deletes original "Note On Velocity" and every note gets a "Note On Velocity" based on current position of modwheel at the moment of note press. In case several notes are pressed AT ONCE they all get current mod wheel value as their "Note On Velocity".

This would be example of midi played by me:

I turn modwheel 1/4 up and press C

* Note ON C, velocity 32 *

I turn modwheel 2/4 up and press D

* Note ON D, velocity 64 *

I turn modwheel 3/4 up and press E, F

* Note ON E, velocity 96 *
* Note ON F, velocity 96 *

The original "NOTE ON Velocity" values of all incoming notes are stripped and deleted and replaced by values from the mod wheel at the moment of each note pressed.

rv_midi

2015-05-24 01:36:11

FIGURED IT OUT MYSELF :) using 2 translators...

Translator 0.0 samples mod wheel values into variable g0
Translator 0.1 replaces original note velocity of incoming notes with variable g0 (there is a conditional for NOTE OFF 00 velocity)

works nice...

now turning mod wheel decreases and increases velocity of played/recorded notes regardles how hard you press them with your finger... the mod wheel is setting the note velocity now...

[x] Translator 0.0: modwheel into global variable g0
Options: swallow
Incoming: CC ch.1: Modulation (#1), g0, on port 1
Rules: exit rules, execute Outgoing Action
Outgoing: (none)

[x] Translator 0.1: global variable g0 into velocity
Incoming: Note On ch.1: Note zz, vel oo, on port 1
Rules:
if oo==0 then g1=0
if oo>0 then g1=g0
exit rules, execute Outgoing Action
Outgoing: Note On ch.1: Note zz, vel g1, to port 2

rv_midi

2015-05-24 14:08:19

the above scenario does what i wanted... now i play notes on keyboard and their velocity is set by current MOD WHEEL CC1 value... in real time as i play...

but i have a problem with the setup:

Pitch Bend is not coming thru
Sustain Pedal CC64 is not coming thru

to be able to play my synths i need Pitch Bend and Sustain Pedal to work... those two translators only allow MOD WHEEL CC1 and NOTE to work and all the rest of MIDI data gets stripped by the translators... how do i make Pitch Bend and Sustain Pedal CC64 come thru unaletered... i only really need to add Pitch Bend and Sustain Pedal CC64 to go thru the translators without any transformation...

rv_midi

2015-05-24 14:29:27

OK FIXED... using Project MIDI Router function + few changes in translators (Swallow now in both translators)

I know I know - RTFM !

iam guilty of not reading manuals... i use them only as reference when things go wrong... btw. the Bome Midi Translator PDF manual (with full bookmarks) is very nice and easy to navigate for quick reference in case you get stuck...

maybe someone will someday need this functionality and this thread will guide him thru, step - by - step, with all the trials and errors :)

update 2.0 - now this version allows Pitch Bend and Sustain Pedal CC64 thru

[x] Translator 0.0: modwheel into global variable g0
Options: swallow
Incoming: CC ch.1: Modulation (#1), g0, on port 1
Rules: exit rules, execute Outgoing Action
Outgoing: (none)

[x] Translator 0.1: global variable g0 into velocity
Options: swallow
Incoming: Note On ch.1: Note zz, vel oo, on port 1
Rules:
if oo==0 then g1=0
if oo>0 then g1=g0
exit rules, execute Outgoing Action
Outgoing: Note On ch.1: Note zz, vel g1, to port 2

** make sure in Project MIDI Router to join incoming "port 1" and outgoing "port 2" to let MIDI data thru (Pitch Bend, Sustain Pedal CC64)

florian

2015-06-05 00:19:20

good stuff! thanks for sharing.

Helder

2015-12-16 16:13:24

Hi,
I am trying to make this work but I can't...I am inputting exactly as you explained but I can't get it to work. The event monitor accurately shows that modwheel data is being sent into the "other out" port (which I think is correct) but no other data goes from my controller to the plugin...no midi notes, etc. If I set the controller to route directly to the plugin via the Bome router then it works but it does not translate the modwheel data nor does it block velocity data...it is like it is plugged directly with no translation...

Could it be that the g1 variable is undefined?? Could it be that g0 is not picked up by the second translator??

Please help...:) I am new to this but I really want to make this work...

I attached two screenshots (one for each translator) to help.
Attachments
Translator 1.png
Translator 1.png (108.84 KiB) Viewed 2951 times
Translator 0.png
Translator 0.png (99.73 KiB) Viewed 2951 times

florian

2015-12-28 11:05:37

Hi,
noticing that nobody has replied here... have you been able to resolve this? Otherwise, check out the log window (enable everything) to see what exactly is happening.
Season's greetings!
Florian