Humanizer for MIDI editor

10 replies [Last post]
Mario
User offline. Last seen 21 weeks 6 days ago. Offline
Joined: 2009-05-31
Posts:

I know, it's not even close to beta. But I'd like to make feature request for the MIDI implementation in Ardour 3.0 though. Unfortunately I am not able to compile the current svn, so I'm not able to check if such a feature is implemented already.

I'm planning to use a drum VST like 'Addictive Drums' (this one sounds just amazingly real). I'd add some notes in the MIDI editor and let Ardour play the drum part through my VST plugin. I've made a few tests with the demo version of Addictive Drums (and Rosegarden) and noticed that you have to change the velocity slightly for every note to make it sound less like a machine. It helps either to not quantize but rather move the notes slighty away from the beat.

What I like to see in Ardour when it comes to MIDI integration is a humanizer function. I imagine that you mark notes and open a little dialog where you can enter some values for minimum and maximum change (in % based on an adjustable note length) and some values for minimum and maximum change (in % of max. velocity). After clicking OK the humanizer should change the marked notes based on the given values.

Would this be possible to add in the 3.0 release or maybe in the near future after that release?

Regards
Mario

peder
User offline. Last seen 48 weeks 3 days ago. Offline
Joined: 2007-05-08
Posts:

Maybe you should post it as a feature request in the Issue tracker...

seanbutnotheard
seanbutnotheard's picture
User offline. Last seen 5 weeks 2 days ago. Offline
Joined: 2009-05-27
Posts:

I think the right way to do this would be for someone to make a MIDI-in/MIDI-out humanizer plugin (LV2 maybe?). That way you're not messing with your actual MIDI data and you could change the amount of randomness on the fly. I'm sure it would be pretty trivial to write such a plugin.

Mario
User offline. Last seen 21 weeks 6 days ago. Offline
Joined: 2009-05-31
Posts:

@peder
I thought about posting a request in the issue tracker but like I wrote before, I am not able to compile any 3.0 svn and I don't know if this is built in already.

@seanbutnotheard
I be happy with both solutions although I think that this feature should be a native one instead of a plugin. On the other hand, if such a plugin is trivial to code... go for it ;o)

seanbutnotheard
seanbutnotheard's picture
User offline. Last seen 5 weeks 2 days ago. Offline
Joined: 2009-05-27
Posts:

Trivial, that is, for someone with experience programming MIDI plugins... :) I suppose I should have qualified that.

Mario
User offline. Last seen 21 weeks 6 days ago. Offline
Joined: 2009-05-31
Posts:

FYI: As suggested I opened a feature request in the issue tracker: http://tracker.ardour.org/view.php?id=2747

thorgal
User offline. Last seen 1 year 20 weeks ago. Offline
Joined: 2007-08-03
Posts:

hi Mario,

I agree with you that a simple humanizer would be cool to have.
However, this is not that easy if you truly want realism. I do all my drumming with AD in rosegarden and I do have to go through each and every note velocity. Why ? Because a too random pattern is not human either. When I say too random, i am not talking about the amplitude of the velocity variation but the velocity curve along the timeline of a pattern. I played the drums a few years ago and I can clearly hear that it's not totally random from strike to strike.

Mario
User offline. Last seen 21 weeks 6 days ago. Offline
Joined: 2009-05-31
Posts:

Hi thorgal,

that sounds pretty interesting! Can you kindly give a detailed explanation about how to edit the velocity curve along the timeline of a pattern to make it sound "human"?

I suppose that you're right. A humanizer is still not human. But I think a random velocity variation sounds much more human than leaving the velocity like it is. I bet most of us can't hear that it's not a real drummer and you save a lot of hard work. Besides that every drum in AD is sampled multiple times, so you've got a little variation anyway (which is definitely not enough to make it sound human).

Btw.: AD ships with a bunch of MIDI examples. They sound absolutely human. Do you think they were played on a real drum set which was connected via MIDI?

thorgal
User offline. Last seen 1 year 20 weeks ago. Offline
Joined: 2007-08-03
Posts:

yes, AD MIDI presets were played by a real guy :)

What I meant is that if you for example play a doubled-up beat on the hh, you have a strong bias here due to using 2 alternating hands, so the randomness of one hand is not the same as the randomness of the other, you see what I mean ? you can clearly hear that. If the whole hh was random, you would lose the feeling that it was played by alternating left-hand strokes with right-hand strokes.

Same goes for other things like : what happens if you mark the beat with the bass drum while in the same moment you hit the hh and open it with your left foot ? There are plenty of correlations like this that no automatic tool can possibly go through. I spend a lot of time tweaking my drum lines, I tell you. But the end result is cool because AD makes it possible from the start to have a strong realism out-of-the-box.

Mario
User offline. Last seen 21 weeks 6 days ago. Offline
Joined: 2009-05-31
Posts:

Thanks for the information, thorgal. You should really work that out together with a good coder and create a set of rules to come close to a perfect drum machine :-).

thorgal
User offline. Last seen 1 year 20 weeks ago. Offline
Joined: 2007-08-03
Posts:

yeah, it would be cool ... but honestly, I think it is a bit of wishful thinking. All the time spent in trying to code rules that are not even very objective (each drum player has his/her own bias) could be spent tweaking your MIDI velocity manually :D

I think, what we need is simpler: a very powerful key binding set. Using the mouse for these things is absolutely tiring and unhealthy. What you want is (to continue my hh example) to select some notes very fast thanks to n easy to use keyboard action, apply a bit of randomness to these notes only with a simple key action, or apply some linear velocity curve like a straight crescendo, or some user defined curves (presets), etc.

So we "just" need two things:
- velocity curve presets (including randomness), totally customizable
- key bindings to quickly edit the velocity spectrum, which requires fast and efficient note selection

I forgot to mention: in experimental physics, we use two types of errors when publishing data: the statistical error, and the systematic error. That's the same here.