1. Music & Audio
  2. Audio Production

7 Ways to Use and Edit MIDI Velocity

Read Time:15 minsLanguages:
This post is part of a series called Manipulating MIDI: Setup, Sequencing and Secrets.
Quick Tip: Using Multiple MIDI Controllers in FL Studio 9
Making Your MIDI Strings Even More Realistic

Velocity is a useful piece of data and being able to edit it easily is important. It can be used to control dynamics, filters, multiple samples and a variety of other functions. Understanding all of the options available to you for editing velocity can help you decide which tools to use for different circumstances.

Republished Tutorial

Every few weeks, we revisit some of our reader's favorite posts from throughout the history of the site. This tutorial was first published in September of 2009.

I'll begin by briefly explaining what velocity can be used for and then dive in and show you many various ways velocity can be edited. Although all of the examples I'm giving are specific to Logic, the techniques can be applied to any software that allows you to manipulate velocity. The tools may look different, but the principles are the same.

Ways to Use Velocity


The most basic and common use for velocity is to control the volume of an instrument. Think of the principle as being based on a real piano. The harder you hit a piano key, the louder the note. Similarly with MIDI the higher the velocity (i.e.. speed with which the key is being hit), the louder the note. No doubt you've seen and used this countless times so it will not require much discussion.

Using velocity to control dynamics is useful for any kind of instrument where you want to be able to change dynamics from one note to the next. Volume and gain are too "large scale" for editing on a note by note basis, which is why using velocity can be so useful. For example if you just want to accent a single note in a phrase, you would make the velocity of that note higher than the others.

As I said it's a simple concept, but for the sake of thoroughness here's a brief example. The first chord is hit with a high velocity of 105 to be nice and loud. The rest of the phrase tapers off from 45 down to 30.


Velocity is most useful for dynamics when you have an instrument that sounds different at different volumes. If you have an instrument that is pretty much all the same sound across the velocity spectrum, only louder or quieter, you can make the sound more interesting by assigning velocity to control a filter.

The easiest way to assign velocity to a filter in Logic is with EXS. Load up a patch (for this example I'll use the factory preset Garageband Harpsichord). Here's how the Harpsichord sounds with no filter, rising up in velocity and then back down:

Now we'll turn on the filter in EXS and set the Cutoff to a the lowest setting of 0%.

Next we'll assign Velocity to control the filter. Choose Filter Cutoff as destination and Velocity as Source, then set the amount to 100%.

The controller is now causing the filter to open up at higher velocities and close at lower velocities. The effect can most easily be heard at the lower velocities.

Multiple Samples for One Note

Another useful way to use velocity on a sampled instrument is to assign multiple samples to one note. You can do this by assigning each sample to different velocities, or a range of velocities, so that the sample will only play when the right velocity is hit.

We'll use a factory instrument to show an example of how you might use this. The factory EXS banjo has different articulations for different velocities, with a slide set to the highest velocity. Typically if you wanted to hear different samples on the same pitch you would need to use different instruments, so for the normal banjo sound you'd need one instrument and for the slide sound you would need another. Assigning different samples to different velocities in the same instrument allows you to control it all in once place. Here's an example:

It's pretty straightforward. The bend sample on the last note is triggered by playing a velocity of 127 while all of the other notes are at a velocity of 82. In EXS the assignment of different velocities to different samples can be controlled in the EXS24 Instrument Editor.

Ways to Manipulate Velocity

Now that we're seen some of the useful things velocity can do, let's look at the various tools available to use for editing it. In general some of these tools are more useful than others. When to use one versus the other will depend on what effect you are trying to achieve as well as which tool you are most comfortable using. I highly suggest you experiment with all of them at some point even if you never intend to use them again, just so you can become aware of what possibilities exist.

Playing It In

The easiest way to create velocity data is to play it in on your keyboard. This is also the most natural way, because the human imperfections of your playing can help make the sample sound more like an instrument and less like a robot.

Playing your parts in is recommended whenever possible so that you have control over the dynamics and phrasing of your music. Only after you have entered your notes should you go back and make fine adjustments.

Event List

The Event List allows you to view every piece of MIDI data in your region as text, rather than a graphic display like the Hyper Editor. Take note that velocity is listed under the Val field.

This editor is useful for when you want to make a specific change on a single note or a very small set of notes. For example if you knew that your slide sample was set to velocity 127 you could go in to the event list, find the note you want to edit (if you click on the note in the piano roll it will become highlighted in the Event List) and change the velocity value to 127.

Here's what the Event List looks like for the Beethoven sample we used earlier:

Not exactly the most musically inspiring image...

As a velocity editor, the Event List is probably one of the least efficient methods available.

Piano Roll Hyperdraw

Hyperdraw in the Piano Roll editor is where I do the majority of my velocity editing. The graphic representation of your notes makes it very easy to visualize what the music will sound like and can help you spot any notes that are too quiet or loud from the rest of the phrase. You can easily edit one or many notes using the Velocity Tool or by using the mouse to draw lines in.

Here's a rising cello line, which is dynamically uninteresting:

Let's make it more interesting by adding in a crescendo. A very easy way to do that is to click in the hyper draw window and release underneath the first (or last) note at the velocity level you want. Notice that you'll have to click and hold for about half a second for the line to take shape. Then as you move the mouse around you'll notice a green line. Click at the end of the crescendo to draw in the line and the velocities will adjust to your line.

Much more exciting! You could also use the line to change only the notes you have selected. Let's go back to our straight velocity version, and this time we'll add an accent to the third note of the first three beats and the last note. I'll shift + click on each of these notes to select them.

This time click (and hold for a second before releasing) at the start of the bar at the highest velocity, and when you release the line at the end of the measure hold down option. Now only the selected notes will take the shape of the line you drew in (in this case I drew a straight line across the top).

Another trick we can use is to have the line affect the velocities relatively, meaning that although the velocities will follow the direction of the line they will also maintain their relative shape. This is very useful if you have an accented pattern but also want an overall decrescendo. Instead of option + click like the previous example, you command + click.

Using this technique properly take some getting used to. The result is not affected by the actual velocities you draw your line on, but the overall shape of your line. Whether your line starts at 80 and ends at 60, or starts at 50 and ends at 30, your phrase will adjust the curve over a range of 20. Notice how much the line I drew here affected the shape of the whole phrase:

Parameters Window

While the Piano Roll Hyperdraw window is the most useful tool for making note to note changes, the Parameters Window is the most useful for making more global changes to entire regions and even entire tracks.

The Region Parameters Window can be found in the upper left side of the Arrange window, with the Track Parameters Window right below it.

The two parameters we're most interested in are Velocity and Dynamics.

Velocity lets us change the overall velocities in a region. Select a region, change the velocity to +10, and every note in the region will now play 10 values louder. This is an extremely quick and handy way to try out new volumes or to make easy changes to repeated regions.

An important thing to be aware of is that although the number you enter will affect the data, the data itself will not actually appear to be any different. You can think of it as adding a filter right before playback which says "I know this says velocity 15, but we're going to add +10 to make it 25." It's important to be aware of this so that when you look into your region you understand why it still says the velocity is 15.

We'll use a simple piano example. Here's a region with the velocities at 60:

If I want to make the entire region louder by 40, all I have to do is change the region parameter to read +40.

Now the entire phrase is 40 louder.

Similarly if you wanted every single region on the piano to be 40 louder, rather than select all the regions and change them you could change the Velocity on the track to read +40.

Dynamics can be thought of like Velocity Compression. You can use the Dynamics parameter to decrease or increase the overall dynamic range of a region. This is very helpful if you have some notes that are disappearing because their velocity is too low, or some notes that are jumping out too much because their velocities are too high. Rather than go in and edit each individual velocity (which I would probably do in the Piano Roll Hyperdraw window), you can globally squash the velocity range.

In this example the velocities are all over the map and it sounds like a mess:

We can adjust the Dynamics parameter to squash the overall dynamic range, so that the extremes in velocity are no longer so extreme. Here's what we get if I squash it down to 50% of the original velocity range:

It now still has a lot of dynamic breathing room but feels much more controlled. This is a much more "human" way to even out velocities rather than just setting one velocity for the entire phrase and making it sound like HAL was playing the piano.

You could also apply the reverse affect and set the Dynamics parameter to 150% to make the velocity range even greater.

Transform Window

The Transform Window is great for special situations and effects. You can create your own settings, but Logic comes with a variety of presets that can be used for manipulating velocity. Those presets are Random Velocity, Humanize, Exponential Velocity, Crescendo and Velocity Limiter.

Random Velocity does what it sounds like it will. You can choose as many notes as you like, set the range of lowest and highest possible velocities, and then choose Operate to scatter the velocities around.

Applying random velocities from 0 to 127 on our harpsichord lick has this effect:

Although worthless for melodies or lines that need to be somewhat coherent, using random velocities can give you some interesting effects for rhythmic and percussion parts.

Humanize can be considered a cousin to Randomize. Rather than choosing a random velocity from within a given set, Humanize shifts the velocity up or down by a random amount within a limit. It also randomly moves Position and Length. Humanize is a great tool to apply to sections that are very stiff and have little to no dynamic range. If you drew in a part, for example, you could then use Humanize to create a sense of imperfection. The Transform Window lets you control how large a range you want it to randomize by, but generally lower numbers will give a more subtle and realistic effect.

Using Humanize helps make the following piano part to feel a little more like it was played by an actual person. The effect is pretty subtle, though.

Exponential Velocity lets us create more interesting velocity curves than simple straight lines. For the effect to work properly, you have to already have a shape in place, such as a line going up or down.

Using our crescendo cello line from earlier as an example, we'll create a curve of 3.0, which saves the greatest increase in volume for the end of the measure.

Experiment with different numbers to see how it effects the overall shape of the curve. Here is the same cello crescendo but with a curve of -3.0:

The curves that you can create with the Exponential Velocity tool are much more realistic and exciting than simple straight lines. Imagine yourself playing a snare drum crescendo over one measure. Do you increase volume at a perfectly even rate, or is there more of a build towards one part of the measure versus the other?

The Crescendo tool is what you can use for those more regular straight lines. The function of the tool is pretty simple and doesn't require any extra explanation if you've already tried out the other tools. The only trap to watch out for that I've found is that you have to manually enter the "Position" parameter, otherwise it can't seem to figure out which notes you want to apply the crescendo to, even if they're selected.

The Velocity Limiter can be used prevent velocities from going higher or lower than a set value. This could be useful if all of the velocities on your piano patch below 30 are barely audible. Apply the Velocity Limiter with a Min setting of 30 and even your lowest notes will come up to a level where they can be heard.

Another use for this could be on an instrument like the Banjo we used earlier, where very high velocity triggered a slide sample. We'll use the Beethoven melody from before (as he rolls in his grave) as an example. Here the high velocities are causing bends in awkward places:

If we use the Velocity Limiter to set a Max velocity of 120, it brings down all of our high velocities below a level that triggers the slide:

Hyper Editor

The Hyper Editor is another way to edit MIDI data in a visual way. I have never found the Hyper Editor practical or helpful. To me the interface is difficult to work with. Although you can visually draw velocity curves, much line in Hyperdraw, you have much less control. I encourage you to open the window up and poke around a bit, but as far as a tool for editing velocity I think you have far better options available.

Score Editor

I know some composers who work almost exclusively in the Score Editor, but personally I am not one of them. Although I can appreciate the value in working with real written music, I find the interface of the Score Editor difficult to work with and inefficient. Nevertheless, there are ways to edit velocity when using this view.

Similar to the Piano Roll Hyperdraw, there is a Hyperdraw window which you can enable via the View menu. In my template the numbers on the left hand side were not shown and I had to drag the window out a bit to be able to view them. This area works in exactly the same way as the the other Hyperdraw window, so I needn't say any more about it.

Another way you can edit velocity in the Score Editor is to click on an individual note or group of notes and change the velocity parameter. To me this seems somewhat tedious and is about as helpful as using the Event List.


You need to try out all of the available tools before you can decide which ones work most naturally for you. I would say I use the Piano Roll Hyperdraw and Parameters Window 95% of the time, using the other tools only for the occasional special need or effect. Perhaps you prefer the interface of the Hyper Edit window and the specificity of the Event List.

Have you found that one tool for editing velocity has been better or worse for you than another? Please share your experiences in the comments.

Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.