July 10, 2008

Using The Mod Wheel As A Volume/Velocity Control in Logic  [ Edit ] 

I play acoustic drums way more than I program drums in MIDI, but I like doing it, and I was working on something tonight for a song of Ray wrote. When I’m playing the parts, I’m using a MIDI keyboard, and it’s not ideal. There are several velocity curves built-in to the keyboard, meaning there are different ways the keys can respond to how hard I hit them (in MIDI terms, velocity basically means volume). With some settings, the notes coming out will be loud no matter how hard I hit them; with others, everything is very quiet. The setting I use is supposed to have a nearly linear relationship, so if I hit the key softly, a very soft note comes out; if I hit it very hard, a loud note comes out.

Unfortunately, it doesn’t work as nicely for drum programming as I’d like. Part of what makes a key know how hard you’ve hit it is how far it travels, and in how much time it does so. The half-inch or so of travel the key goes through is just too much for my purposes — the technique is totally different. (Makes sense, considering a keyboard is not a drum.) But the upshot is that playing percussively on the MIDI controller yields all loud notes (or all mostly loud notes) all the time, regardless of velocity curve setting. With a more expensive keyboard, I might have more control over this, but with the MK-225C, that’s what happens.

I was wondering if I could get Logic to always subtract 20 (or some other number) from the incoming note velocity, or even just fix the velocity to a value that I could control easily. Ideally, I’d like to be able to control this number using the mod wheel on my keyboard, so then I could move the wheel just like a volume control. Then I’d have some additional control over the volume of the notes, but still be able to play them without necessarily having to tweak everything with the mouse. This turns out to be not very difficult to set up, but you have to know what to do.

I found this thread on LogicProHelp that got me started. There are instructions there for setting up a fader and transformer in the Environment to get a fixed velocity value depending on where your mod wheel is set. This is quite useful. Here’s a little soundless movie showing the setup once I had it working.

If you don’t have Quicktime you can see it as Flash on blip.tv.

The tricky thing, I found, was making sure that your keyboard is set to the same channel that the fader object is listening to. When I set this up, I had the Channel parameter on the fader set to 1 as instructed, but the mod wheel wasn’t having an effect. It turned out my keyboard was using MIDI channel 10, so I set the keyboard to operate on channel 1, and all was well. This is actually quite useful — if I want to use the mod wheel control, I can use channel 1; if I want to ignore the mod wheel as a volume control, I can use a different channel. Excellent.

I wanted to do one better, though. Instead of fixing the velocity to a particular value, which makes every incoming note the same volume, and sounds lame, I wanted to be able to dynamically shave a little off the top. That way I could save some of the performed volume, have a bit of variation, but not have every incoming note be really loud.

To do that, change the Transformer object under Velocity: instead of Fix, choose Sub (short for subtract). Now the value of the mod wheel (it goes from 1 to 127 like all MIDI stuff) is subtracted from whatever you play. This turns the mod wheel into sort an inverted volume control — turn it up all the way and every note coming in will have a velocity value of 1, the quietest you can get. Turn it up just a little, and you’ll be able top out at 120 or 110 or so. I found this to be pretty useful.

You can, of course, go crazy with this Transformer object and have it only affect the very hardest played notes, or only the softest, or whatever you want. As with most things in Logic, there’s a lot of tweakability available to you. This solution suits my current needs.

I grant that it’s entirely possible it’s just a lack of finesse on the keys that’s giving me problems with the drum programming, but I think it’s just not the right tool for the job. Maybe someday I’ll get a Trigger Finger or PadKontrol, both of which are designed for just this kind of thing. I’d love to have one of them, but I don’t feel like I can justify it with how much programming I’m (not) doing lately.

Posted by Joe
Post a comment

Remember personal info?