Old 06-20-2019, 08:39 AM   #1
lowellben
Human being with feelings
 
lowellben's Avatar
 
Join Date: Aug 2010
Location: They put me in a home.
Posts: 3,432
Default MIDI Humanize in Reaper

I know you can use the humanize feature to shift around notes and velocities and such.

However, this actually changes the actual location of the notes.

For playback purposes only, how can you humanize the note timings, velocities and such WITHOUT having the MIDI item actual be impacted.

I am looking for a way to have expressive MIDI playback in an example without changing the properties of the MIDI file please.

JSFX? Item FX? I can't figure this out.

Humanize always seems to change the item itself.
__________________
47.8% of statistics are made up.
lowellben is offline   Reply With Quote
Old 06-20-2019, 08:46 AM   #2
Breeder
Human being with feelings
 
Breeder's Avatar
 
Join Date: Nov 2010
Posts: 2,436
Default

Quote:
Originally Posted by lowellben View Post
I know you can use the humanize feature to shift around notes and velocities and such.

However, this actually changes the actual location of the notes.

For playback purposes only, how can you humanize the note timings, velocities and such WITHOUT having the MIDI item actual be impacted.

I am looking for a way to have expressive MIDI playback in an example without changing the properties of the MIDI file please.

JSFX? Item FX? I can't figure this out.

Humanize always seems to change the item itself.
For this exact reason I love using duplicate take feature and work on that for previewing changes. Glueing and rendering MIDI output of the item are also nice features to finish this up once done

There's no real recipe for this, simply gather all the features during experimenting somewhere and combine them for faster editing. I personally keep all that stuff in customized menus

On the other hand, there's one JS made by schwa to humanize MIDI so you could try using that instead. But I think it humanizes again on every note so you won't get the same result twice.
Breeder is offline   Reply With Quote
Old 06-20-2019, 08:52 AM   #3
lowellben
Human being with feelings
 
lowellben's Avatar
 
Join Date: Aug 2010
Location: They put me in a home.
Posts: 3,432
Default

Quote:
Originally Posted by Breeder View Post
For this exact reason I love using duplicate take feature and work on that for previewing changes. Glueing and rendering MIDI output of the item are also nice features to finish this up once done

There's no real recipe for this, simply gather all the features during experimenting somewhere and combine them for faster editing. I personally keep all that stuff in customized menus

On the other hand, there's one JS made by schwa to humanize MIDI so you could try using that instead. But I think it humanizes again on every note so you won't get the same result twice.
What do you mean duplicate take work and glue?

I am OK with not getting the same response each time, actually. Thanks! Though not ideal.
__________________
47.8% of statistics are made up.
lowellben is offline   Reply With Quote
Old 06-20-2019, 09:43 AM   #4
o_e
Human being with feelings
 
o_e's Avatar
 
Join Date: May 2016
Posts: 681
Default

Quote:
Originally Posted by lowellben View Post
What do you mean duplicate take work and glue?

I am OK with not getting the same response each time, actually. Thanks! Though not ideal.
You may also take a look at:

https://stash.reaper.fm/v/30451/MIDI...0Humanizer.eel

see also post #5 in the following thread:

https://forum.cockos.com/showthread....30#post1900430
o_e is offline   Reply With Quote
Old 06-20-2019, 10:05 AM   #5
lunker
Human being with feelings
 
lunker's Avatar
 
Join Date: Nov 2007
Location: Lucas, TX, USA (via Luleå, Sweden)
Posts: 2,008
Default

You beat me to it!

I've re-written this in Lua, and think it works better (faster, more flexible, cleaner code). I'd like to add a better GUI for it before posting the updated version.

@lowellben : I'm not sure if this is exactly what @Breeder meant for duplicate take & glue, but this is what I do:

a) Run the script on an existing MIDI item (it automatically mutes the original, and creates a "humanized" copy -- not sure if the *.eel version did that, though ... so you may need to do that manually until I post he Lua version).
b) If I don't like the results, re-run it on the original MIDI item (repeat until I get a new take that I like).

You could do that same thing (by manually duplicating the MIDI item) with the other humanizer tools that Reaper has. I am thinking that is pretty much what @Breeder meant (and if you split the original MIDI item so that you could humanize different sections differently, then glue them together at the end to get back to one MIDI item).


EDIT: Reaper doesn't have stretch markers for MIDI yet, does it? If it does, I should re-write the script to take advantage of them, because it is basically doing what stretch markers would do if a marker was placed on every beat and then each marker was moved ever so slightly/randomly to simulate a human performance.
__________________
Best Regards, Ernie "lunker" Lundqvist
BDSM (Bad Dog Studio Musicians)
Windows 10 running on Z390 + i7-8700

Last edited by lunker; 06-20-2019 at 10:25 AM.
lunker is online now   Reply With Quote
Old 06-20-2019, 10:12 AM   #6
lowellben
Human being with feelings
 
lowellben's Avatar
 
Join Date: Aug 2010
Location: They put me in a home.
Posts: 3,432
Default

Quote:
Originally Posted by lunker View Post
You beat me to it!

I've re-written this in Lua, and think it works better (faster, more flexible, cleaner code). I'd like to add a better GUI for it before posting the updated version.

@lowellben : I'm not sure if this is exactly what @Breeder meant for duplicate take & glue, but this is what I do:

a) run the script on an existing MIDI item (it mutes the original, and created a "humanized" copy.
b) If I don't like the results, re-run it on the original MIDI item (repeat until I get a new take that I like).

You could do that same thing (by manually duplicating the MIDI item) with the other humanizer tools that Reaper has. I am thinking that is pretty much what @Breeder meant (and if you split the original MIDI item so that you could humanize different sections differently, then glue them together at the end).
Oh I see now. Thanks! I await your new lua update
__________________
47.8% of statistics are made up.
lowellben is offline   Reply With Quote
Old 06-20-2019, 10:28 AM   #7
lunker
Human being with feelings
 
lunker's Avatar
 
Join Date: Nov 2007
Location: Lucas, TX, USA (via Luleå, Sweden)
Posts: 2,008
Default

Quote:
Originally Posted by lowellben View Post
Oh I see now. Thanks! I await your new lua update
While I wish I had encouraging news about releasing the new version, I am about to head of to Croatia and the surrounding countries for a couple of weeks worth of much needed vacation, so there won't be an update too soon.

Unfortunately, I didn't plan ahead to fit a visit with Evil Dragon into our schedule. But at least I'll get to see his beautiful part of the world!
__________________
Best Regards, Ernie "lunker" Lundqvist
BDSM (Bad Dog Studio Musicians)
Windows 10 running on Z390 + i7-8700

Last edited by lunker; 06-20-2019 at 10:36 AM.
lunker is online now   Reply With Quote
Old 06-20-2019, 11:23 AM   #8
Breeder
Human being with feelings
 
Breeder's Avatar
 
Join Date: Nov 2010
Posts: 2,436
Default

Quote:
Originally Posted by lowellben View Post
What do you mean duplicate take work and glue?
Lunker described it really well, but I already wrote this so here goes

Duplicate MIDI take you wish to do extensive editing on and work on that take - if you need to preview your humanize changes against original midi, simply activate the original take (if your options allow it, simply clicking the take in the arrange should do it). Once done, glue/render/crop so you're back to one take for that item and have your edits consolidated (or keep other take for further reference)

I always find that when I humanize I always end up doing it manually without snap enabled even if using built-in humanize function. There's something human about moving stuff with mouse and I believe it shows (or hears) against computer generated randomization. If you're also playing some parts with your MIDI instruments, I believe your human-ness will propagate nicely and combine nicely with mouse edits and instrument play-ins. Micro groove is IMHO one of the more important factors in music, even if you can't hear it directly - there's something about humans doing things as opposed to machines no matter how evolved the machine is. There IS a difference even if only subliminal. We still listen to Mozart but nobody is really listening to mechanical piano machines anymore. But I bet that at the time people were mesmerized by them the same way we are today by our conception of AI (which may be completely wrong anyway)

Last edited by Breeder; 06-20-2019 at 11:40 AM.
Breeder is offline   Reply With Quote
Old 06-20-2019, 11:29 AM   #9
poplomop
Human being with feelings
 
Join Date: Jan 2010
Posts: 201
Default

XQ Drum Deviator https://forum.cockos.com/showthread.php?t=216953 is interesting. You don't have to do any duplicating or gluing. But apparently the "max timing deviation" only goes up to 50ms. I wish it was more.
poplomop is offline   Reply With Quote
Old 06-20-2019, 11:33 AM   #10
Breeder
Human being with feelings
 
Breeder's Avatar
 
Join Date: Nov 2010
Posts: 2,436
Default

Quote:
Originally Posted by poplomop View Post
XQ Drum Deviator https://forum.cockos.com/showthread.php?t=216953 is interesting. You don't have to do any duplicating or gluing. But apparently the "max timing deviation" only goes up to 50ms. I wish it was more.
This is awesome, thank you!
Breeder is offline   Reply With Quote
Old 06-20-2019, 11:45 AM   #11
poplomop
Human being with feelings
 
Join Date: Jan 2010
Posts: 201
Default

I also wish all the sliders would fit on my screen haha. But yep it's awesome and everyone make sure to open the script and read the instructions in it.

EDIT: The velocity randomization works great but for note position randomization it seems to move the note positions only a little tiny bit for some reason. Not sure if it's a bug or if it's supposed to do that or if I'm missing something.

Last edited by poplomop; 06-20-2019 at 02:14 PM.
poplomop is offline   Reply With Quote
Old 06-20-2019, 01:47 PM   #12
o_e
Human being with feelings
 
o_e's Avatar
 
Join Date: May 2016
Posts: 681
Default

Quote:
Originally Posted by lunker View Post
While I wish I had encouraging news about releasing the new version, I am about to head of to Croatia and the surrounding countries for a couple of weeks worth of much needed vacation, so there won't be an update too soon.
Would you be so kind to announce it here in the forum then..?
Thanks!
o_e is offline   Reply With Quote
Old 06-20-2019, 01:52 PM   #13
Tomm
Human being with feelings
 
Join Date: Nov 2007
Posts: 1,331
Default

Try the following:

JS: schwa/midi_humanizer
JS: IX/MIDI_Wobulator
JS: IX/MIDI_Velocifier II
JS: IX/MIDI_Tool
JS: IX/MIDI_Tool II
Tomm is offline   Reply With Quote
Old 06-20-2019, 03:23 PM   #14
poplomop
Human being with feelings
 
Join Date: Jan 2010
Posts: 201
Default

Actually... apparently XQ Drum Deviator is included in reapack. Did not know that.
poplomop is offline   Reply With Quote
Old 06-21-2019, 02:57 AM   #15
o_e
Human being with feelings
 
o_e's Avatar
 
Join Date: May 2016
Posts: 681
Default

Quote:
Originally Posted by Tomm View Post
Try the following:

JS: schwa/midi_humanizer
JS: IX/MIDI_Wobulator
JS: IX/MIDI_Velocifier II
JS: IX/MIDI_Tool
JS: IX/MIDI_Tool II
I can't find these plug ins in my JS folder. Are the names exactly like you wrote them (I'am using the lastest Reaper version)?
Thanks!
o_e is offline   Reply With Quote
Old 06-21-2019, 03:16 AM   #16
_Stevie_
Human being with feelings
 
_Stevie_'s Avatar
 
Join Date: Oct 2017
Location: Black Forest
Posts: 5,054
Default

What I do is: play in my stuff and then apply iterative quantize (that’s what it’s called in Cubase).
I created some quantize scripts, which will quantize on a percentage level (using 50%, so I can execute the script several times to fit the desired result). Velocity, I’m usually doing manually, same as Breeder.
__________________
My Reascripts forum thread | My Reascripts on GitHub
If you like or use my scripts, please support the Ukraine: Ukraine Crisis Relief Fund | DirectRelief | Save The Children | Razom
_Stevie_ is offline   Reply With Quote
Old 06-21-2019, 06:55 AM   #17
Tomm
Human being with feelings
 
Join Date: Nov 2007
Posts: 1,331
Default

Quote:
Originally Posted by o_e View Post
I can't find these plug ins in my JS folder. Are the names exactly like you wrote them (I'am using the lastest Reaper version)?
Thanks!
Ah yea, looks like they were renamed in a more recent version:

JS: MIDI Velocity and Timing Humanizer
JS: MIDI Tool
JS: MIDI Tool v2
JS: MIDI Velocity Variation Generator

not sure where "Wobulator" went, but you could also do the same thing with the built-in random modulation features (tie parameter modulation to the MIDIController plugin's pitch attribute)
Tomm is offline   Reply With Quote
Old 06-21-2019, 10:15 AM   #18
o_e
Human being with feelings
 
o_e's Avatar
 
Join Date: May 2016
Posts: 681
Default

Quote:
Originally Posted by Tomm View Post
Ah yea, looks like they were renamed in a more recent version:

JS: MIDI Velocity and Timing Humanizer
JS: MIDI Tool
JS: MIDI Tool v2
JS: MIDI Velocity Variation Generator

not sure where "Wobulator" went, but you could also do the same thing with the built-in random modulation features (tie parameter modulation to the MIDIController plugin's pitch attribute)
Thanks!
o_e is offline   Reply With Quote
Old 06-21-2019, 12:25 PM   #19
Breeder
Human being with feelings
 
Breeder's Avatar
 
Join Date: Nov 2010
Posts: 2,436
Default

Quote:
Originally Posted by _Stevie_ View Post
What I do is: play in my stuff and then apply iterative quantize (that’s what it’s called in Cubase).
I created some quantize scripts, which will quantize on a percentage level (using 50%, so I can execute the script several times to fit the desired result). Velocity, I’m usually doing manually, same as Breeder.
That too...I think whatever allows us to keep part of the human inside the played part is not a wrong approach out of many available. Man, so nice to see this philosophy spreading. Computers are lovely, but human is human!
Breeder is offline   Reply With Quote
Old 06-21-2019, 12:58 PM   #20
Tomm
Human being with feelings
 
Join Date: Nov 2007
Posts: 1,331
Default

that's what the "strength" value is in the quanitze window



no need for scripts or special plugins with REAPER... not as great as the accessible features of say eMagic Logic from 20 years ago (quanitization/dynamics features always accessible on the TCP) but almost nothing is too far away within REAPER if ya know where to look
Tomm is offline   Reply With Quote
Old 06-21-2019, 01:12 PM   #21
_Stevie_
Human being with feelings
 
_Stevie_'s Avatar
 
Join Date: Oct 2017
Location: Black Forest
Posts: 5,054
Default

The Reaper function is very powerful, but there are some shortcomings.

- no presets
- you have to decide whether quantize affects selected or all notes.
I prefer:
no selection = all notes affected
Selection = only selected notes affected
__________________
My Reascripts forum thread | My Reascripts on GitHub
If you like or use my scripts, please support the Ukraine: Ukraine Crisis Relief Fund | DirectRelief | Save The Children | Razom
_Stevie_ 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 06:37 AM.


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