Getting/Changing Midi Velocity Values

I checked all the documentation and some scripts but I can’t find any info/code to be able to intercept and change the midi velocity value sent by midi controllers, if it can be done at all that is.

The goal is to make a script that would disable midi velocity for specific instruments (and only send a user defined value)

You can’t intercept midi messages from the Midi-In device…
You can however write a script that receives Midi data from your midi device (given that it has not be assigned as midi-in device) and then translate these messages to OSC messages and pump those back to Renoise using the OSC server.
You can then specify for which instruments, velocity values should not be send or 1 should be send. (velocity 0 is being interpreted as note-off)I think though velocity should always be defined…

Nice Idea!

Would it be possible to one day have access to Renoise’s midi handling, instead of doing everything using OSC.

This is rather complicated for something that could be so simple.

edit: Also, if I’m not mistaken you would have to remove your device from Renoise’s MIDI-IN list, which would prevent any velocity or keytracking devices from working, same with the faders/knobs of the said controller

If you send keys and velocity to that track using OSC, these devices pick it up, no problem.

VVs idea is more a hack than a solution or workaround. I think he just wanted to point out that it is, somehow, possible.

Lets please find a real solution for this and think about the general problem and way of dealing with such things.

A built-in solution would surely be to handle this the way other sequencers do: give the MIDI or VSTi sections of Instruments an extra slider each for MIDI volume. Most sequencers default to 100 out of 127, then if you choose to humanise the velocities you have some scope to accentuate the trigger volume as opposed to just lowering it from 0x80 in the pattern.

Sure there’s a DSP volume slider for VSTis, but volume isn’t necessarily equivalent to MIDI velocity, especially where velocity is used to modulate parameters other than velocity ;) For example, a hardware synth or VSTi may have a filter env delay that’s triggered above a certain velocity threshold but you still want to be getting the hottest audio signal possible while sending a lower velocity. Hope I’m explaining that well…

I applaud nimitz’s interest in solving this with a tool, but it feels like something that should exist directly within Renoise.

If its just about a default volume, then I agree as well.

Well what I’m “asking” for is much more than that, it’s to be able to intercept and change values on the fly with the API, this would allow to make a velocity curve tool. Which would be able to use custom GUI set curves for specific instruments or specific tracks, save and load curve presets, set fixed velocities, set the velocity range, set the key range etc…

Do you meant a slider that you change the sent velocity bet a set amount? (say +20 to every sent note)
It would also be goot to be able to set the curves to linear/exponential (a bit like the “scaling” setting on the velocity device)
We would also need something to set the min and max values (example: anything under 20 will be sent as 20)

P.S.

Instead of having devs working on “very specific” built-in features, I would rather have everything in the API, this way instead of waiting X years until the devs have enough time to implement specific feature #21642, anyone who cares enough can implement it himself (which is great).

Clarification: I want both. I want the adjustable, default, overall velocity to be settable in the Instrument properties (ability to constrain values to max/min would be even better) and I also want to use your tool for quickly creating velocity curves and similar :)

So I recently bought an electric drum set and I need to change the velocities of all my drums since they are all way too low. The drums don’t appear to have a setting for midi velocities. Anyone have a solution for this?

You can perform these types of operations in the Advanced Edit panel.

Step 1:
Move the pattern editor cursor into the track that contains your drums.

Step 2:
Open Advanced Edit (found in the upper right corner of the pattern editor)
2550 advanced_edit_1.png

Step 3:
Set the selection to “Track in Song”
Set the content mask to “Volume”
Set the “Modify” values according to what you need to do (ie. multiply the volume by a factor of 2, or add 10, or whatever)
Finally, hit the “Apply” button.
2551 advanced_edit_2.png

Thanks for taking the time to detail using the Advanced Edit dblue :). Though, I already knew how to change the velocities after the fact. My main issue is that I can’t hear any of the drums while I’m playing them. The velocity is usually around 17. So what I would need is some sort of intermediate software/script (perhaps external software?) that would boost the midi velocities before it’s entered into Renoise. Or, maybe a script that would automatically multiply the volumes once after each pattern is recorded?

EDIT: I figured it out! To anyone that needs to boost midi velocities, check out Midi-OX http://www.midiox.com/ Use the Data Mapping to set the Data 2 (velocity) min and max. Then use midi yoke to get the midi signal back into Renoise. Sorry, I don’t have time to write a more through explanation now. Message me if you need help.