 |
|
|
03-14-2014, 12:04 PM
|
#1
|
Human being with feelings
Join Date: Aug 2012
Location: Finland
Posts: 2,668
|
EEL script: MIDI vel/cc tool (draw ramps - maintain relative velocities etc.)
Download (the latest version is always here):
https://stash.reaper.fm/20029/MIDI%20velocity%20tool.zip
Breeder made some nice updates - thanks!:
CHANGELOG:
11.9.2014 (by Breeder): - support for 14bit lanes, pitch, aftertouch and program lanes (anything that's drawable)
- when in CC mode, user is still able to edit velocity by clicking it's lane
- ctrl+click target fader sets it to the middle
- preserve settings through REAPER or script restarts(mode, compressor weight and target, dialog dimensions)
Last edited by spk77; 09-16-2014 at 04:47 AM.
Reason: added Breeder's updates
|
|
|
03-14-2014, 12:14 PM
|
#2
|
Human being with feelings
Join Date: Feb 2012
Posts: 1,972
|
Thanks!
|
|
|
03-14-2014, 01:32 PM
|
#3
|
Human being with feelings
Join Date: Jan 2012
Location: Bananenrepublik Deutschland
Posts: 307
|
i was waiting for this  thank you so much spk77
|
|
|
03-14-2014, 01:50 PM
|
#4
|
Human being with feelings
Join Date: Jul 2007
Location: Jazz City
Posts: 4,972
|
wow - game changing!!! any chance to get an undo-compatible version soon??
__________________
Windows 10x64 | AMD Ryzen 3700X | ATI FirePro 2100 | Marian Seraph AD2, 4.3.8 | Yamaha Steinberg MR816x
"If I can hear well, then everything I do is right" (Allen Sides)
|
|
|
03-14-2014, 01:55 PM
|
#5
|
Human being with feelings
Join Date: Aug 2012
Location: Finland
Posts: 2,668
|
Thanks.  I couldn't get the "undo" working correctly - have to do more testing.
|
|
|
03-14-2014, 02:40 PM
|
#6
|
-blänk-
Join Date: Jun 2008
Posts: 11,283
|
YAY! Congrats
There definitely needs to be such a thing for CC as well (probably on last clicked lane?? Wouldn't make too much sense to use all selected in different lanes).
Hopefully this doesn't take away from the devs drive to implement a transform frame thingie for CC, velocity and possibly automation envelope lanes.
|
|
|
03-14-2014, 02:49 PM
|
#7
|
Human being with feelings
Join Date: Aug 2012
Location: Finland
Posts: 2,668
|
Undo should work now - zip file updated. (had to use Undo_OnStateChange("descchange") to get it working)
|
|
|
03-15-2014, 11:51 AM
|
#8
|
Human being with feelings
Join Date: Aug 2012
Location: Finland
Posts: 2,668
|
Thanks gofer (maybe this will give some ideas to the devs.  )
Zip file updated (in post#1): - ctrl+drag to "apply exponential velocity curve"
|
|
|
03-15-2014, 07:49 PM
|
#9
|
Human being with feelings
Join Date: Jun 2009
Location: Earth
Posts: 1,340
|
Man.., this along with your MIDI note selector running at the same time is quite the power combo. I really like the exponential adjustment too. Awesome job!!!
A couple of ideas for the velocity tool:
1)Perhaps a parameter that could be either click-dragged or mousewhell scrolled that would set all the selected velocities to the same value.
2)A button that could transpose/flip the edited velocities from left-right or right-left.
3)Maybe a reset button that would set velocities back to their pre-edited values.
Last edited by Anton9; 03-15-2014 at 08:00 PM.
|
|
|
03-16-2014, 03:35 AM
|
#10
|
Human being with feelings
Join Date: Apr 2011
Posts: 144
|
Great work, Spk77!
I really hope this gets incorporated into the MIDI Editor at some point. That would make REAPER's velocity handling on a par with Cubase's.
|
|
|
03-16-2014, 04:25 AM
|
#11
|
Human being with feelings
Join Date: Aug 2012
Location: Finland
Posts: 2,668
|
Quote:
Originally Posted by Anton9
Man.., this along with your MIDI note selector running at the same time is quite the power combo. I really like the exponential adjustment too. Awesome job!!!
A couple of ideas for the velocity tool:
1)Perhaps a parameter that could be either click-dragged or mousewhell scrolled that would set all the selected velocities to the same value.
2)A button that could transpose/flip the edited velocities from left-right or right-left.
3)Maybe a reset button that would set velocities back to their pre-edited values.
|
Thanks Anton  ,
1) I've been thinking (how) to make a "smoothness control node" - it would move velocities towards the curve by 0-100 percent. Then another "node" which would adjust "smoothness/compress strength by note position".
2) That's possible to do, but I think it should flip the velocities "per channel" and "per pitch". Then it would work correctly, even when selected notes have different channels/pitches. Possible but not very easy  .
3) Original velocities are deleted from memory when lmb is released, but undo should set velocities back to original.
Quote:
Originally Posted by Ozymandias
Great work, Spk77!
I really hope this gets incorporated into the MIDI Editor at some point. That would make REAPER's velocity handling on a par with Cubase's. 
|
Thanks, I'm sure they'll add the same behavior/logic to the MIDI editor at some point. Let's hope.
|
|
|
03-16-2014, 08:23 AM
|
#12
|
Human being with feelings
Join Date: Jan 2007
Location: mcr:uk
Posts: 3,812
|
Nice work
|
|
|
03-16-2014, 08:30 AM
|
#13
|
Human being with feelings
Join Date: Aug 2012
Location: Finland
Posts: 2,668
|
Quote:
Originally Posted by IXix
Nice work 
|
Thanks IXix
|
|
|
03-16-2014, 02:41 PM
|
#14
|
Human being with feelings
Join Date: Aug 2012
Location: Finland
Posts: 2,668
|
Update - "alt+drag" -> set curve and compress
A fast way to add fade-ins/fade-outs:
Last edited by spk77; 03-16-2014 at 02:47 PM.
|
|
|
03-16-2014, 03:12 PM
|
#15
|
Human being with feelings
Join Date: Sep 2010
Location: Finland
Posts: 776
|
Very cool but uh... how do I install it?
EDIT: Figured out that I need to load it up in the actions list. For some reason the New/Load button does nothing though... even though it works on a fresh install.
EDIT: Figured out the problem too. The "lastscript=" path in reaper.ini was a remnant from my laptop. Since that directory doesn't exist, the load window refused to open.
Last edited by Seventh; 03-16-2014 at 03:29 PM.
|
|
|
03-16-2014, 03:20 PM
|
#16
|
Human being with feelings
Join Date: Aug 2012
Location: Finland
Posts: 2,668
|
Quote:
Originally Posted by Seventh
Very cool but uh... how do I install it? 
|
Unzip the file -> open the "Action list" -> load the file (ReaScript New/load...)
Then it should be in the action list (as an action).
|
|
|
03-16-2014, 03:37 PM
|
#17
|
Human being with feelings
Join Date: Sep 2010
Location: Finland
Posts: 776
|
Ok got it working. Thanks for the script!
By the way, would it be possible to make it do compression/expansion of velocities (without ramp)? :P
Cheers!
|
|
|
03-17-2014, 03:32 AM
|
#18
|
Human being with feelings
Join Date: Aug 2012
Location: Finland
Posts: 2,668
|
Quote:
Originally Posted by Seventh
Ok got it working. Thanks for the script!
By the way, would it be possible to make it do compression/expansion of velocities (without ramp)? :P
Cheers!
|
Glad you got it working  . Compress/expand -tool has been on my mind too.
|
|
|
03-17-2014, 02:01 PM
|
#19
|
Human being with feelings
Join Date: Aug 2012
Location: Finland
Posts: 2,668
|
Compress/expand velocities
Compress/expand velocities (compresses towards average velocity)
(zip file updated)
|
|
|
03-17-2014, 02:12 PM
|
#20
|
Human being with feelings
Join Date: Jan 2007
Location: mcr:uk
Posts: 3,812
|
Quote:
Originally Posted by spk77
Compress/expand velocities (compresses towards average velocity)
|
That's going to be very useful. Thanks!
|
|
|
03-17-2014, 03:23 PM
|
#21
|
Human being with feelings
Join Date: Jan 2012
Location: Bananenrepublik Deutschland
Posts: 307
|
indeed very useful. thank you spk77
|
|
|
03-18-2014, 10:00 AM
|
#22
|
Human being with feelings
Join Date: Jun 2009
Location: Earth
Posts: 1,340
|
Nice updates
|
|
|
03-18-2014, 01:27 PM
|
#23
|
Human being with feelings
Join Date: Sep 2010
Location: Finland
Posts: 776
|
Wohoo thanks!
Now, imagine how cool it would be if you could permanently dock this in the MIDI editor screenset... along with other scripted tools with interfaces... maybe something for Reaper v5.
Oh and, can the script listen to keyboard input? I'd really like to be able to close the window with esc key after using. And it would be ideal for it to pass keyboard commands like Ctrl+z through to Reaper.
Cheers
Last edited by Seventh; 03-18-2014 at 01:34 PM.
|
|
|
03-19-2014, 04:42 AM
|
#24
|
Human being with feelings
Join Date: Jun 2012
Location: Spain
Posts: 6,861
|
Great!  Thank you very much!
I was testing it on a bigger project with a piano track with many many notes and, even if I selected only a few to modify with the script, I could hear a lot of cracking sounds when dragging the control if it is playing the track. Not a big deal. But maybe it can be optimized to run in lower priority or something? Maybe it is just the way EEL scripts work.
How can I have the script window on top of the midi editor window? When I go and select other notes, the window disappears behind the midi editor window. It needs the little pin button
|
|
|
03-19-2014, 09:26 AM
|
#25
|
Human being with feelings
Join Date: Aug 2012
Location: Finland
Posts: 2,668
|
Thank you all,
Quote:
Originally Posted by Seventh
Wohoo thanks!
Now, imagine how cool it would be if you could permanently dock this in the MIDI editor screenset... along with other scripted tools with interfaces... maybe something for Reaper v5. 
|
That would be great.
Quote:
Originally Posted by Seventh
Oh and, can the script listen to keyboard input? I'd really like to be able to close the window with esc key after using. And it would be ideal for it to pass keyboard commands like Ctrl+z through to Reaper.
Cheers
|
In the next update, ctrl+z will be "undo" and esc-key will be "exit script".
Quote:
Originally Posted by heda
Great!  Thank you very much!
I was testing it on a bigger project with a piano track with many many notes and, even if I selected only a few to modify with the script, I could hear a lot of cracking sounds when dragging the control if it is playing the track. Not a big deal. But maybe it can be optimized to run in lower priority or something? Maybe it is just the way EEL scripts work.
|
Hmm..this script will take "relatively lot" of cpu resources when there are a lot of selected notes, don't know how to optimize it.
Quote:
Originally Posted by heda
How can I have the script window on top of the midi editor window? When I go and select other notes, the window disappears behind the midi editor window. It needs the little pin button 
|
It's not possible, unfortunately. Maybe it will be possible in the future (if/when EEL is updated)  .
|
|
|
03-19-2014, 10:15 AM
|
#26
|
Human being with feelings
Join Date: Jun 2013
Location: So Florida
Posts: 1,290
|
Quote:
Originally Posted by heda
Great!  ....
How can I have the script window on top of the midi editor window? When I go and select other notes, the window disappears behind the midi editor window. It needs the little pin button 
|
Hi,
thank you very much spk77..a really usefull tool! You are very skilled and generous..thanks!
I use a docked midi editor and the scripts gui does stay on top.
Guido
|
|
|
03-19-2014, 11:20 AM
|
#27
|
Human being with feelings
Join Date: Sep 2010
Location: Finland
Posts: 776
|
Quote:
Originally Posted by spk77
In the next update, ctrl+z will be "undo" and esc-key will be "exit script".
|
Awesome ^_^
|
|
|
03-19-2014, 05:31 PM
|
#28
|
Human being with feelings
Join Date: Jun 2012
Posts: 2,173
|
Thanks, spk77. I'm sure it will get much usage.
|
|
|
03-20-2014, 03:51 PM
|
#29
|
Human being with feelings
Join Date: Apr 2012
Location: Denver, CO
Posts: 249
|
Awesome Tool!
This will improve my workflow tremendously. I am terrible at drawing the changes with a mouse.
Thanks
|
|
|
03-21-2014, 10:45 AM
|
#30
|
Human being with feelings
Join Date: Aug 2012
Location: Finland
Posts: 2,668
|
Thanks again
I'm probably updating it this weekend (checking if there are serious bugs).
Here's another idea - "Pitch bend tool" (diving deep into the horrors of decaying sine um..curves).
(adjusting velocities in this gif)
I'm running out of axis:
1) lmb down+move mouse in y-coord: set wave height
2) lmb down+move mouse in x-coord: set decay
3) lmb down+move mouse in z-coord (towards floor/roof): do something
4) ? keeping lmb firmly down while pushing mouse through time: set wave length (number of sine waves)
|
|
|
03-21-2014, 11:19 AM
|
#31
|
Human being with feelings
Join Date: Mar 2008
Location: Unwired (probably in the proximity of Amsterdam)
Posts: 4,868
|
Excellent stuff, spk77!
Quote:
Originally Posted by spk77
[...]
Here's another idea - "Pitch bend tool" (diving deep into the horrors of decaying sine um..curves).
(adjusting velocities in this gif)
[...]
|
While I think some tools to aid pitch bend editing would be awesome, the idea of varying sine curves doesn't interest me much. Instead, I'd suggest to focus on ways to vary the shape of a (single) curve.
Consider that most targets for pitch bend (typically, synths) can already achieve tremolo/vibrato effects simply by using a (synced) LFO modulating oscillator pitch, where one simply has to draw a ramp of modulation values to indicate the depth of the sine waves. For that (typical) case, it is quite a convoluted workflow. Also, while it may be attractive to see the curve shape 'exactly' on screen, for a variety of reasons the result of modulation by an internal LFO typically produces much smoother results. (Of course, on the other hand, this would very useful when this approach is not possible.)
Btw, while pitch bend data is 14 bits, most targets respond only to a lower (e.g. 8 bit) resolution. You may want to account for that by doing some 'magic' during processing, so one may avoid having redundant MIDI data.
__________________
˙lɐd 'ʎɐʍ ƃuoɹʍ ǝɥʇ ǝɔıʌǝp ʇɐɥʇ ƃuıploɥ ǝɹ,noʎ
|
|
|
03-21-2014, 11:41 AM
|
#32
|
Human being with feelings
Join Date: Jun 2009
Location: Earth
Posts: 1,340
|
spk77,
I would absolutely love to see something like the decaying sine curve for sending OSC messages to FX parameters. Do you know if it would be possible to do something like that and have the sine function plotted in an eel gfx window?
|
|
|
03-21-2014, 11:45 AM
|
#33
|
Human being with feelings
Join Date: Aug 2012
Location: Finland
Posts: 2,668
|
Quote:
Originally Posted by Banned
Excellent stuff, spk77!
While I think some tools to aid pitch bend editing would be awesome, the idea of varying sine curves doesn't interest me much. Instead, I'd suggest to focus on ways to vary the shape of a (single) curve.
Consider that most targets for pitch bend (typically, synths) can already achieve tremolo/vibrato effects simply by using a (synced) LFO modulating oscillator pitch, where one simply has to draw a ramp of modulation values to indicate the depth of the sine waves. For that (typical) case, it is quite a convoluted workflow. Also, while it may be attractive to see the curve shape 'exactly' on screen, for a variety of reasons the result of modulation by an internal LFO typically produces much smoother results. (Of course, on the other hand, this would very useful when this approach is not possible.)
Btw, while pitch bend data is 14 bits, most targets respond only to a lower (e.g. 8 bit) resolution. You may want to account for that by doing some 'magic' during processing, so one may avoid having redundant MIDI data.
|
Thanks
Yeah, I'm just experimenting what's possible with EEL. (and I'm still using the MS wavetable synth  ).
|
|
|
03-21-2014, 11:52 AM
|
#34
|
Human being with feelings
Join Date: Aug 2012
Location: Finland
Posts: 2,668
|
Quote:
Originally Posted by Anton9
spk77,
I would absolutely love to see something like the decaying sine curve for sending OSC messages to FX parameters. Do you know if it would be possible to do something like that and have the sine function plotted in an eel gfx window?
|
I think it's possible, but I don't know how accurate (time wise) it would be.
|
|
|
03-22-2014, 05:25 AM
|
#35
|
Human being with feelings
Join Date: Oct 2013
Location: Buenos Aires, Argentina
Posts: 1,285
|
Hi Spk77!
Above all, thank you very, very, very, much for this great tool!! It was one of the few things I really missed in Reaperīs midi toolbox. In the image of your first post you seem to apply the tool, besides the velocities, to a bunch of CCs, but I must be wrong since it seems to work only for velocities. Have you thought, as another poster asked, to do a CC version of it? I see you are planning a pitch version, so if you could complete the set with a CC version, it would be absolutely killer for all of us midi users! Excuse me if I ended up asking for something besides giving you thanks, but I couldnīt resist the temptation...
What you did is really helpful...
|
|
|
03-22-2014, 05:59 AM
|
#36
|
Human being with feelings
Join Date: Aug 2012
Location: Finland
Posts: 2,668
|
Quote:
Originally Posted by Soli Deo Gloria
Hi Spk77!
Above all, thank you very, very, very, much for this great tool!! It was one of the few things I really missed in Reaperīs midi toolbox. In the image of your first post you seem to apply the tool, besides the velocities, to a bunch of CCs, but I must be wrong since it seems to work only for velocities. Have you thought, as another poster asked, to do a CC version of it? I see you are planning a pitch version, so if you could complete the set with a CC version, it would be absolutely killer for all of us midi users! Excuse me if I ended up asking for something besides giving you thanks, but I couldnīt resist the temptation...
What you did is really helpful...
|
Hi,
Yes, I'm adjusting velocities in the first post. I'll try to make a CC version also - I think I just convert this "velocity version" to work with selected CC events (for now).
|
|
|
03-22-2014, 08:38 AM
|
#37
|
Human being with feelings
Join Date: Oct 2013
Location: Buenos Aires, Argentina
Posts: 1,285
|
Quote:
Originally Posted by spk77
Hi,
Yes, I'm adjusting velocities in the first post. I'll try to make a CC version also - I think I just convert this "velocity version" to work with selected CC events (for now).
|
Awesome! -fantastic! - incredible!...(and the list goes on).
Thanks so much in advance!
|
|
|
03-22-2014, 01:44 PM
|
#38
|
Human being with feelings
Join Date: Aug 2012
Location: Finland
Posts: 2,668
|
zip file (post#1) is updated: "Apply curves to CCs":
NOTE: This doesn't work correctly (yet) when CCs from different lanes are selected. (curve is applied to all selected cc events). Also, not tested much.
Edit: range == 1 to 127 in "Velocity" mode and 0 to 127 in "CC" mode.
Last edited by spk77; 03-23-2014 at 03:23 AM.
|
|
|
03-22-2014, 03:20 PM
|
#39
|
Human being with feelings
Join Date: Jun 2012
Posts: 2,173
|
spk77, do you think it could be applied to position and length? Accel/decell and staccato/legato?
|
|
|
03-22-2014, 03:39 PM
|
#40
|
Human being with feelings
Join Date: Aug 2012
Location: Finland
Posts: 2,668
|
Quote:
Originally Posted by FnA
spk77, do you think it could be applied to position and length? Accel/decell and staccato/legato?
|
Yes, I think. At least it's possible to change pos/length with MIDI_SetNote().
|
|
|
Thread Tools |
|
Display Modes |
Linear Mode
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
All times are GMT -7. The time now is 01:24 AM.
|