Old 08-11-2022, 09:57 AM   #1
srdmusic
Human being with feelings
 
Join Date: Dec 2016
Posts: 876
Default Convert Velocity to MIDI note

Does anyone know of a midi plugin that can convert Velocity values to MIDI notes?

Tom Holkenborg's percussion is laid out on the keyboard. Lower notes are lower velocity. Higher notes are higher velocity. Instead of the standard single note per drum with possible 127 velocity layers.

If I could convert my keyboard input velocity to a MIDI note value then I could play the drum patches normally.
srdmusic is offline   Reply With Quote
Old 08-11-2022, 10:18 AM   #2
Juan D'Fall
Human being with feelings
 
Join Date: May 2017
Location: On the Eastern edge of London (UK), almost on the Essex border.
Posts: 179
Default

Sorry I can't answer the question, but I need the same thing for a different reason. Rolands TD1 DMK drum kit plays the ride bell by sensing the velocity of the hit, and only plays it at the highest (or near highest) velocity. Otherwise, it plays the bow sound. This would be incredibly useful when using the kit with a vst.
Jim
Juan D'Fall is offline   Reply With Quote
Old 08-11-2022, 11:12 AM   #3
Fabian
Human being with feelings
 
Fabian's Avatar
 
Join Date: Sep 2008
Location: Sweden
Posts: 7,417
Default

It is rather easy to write a JSFX to convert velocity to note. However, I can think of lots of different ways to do that conversion, and I don't think that the two of you think of the same way. So, without more info of how the conversion should be done, we cannot really write a suitable JSFX. However, you can code it yourselves, here is a sketch:

Code:
desc:MIDI Velocity to Note
//tags: MIDI processing

slider1:0<0,16,1{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}>Input Channel

in_pin:none
out_pin:none

@init
NOTE_ON = $x90;
// Set up the conversion map // this should be changed
vel_to_note = 0;
i = 0;
loop(128,
    vel_to_note[i] = i; // new note same as velocity
    i += 1;
);

@slider
in_channel = slider1-1; // -1 means "all"

@block
while 
(
    midirecv(ts, msg1, msg23) ? 
    (
        status = msg1 & $xF0;
        status == NOTE_ON ?
        (
            channel = msg1 & $x0F;
            in_channel == -1 || in_channel == channel ?
            (
                velocity = (msg23 >> 8);        // vel from this note
                note = vel_to_note[velocity];   // convert to this note
                msg23 = note | (velocity << 8); // with original velocity
            );
        );
        midisend(ts, msg1, msg23);
        return = 1;
    );
);
The above is untested code. It compiles OK, but I just took a MIDI JSFX I had laying around and tweaked it. At least two things need to be changed related to the particular conversion, one is the contents of the velocity to note conversion map, and the other is the velocity of the new note. See the bold text in the code.

HTH
__________________
// MVHMF
I never always did the right thing, but all I did wasn't wrong...
Fabian is offline   Reply With Quote
Old 08-11-2022, 11:17 AM   #4
vitalker
Human being with feelings
 
vitalker's Avatar
 
Join Date: Dec 2012
Posts: 13,333
Default

https://www.thepiz.org/plugins/?p=pizmidi
You'll need midiConverter3 from that pack.
Here is how I set it to make it working:

vitalker is offline   Reply With Quote
Old 08-11-2022, 11:40 AM   #5
Juan D'Fall
Human being with feelings
 
Join Date: May 2017
Location: On the Eastern edge of London (UK), almost on the Essex border.
Posts: 179
Default

Thank you for replying. There's no way I could do any coding, I wouldn't have clue. I had thought of adding a send to another track and getting that track to play the bell sound only above a certain velocity. (When I get some time, I'll work out at what value that change occurs). The sound of the bell would swamp the bow sound, so it wouldn't hurt to just leave that playing. I just don't know how to do it. I'm sure I've something that might do it in one of Kennys videos, but I can't remember what it was called.
Thanks, vitalker, I'll have to have a look at this one, too.
Jim

Last edited by Juan D'Fall; 08-11-2022 at 11:45 AM. Reason: Added acknowledgement
Juan D'Fall is offline   Reply With Quote
Old 08-11-2022, 04:29 PM   #6
Time Waster
Human being with feelings
 
Time Waster's Avatar
 
Join Date: Aug 2013
Location: Bowral, Australia
Posts: 1,638
Default

In amongst the ReaRack3 modular synth JSFX - https://stash.reaper.fm/v/34071/ReaR...dularSynth.zip is a module called 'Signal Processor'. It allows mixing, conversion and scaling of various signal types. It has two inputs and one output. To convert MIDI from one type to another, just use a single input and ignore the 'Operation' parameter. On the input, select 'Note On velocity' (you'll have to scroll down past the 64 audio inputs) and on the output select 'Note Value'.
__________________
Mal, aka The Wasters of Time
Mal's JSFX: ReaRack2 Modular Synth
Time Waster is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -7. The time now is 11:33 PM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.