Like most other modern DAWs, Logic Pro X has an Audio-to-MIDI conversion feature that lets you take an audio waveform and extract MIDI notes from it. In fact, Logic actually has two ways to do this—their drum replacement feature, strictly for non-pitched drums and percussive instruments, and their dedicated Audio-to-MIDI feature, for melodies. It’s this last one we’ll be talking about here.
I want my M-I-D-I
A MIDI track that’s been converted from an audio recording can be used in a variety of ways. You could replace the real instrument with a virtual one—this might be something you’d want to do if you had a good performance but a flawed recording. For example, you might be stuck with a weak or muffled-sounding bass, or a buzz or other leakage that ruins the track, and it’s too late to redo the part (the session is over, or the player has gone).
A more creative use might be to double the original part with a Virtual Instrument, as an arrangement choice. You could have a virtual piano double a guitar melody or vocal line, or thicken up a solo brass line with a couple of different-sounding sampled brass parts. In applications like that, even if the MIDI tracks don’t end up sounding as expressive as the original, they may sit under it nicely—the full musical expression is supplied by the acoustic performance, and the virtual doublings add richness, chorusing, and depth to the sound.
An Audio-to-MIDI conversion can also come in handy if you want to generate a simple score part. You might have a scratch part that you played in on an acoustic instrument (possibly one that’s not your main instrument), and you want to replace it with a performance by a more seasoned studio player. But while you want the benefit of his technique, you still want him to stick closely to the notes and flourishes you’d carefully worked out (even if you couldn’t execute them to your own satisfaction). If you generate a MIDI track from the audio recording, Logic can display the MIDI notes on its Score page, where you can clean them up and print out the part for the player, saving his time (and possibly your money!) while he sits down and transcribes the part by ear.
Doing an Audio-to-MIDI conversion in Logic is fairly straightforward, but it’s never perfect, and, depending on the particular audio recording that’ll be serving as the source, there may be a bit of tweaking involved to get a fully usable part. And you’re also subject to the inherent limitations of the feature itself, which can only handle certain parts and certain performance information. But, those caveats aside, it’s still a very useful feature. As I go through the steps to do a typical conversion, and look at an example of the applications I mentioned, I’ll also point out the limitations and gotchas of Logic’s version of this feature.
Flex your Audio
In the current version of Logic Pro X, the Audio-to-MIDI feature is tied to Logic’s Flex Pitch feature. Longtime Logic users may remember that this feature was present in earlier versions as one of the Audio Editor window’s tools, but now it’s accessed from within the Flex display. So, the first thing you need to do is enable Flex Pitch for the audio track to be converted (for my example, I’m using an electric bass part). Just like Flex Pitch, the Audio-to MIDI conversion can only handle Monophonic parts.
Audio Example 1: A snippet of the original bass track (audio recording):
Double-clicking the region will open the Track editor, where I can enable Flex Pitch from that pane’s sub-menu (Fig 1).
Fig 1 Enabling Flex Pitch in Logic’s track Editor pane
Logic will perform its analysis of the track, and the familiar note blocks that allow for note-by-note Flex editing will appear. This is where you may encounter one of the first issues. While Flex is quite good at detecting individual note pitches, with some parts it may miss a few, or generate notes where there shouldn’t be any. With this bass part, I ran into both of these problems. Often, when there was a repeating 8th-note pedal on the same note, Flex failed to detect some of the less-sharply articulated notes. I had to quickly go through the part with the scissor tool dividing these longer notes into the correct repeated pitches (Fig 2). This didn’t take too long, but it was a minor nuisance.
Fig 2 When Flex Pitch failed to detect lightly-played repeated notes on the same pitch, corrections had to made by hand.
If the part’s timing was off, or if there were clams, now would be the time to correct them, using Flex editing to its fullest, before converting. Once the part is sounding as it should, you’ll be ready to evoke the “Create MIDI Track from Flex Pitch Data” command. This is found in the Track Editor pane’s Edit sub-menu (Fig 3)—you can also find it in the main Edit menu up top.
Fig 3 The “Create MIDI Track from Flex Pitch Data” command, in the Track Editor’s Edit menu
Logic will make a MIDI note for each Flex Pitch block, and create a new MIDI Region on a new generic Instrument Track just below the Audio Track—of course, you can then change to the Instrument of your choice.
Fig 4 The newly-converted MIDI track
Massage your MIDI
And that’s it—you’ve got your MIDI version of the audio performance. But it’s probably not quite ready for prime time just yet. There will likely still be some glitches and false notes that will have to be fixed, and the timing may not be as close a match for the audio as you’d expected (this has to do with the algorithm that detects each new note, and the attacks of the original notes in the audio recording). After assigning a suitable MIDI (Bass) Instrument, and playing the two tracks—audio and MIDI—together, I Quantized (or Smart-Quantized) the new MIDI track, which made for a tighter match to the original’s timing.
Fig 5 The Quantize options for the new MIDI Region
As expected, there were still a number of glitchy notes. In particular there were occasional stray low notes (below the bass’s normal range) that weren’t there in the original. Flex Pitch had interpreted some squeaks and finger noises as low pitches. Now, different Audio-to-MIDI algorithms (from different manufacturers) have varying degrees of success when it comes to detecting and separating non-pitched elements in the audio—Flex Pitch does reasonably well, but I’ve yet to see it be 100% perfect on material like this (honestly, I don’t think any of them are ever 100% perfect). So, once again, I played through the track, and deleted (or muted) these stray notes. I also corrected a few pitches here and there, where Flex had rounded a slightly off-pitch in-between note to the wrong pitch.
This is where you’re likely to encounter one of Logic’s Audio-to-MIDI limitations—while Flex Pitch detects slides between notes, and even provides handles to edit them somewhat, that data is not included in the MIDI conversion. So little quick semitone or whole-tone slides show up as two-note diads, instead of as pitchbend data that might have sounded truer to the original. Some MIDI conversions (notably Cubase’s) take a stab at creating corresponding pitchbend or CC data for these kinds of performance gestures—to be honest, I don’t really know how well they succeed at it, but it would be nice if, at some point, Logic added that to its bag of Audio-to-MIDI tricks.
Once all these little corrections are made, the MIDI track will be pretty much ready to go.
Audio Example 2 A snippet of the converted and cleaned up MIDI bass track, with two different Bass V.I.’s:
But it’s here where the biggest limitation of Logic’s current implementation of this feature rears its head. Logic’s Audio-to-MIDI conversion DOES NOT pick up the level of the different notes—all of the new MIDI notes are generated at the same, fixed Velocity! Now, for a part like this particular bass track, that’s not a major drawback, but for some performances it could be a real deal-breaker. I have to say, for me this is the feature’s biggest drawback—all the more frustrating because the audio-to-MIDI feature in older versions of Logic did capture Velocity data, and the current Drum Replacement audio-to-MIDI function does as well! (though only for non-pitched instruments). Hopefully, Logic will rectify this in future—it would add a lot more utility to this otherwise well-implemented feature.
So far, I’ve used Audio-to-MIDI to substitute a different (Virtual) Instrument for the original. Another approach might be to keep the original audio track, and double it with a different sound.
Audio Example 3 The original Audio Track doubled with the Converted MIDI track, on two other virtual instruments:
Score one for MIDI
If you decide you want to replace the original audio track with a new live (acoustic) performance, you may want to generate a part—a piece of sheet music (old school!)—for a studio musician to come in and play from. This same MIDI sequence can be viewed in the Score Window, where you can edit it further, if needed, and prep it for printout. But—fair warning—if you’re not used to the Score features in DAWs, what you’ll see is not usually a usable display at first—you have to set a number of display parameters, before you’ll have a part in standard notation that a player can sight-read successfully. It’s beyond the scope of this short article to get into any of that, but I will mention one key thing. The Score Window has an independent Display Quantize feature, which does not affect the audible playback timing of any MIDI Instrument that’s playing the part, but does clean up the otherwise literal interpretation of the timing of the MIDI sequence (see Fig 6).
Fig 6 The Score Window display of the same MIDI (Bass) track, after Display Quantization
Admittedly, Audio-to-MIDI conversion is not one of those features you’ll probably be using every day, but when a situation does come along where it’s needed, a little familiarity with its quirks can really help speed the process along.