Welcome to No Limit Sound Productions

Company Founded
2005
Overview

Our services include Sound Engineering, Audio Post-Production, System Upgrades and Equipment Consulting.
Mission
Our mission is to provide excellent quality and service to our customers. We do customized service.

Friday, May 7, 2021

Great Loops With LoopMash

 By John Walden


Breathe new life into your loops with Cubase's LoopMash.

The LoopMash window with the Edit options displayed.The LoopMash window with the Edit options displayed.

LoopMash was, for me, probably the best new feature introduced in Cubase 5. This natty little plug-in uses one 'master' loop (of your choice) to trigger sliced segments from up to seven other loops. Operation is very intuitive, which makes this an excellent tool for creating new and off‑the‑wall rhythm loops. All the basics of LoopMash's operation are well covered in the Cubase Plug‑In Reference PDF, so I'll focus here on giving you a few practical hints and tips to help make the most of what this great little plug‑in has to offer, as well as offering one or two observations on aspects of LoopMash that could be improved in a future update.

Getting Started

If you want to experiment, the supplied LoopMash presets are a very good place to start, but eventually most users are going to want to load their own loops or import them from third‑party sample libraries. Loops can be dragged and dropped onto a LoopMash track from a number of different locations (for example, from an operating system file browser or from the Cubase Project window, if they've already been imported into the current Project). However, occasionally LoopMash's automatic tempo recognition doesn't get things quite right, which results in a loop that doesn't contain the correct number of slices. If you come across this problem, I've found that the most consistent results seem to be obtained when dragging and dropping from the Pool — so it's probably a good idea to add any loops to the Pool first, and then move to LoopMash from there.

Another little oddity that could confuse new users is identifying which LoopMash track is acting as the 'master'. This is generally indicated by two things: the whole track being highlighted; and the illuminated button to the left of the waveform display. In the vast majority of the 'factory' presets, the topmost track is configured to act as the master loop, but you can select any of the others if you prefer. Indeed, I'd encourage you to do this, because for any given set of loops it will produce yet another set of possible variations. However, if you do change the master track, and then use one of the Scene buttons to flip back to a different set of LoopMash settings, the display doesn't update to identify the new master track associated with that scene. While this is a bit irritating, it's purely a graphical issue; you need to look out for the coloured bars that appear above and below the current step on the master track to identify it. These coloured bars appear whenever a slice in the master track is not being played, but they are masked by the white bars that appear on any track when a slice is being used. The Step button (to the right of the Play button in the LoopMash transport panel) can be useful here, to move through the loop step‑by‑step and identify the master. This button is also very useful for seeing which slices in other loops are being triggered for each step of the master loop when you're making changes to the settings on the Edit page.

More Control

Activating individual outputs for each of LoopMash's tracks can be done via the VST Instruments panel.Activating individual outputs for each of LoopMash's tracks can be done via the VST Instruments panel.

The Edit section includes a dry/wet mix slider, which allows you to adjust the level of the master track relative to that of slices played from loops on other tracks, which is useful, but you're not able alter the levels of the individual tracks in LoopMash. Instead, you have to use LoopMash's multiple outputs: you can activate these from the VST Instruments panel, which will create an audio channel in the mixer for each track. If you opt to work in this way, it's also best to de‑activate the stereo mix output, so you don't duplicate the output from each track.

To then control the overall output from LoopMash, you need to create a Group channel and route the individual track outputs to that (as shown in the screenshot above). This arrangement allows the levels of the individual LoopMash tracks to be balanced, and the level of the overall LoopMash output to be controlled within the mix for the project. Of course, it also allows other basic mixing techniques to be used, such as panning different loops across the stereo image, or sending different parts to delays. Sadly, though, using multiple outputs in this way means that you won't be able to make use of the wet/dry mix slider, which is a shame.

A further advantage of this setup is that it makes it very easy to bounce down the output from LoopMash to an audio track. All that is required is that the LoopMash Group channel is solo'ed and then the usual File / Export / Audio Mixdown menu option can be used to generate the required audio file, for the whole arrangement, or just for a short section defined by the Project cycle markers. This audio file can then be subjected to further processing or exported to another software tool if you like to do your loop processing outside Cubase. In addition, while I haven't found LoopMash to be particularly CPU intensive, if your overall project is pushing your system limits, converting your LoopMash output to a single audio track can give you a little more breathing space.

While using LoopMash's multiple audio outputs is very straightforward and, as described below, provides other processing possibilities, it would be nice if Steinberg added simple level and pan controls to each of LoopMash's tracks at some point. This would be just the ticket when all you need is to bump the volume of one or two loops up or down a bit, to achieve a better balance. The obvious down side of using the Cubase mixer as described above is that these mixer track settings don't change if you use the Scene buttons to flip between different LoopMash configurations — although this is more likely to be an issue if you're using LoopMash 'live' in a performance context rather than in the studio.

Chop Chop

Setting each LoopMash track to output to a separate mixer channel allows level and pan to be controlled in more detail, with the overall output level handled via a Group channel.Setting each LoopMash track to output to a separate mixer channel allows level and pan to be controlled in more detail, with the overall output level handled via a Group channel.

The Edit page also features the Staccato Amount slider, which is used to control the length of the various slices on playback. Using shorter times (with the slider towards the right) gives a much more percussive feel to the performance. This is a 'global' control, however, and, using the multiple outputs as described above, the same sort of effect can be achieved with a little more control by inserting an instance of the Envelope Shaper plug‑in (or whatever third‑party equivalent you might prefer) on each track. As shown in the screenshot below, a combination of high attack, short length and short release settings can produce a more percussive sound, but experimentation is the order of the day.

Where Are My Drums?

Using the mixer also provides additional processing options for each LoopMash track, via Cubase audio plug‑ins such as the Envelope Shaper.Using the mixer also provides additional processing options for each LoopMash track, via Cubase audio plug‑ins such as the Envelope Shaper.

While the slice replacement produced by LoopMash is great, at times you might want your master loop to be playing all the time, to ensure that the overall rhythmic feel is maintained, and simply have the slices from any other loops layered on top. Most of the time, this can be achieved entirely within LoopMash by a careful balance of the Similarity Gain sliders — in particular, having the slider for the master track quite high — and setting the 'Number of Voices' control to two, three or four. This combination ensures that slices from the master track are very likely to be picked for playback and that there are enough voices in total for slices from other tracks to be selected for layering on top. However, if you want to be sure your master loop plays back at all times, or want to get as many replacement slices from your additional loops as possible, the simplest solution is to copy your master track loop to a standard audio track and play it back from there. If you then turn the master track's Similarity Gain slider down to zero (which also frees up a 'voice' to be used by other tracks), while it continues to control the rhythm and influence the selection of slices from other loops, its slices are not output via LoopMash. The relative levels of the master loop and the various LoopMash slices can then be controlled via the Cubase mixer.

Breath Of Life

A quick search on the Steinberg Forums soon brings up a number of other 'wouldn't it be nice if LoopMash could….' comments from users, relating to issues similar to some of the ones I've covered above, so it will be interesting to see if Steinberg do develop the plug‑in further. That said, even as it stands, LoopMash is both a lot of fun and a powerful creative tool. Given the new life it can breathe into a tired loop collection, if you're willing to experiment but have an older version of Cubase, it's probably worth the upgrade price on its own! Happy mashing... 



Published October 2009

Wednesday, May 5, 2021

VariAudio: Extracting MIDI From Audio Files

 By John Walden


VariAudio's Extract MIDI function provides three different ways of dealing with pitch-bend data.VariAudio's Extract MIDI function provides three different ways of dealing with pitch-bend data.

Back in SOS August 2009, I took a look at pitch‑correction using Cubase 5's new VariAudio tool, which can be found in the sample editor. While pitch and timing changes are obviously VariAudio's raison d'être, the tool has a further trick up its sleeve: MIDI extraction. In other words, using VariAudio, you can take a monophonic audio performance and extract MIDI timing and pitch information from it, leaving you with a MIDI part in place of your audio file. This type of audio-to-MIDI conversion has been around for quite some time (Logic, for example, has offered it for many years now, and it's also possible in Celemony's Melodyne), but this is the first time the functionality has been built into Cubase.

So why would you want to extract MIDI from your audio? Although none of the current audio-to-MIDI conversion tools are without their particular quirks, they have a number of uses, which include extracting MIDI from a bass-guitar performance, enabling you to double the part with a bass synth (if the bottom end of your mix needs a little beefing up, for example). It can also be a useful way for a guitarist to create melody lines for synths, without using a keyboard or entering the murky waters of MIDI guitar controllers. In addition, extracted MIDI data can be used with Cubase's scoring features to provide notation of parts for other musicians. Surprisingly, for such a potentially useful feature, the MIDI extraction process is given pretty short shrift in Cubase's Operation Manual.

Extraction Basics

The same eight-note audio phrase extracted using each of the three pitch‑bend data modes.The same eight-note audio phrase extracted using each of the three pitch‑bend data modes.

The basic principles of the extraction process are straightforward. Having identified the pitch of individual notes in an audio performance, VariAudio can then export that data to a suitable MIDI part via the Function / Extract MIDI command. If you've used VariAudio's Pitch & Warp or Segment tools, the changes you've made to the segments will be reflected in the timing and pitch of the MIDI notes created.

There are three options, in terms of pitch‑bend data, when outputting the extracted MIDI information. First, the data can be excluded, so you just get the individual note, and this automatically pitch‑quantises MIDI notes to the nearest semitone. As it ignores pitch-bend data, this mode produces a fairly simple output, and is useful if you want to play it back via an instrument that doesn't naturally support pitch-bend (such as a piano), for producing notation (where simpler is generally better for generating a clean-looking score), or if you just need the basics of the part extracted for further MIDI editing. The second option, Notes and Static Pitch-bend Data, simply adds a single pitch-bend event to each of the segment pitches to move it to the nearest semitone — which is effectively a kind of pitch‑quantise by using pitch-bend. I'm not convinced of the value of this mode, so let me know if you find a practical use for it!

The final mode, Notes and Continuous Pitch-bend Data, does exactly what you'd expect, and uses pitch-bend data to match as closely as possible the pitch curve that you see displayed by VariAudio in the Sample Editor. This is great for getting the maximum amount of expression from your audio performance, but it can generate large pitch‑bends, where legato notes slide from one pitch to another. Depending on the pitch‑bend range set in the output dialogue box, a warning indicating the semitone range of the largest pitch-bend in the extracted part might be displayed. You should change the setting in the dialogue to match this, and the setting is then embedded as controller data at the beginning of the MIDI event (you can, of course, view this using the MIDI List Editor). For many MIDI instruments, this will automatically change the pitch-bend range, but if things don't sound right you may also need to manually adjust your sampler patch settings. This is easier to do with some MIDI sound sources than others (for example, you can't manually change this setting for HALion One instruments: you're stuck with whatever default is built into the patch), and even then it can require experimentation. If you get desperate, it's also possible to scale pitch‑bend data using the Logical Editor, but that's outside the scope of this article.

GIGO

VariAudio's pitch detection applied twice to the same guitar phrase. The upper pane is the clean DI'd part, while the lower one is based on the performance recorded through an amp with various effects. Note how the clean performance produces the simpler pitch and note data, which in turn is easier for the MIDI extraction process to work with.VariAudio's pitch detection applied twice to the same guitar phrase. The upper pane is the clean DI'd part, while the lower one is based on the performance recorded through an amp with various effects. Note how the clean performance produces the simpler pitch and note data, which in turn is easier for the MIDI extraction process to work with.

Good though the VariAudio MIDI extraction process can be, some audio sources seem to provide better input signals than others, and it's worth avoiding the frustration of 'Garbage In, Garbage Out'. Performances featuring single notes (no chords), and recorded as mono rather than stereo, are essential. It also helps if the audio is recorded at a reasonable level, isn't smothered with effects and has notes with a clearly defined attack. For example, a dry, DI'd guitar or bass (without amp simulation or effects) can work well and, in general, instruments are easier to work with than vocals, which tend to produce more complex pitch variations. The screenshot above shows a simple example comparing a clean DI'd guitar with the same part recorded via an amp with some effects applied. VariAudio has clearly found it easier to determine pitch data from the former.

It's also worth editing the VariAudio segments prior to extracting the MIDI data. The most important step is to get the start of each new segment aligned with the attacks of the notes in the audio waveform. This ensures that the timing of the MIDI notes generated will closely match that of the audio performance. Segments can be split or deleted where the VariAudio pitch detection algorithm has either created a single segment that spans more than one note, or where two segments have been created for a single note. This ensures that the number of MIDI notes matches the number of notes in the audio part. For greater accuracy, you can zoom in on the audio display as you use the Segments tool.

A Dose Of The Bends

Here, the same audio phrase shown in the previous screenshot has had some minor edits to its segmentation, as described in the main text. VariAudio's Pitch Quantize and Straighten Pitch options have also been applied, prior to using the Extract MIDI function.Here, the same audio phrase shown in the previous screenshot has had some minor edits to its segmentation, as described in the main text. VariAudio's Pitch Quantize and Straighten Pitch options have also been applied, prior to using the Extract MIDI function.

Once you've edited the position and number of segments, you can use the Pitch Quantize and Straighten Pitch sliders to clean up the performance. The usual qualifiers apply here. For example, make sure that when quantising the pitch, wayward notes don't get dragged to the wrong semitone. This is easily corrected by dragging and dropping the segment back where you want it, so you can be quite aggressive with the Pitch Quantize setting.

If you intend to extract the pitch-bend data as well, Straighten Pitch is useful for cleaning up more extreme wobbles. This is perhaps more useful on vocals than instruments, but in either case it needs to be done subtly or you might change (or even lose) the expression of the performance. If you plan to use the MIDI data for a piano or to create notation, extracting without pitch‑bend data is a better option anyway, but if you want, for example, to turn a vocal or guitar performance into a MIDI‑based violin or saxophone performance, retaining the bends of pitch — and experimenting with your settings to get the pitch-bend performance of the MIDI instrument sounding believable — is an important part of the process.

Wot, No Drums?

While VariAudio's MIDI extraction does require a little patience, with practice it can produce very good results. I've posted a couple of audio examples on the SOS web site (/sos/nov09/articles/cubaseaudio.htm). As you'd expect, the quality of what can be achieved depends to a large extent on the playback instrument. It's easy to make the translation to piano‑style instruments, as there are no pitch-bend issues. With parts containing pitch‑bend data, synth‑based sounds tend to be more convincing than virtual versions of 'real' instruments; not surprising when you think how hard it can be to program realistic solo parts for many string or wind instruments!

There are also a couple of things that this audio‑to‑MIDI function can't do. First, the amplitude of the audio is not converted into MIDI velocity data, and all the MIDI notes created are given a default velocity of 100, so volume expression has to be added via subsequent editing. Steinberg might add an amplitude‑to‑velocity element to the algorithm sometime, but for the moment you'll have to look at third‑party plug‑ins to do that.

Second, VariAudio's note- and pitch- detection algorithm is not really designed to work with drum or percussion instruments, so if you were hoping to use it to convert audio drum performances into MIDI data (for example, so you could replace or layer individual drum sounds), you might find yourself frustrated by the results. Again, while this would be nice to see as a future feature, for now I'd stick with third‑party plug‑ins such as KTDrum Trigger (see the SOS May 2007 Cubase workshop for details). A MIDI output on the Gate plug‑in would also be useful in this application. Alternatively, if you're just working with short(ish) loops, you could experiment with some slicing in the Sample Editor and Groove Agent One's drag-and‑drop capabilities — which is perhaps a fitting subject for a future column.


Published November 2009

Monday, May 3, 2021

Replacing Drums With Groove Agent One

 By John Walden


In slicing the 'performance' loop in the Sample editor, I used a relatively high sensitivity setting, but still needed to add a couple of extra hitpoints (the darker blue lines) manually.In slicing the 'performance' loop in the Sample editor, I used a relatively high sensitivity setting, but still needed to add a couple of extra hitpoints (the darker blue lines) manually.

In last month's workshop, I used VariAudio to obtain MIDI notes from audio parts, but this approach won't work for drum replacement. In SOS May 2007, Matt Houghton discussed drum-replacement tools for Cubase, but if you only have a few drum loops in which you want to replace some sounds, the Groove Agent One drum machine offers an alternative approach.

Let's consider a simple, yet common scenario involving two drum loops. The first contains the performance that's required, and to which performances by other musicians have been overdubbed, but the specific drum sounds feel a little tame and need beefing up. Having discovered suitable sounds in a second loop, your task is to keep the groove and timing of the first, but to replace some of the actual sounds with hits from the second. I'll work through this example using two loops: a four‑bar 'performance' loop and a two-bar 'sounds' loop, both of which you can download from the SOS web site (/sos/dec09/articles/cubasetechmedia.htm).

The Slice Is Right

Initially, all Groove Agent One's 128 pads are empty but dragging and dropping sliced loops onto a pad automatically maps the slices across a series of pads. Here, the 'performance' loop has been mapped across almost all the pads in the first two groups. The red highlights around the Group 1 and 2 buttons show that pads within those groups are in use, while the green highlight indicates that we are viewing the pads in group two.Initially, all Groove Agent One's 128 pads are empty but dragging and dropping sliced loops onto a pad automatically maps the slices across a series of pads. Here, the 'performance' loop has been mapped across almost all the pads in the first two groups. The red highlights around the Group 1 and 2 buttons show that pads within those groups are in use, while the green highlight indicates that we are viewing the pads in group two.

Audio can be dragged and dropped into Groove Agent One in several ways, which are described in the Plug‑in Reference PDF manual, but when working with loops rather than single hits, some preparatory work is required in the Sample and Audio Part editors.

The first step is to slice the two loops into their individual beats, using the Hitpoint tool in the Sample editor. Increasing the Sensitivity setting adds hitpoints: the aim is to get a hitpoint at each transient created by an individual drum hit. Once you have this about right, click the Edit Hitpoints button to manually add (by holding the Alt or Option key and clicking on the waveform display as I've done in the screenshot above) or delete hitpoints as required. Hitpoint positioning can also be adjusted, and holding the mouse button down over an individual slice auditions it, making it easy to hear where edits might be required. Once the hitpoints are sorted, pressing the Slice & Close button exits the Sample editor and creates an audio part (in the Project window) containing the sliced loop.

Life's A Drag

Having sliced the loop in the Sample editor, opening the resulting audio part allows us to select all the slices and then drag and drop them into Groove Agent One.Having sliced the loop in the Sample editor, opening the resulting audio part allows us to select all the slices and then drag and drop them into Groove Agent One.

When you open a new instance of Groove Agent One, all 128 pads (16 pads in each of eight groups, with each pad triggered via a different MIDI note) are empty. We now need to map each slice from our two loops to individual Groove Agent One pads, which requires a quick visit to the Audio Part editor for each loop in turn.

Double‑click one of the audio parts to open it in the Audio Part editor, and select all the events (each slice) using Ctrl-A (PC) or Command-A (Mac). The parts can be dragged and dropped to an empty pad in Groove Agent One, and when you let go of the mouse button, each slice is automatically mapped to consecutive pads, starting from the pad you dragged onto.

I find it easiest to place my first loop (the 'performance' loop) on the first pad of group one. In this case, because it has four bars' worth of slices, it pretty much fills up all the pads in group two also. Once you've dropped the first loop into Groove Agent One, the double‑headed arrow icon in the Exchange section lights up. Dragging and dropping from this icon back into the Project window creates a MIDI file that, when played back to Groove Agent One, will trigger each slice in turn, recreating the original drum performance.

Having obtained a MIDI version of our performance, it's time to process our 'sounds' loop in the same way. Again, for convenience, I chose to drag and drop the slices into the empty pads, starting on pad one in group three. The example loop being only two bars long, it fills fewer pads. If we were to drag and drop from the Exchange icon to the Project window, we'd get a MIDI part for this second loop — but that's not what we're trying to do...

Keep It Simple, Stupid

The left‑hand pane shows the MIDI part generated by Groove Agent One to play back the 'performance' loop. I've manually selected all the MIDI notes that trigger a kick-drum slice. In the right‑hand pane, I've moved all these 'kick-drum triggers' to the same MIDI note, which means that they'll now trigger the same slice in Groove Agent One. The left‑hand pane shows the MIDI part generated by Groove Agent One to play back the 'performance' loop. I've manually selected all the MIDI notes that trigger a kick-drum slice. In the right‑hand pane, I've moved all these 'kick-drum triggers' to the same MIDI note, which means that they'll now trigger the same slice in Groove Agent One.

Both loops are now sliced and mapped across Groove Agent One's pads, and we have a MIDI part that can trigger our 'performance' loop. Before we swap some of the hits in our 'performance' loop for those from our 'sounds' loop, a bit of MIDI editing is required. The left‑hand side of the Key Editor screenshot below shows the original MIDI part for the 'performance' loop, and I've highlighted each of the main notes that trigger a kick‑drum slice. As you can see, there's a different note for each kick‑drum hit from the original loop.

The right‑hand side of the screenshot shows an edited version of the same MIDI part, but I've moved all the MIDI notes that trigger a kick-drum sample to the same MIDI note. Playing back the MIDI part now will still give you pretty much the same performance, but each occurrence of the kick drum will now trigger the first kick-drum slice, rather than those from later in the loop (you can check this by watching which pads light up in Groove Agent One as slices are triggered). Note that it's best to use the Grid Relative snapping option when moving these MIDI notes, as you are less likely to alter the exact timing of the MIDI notes that trigger each slice.

The same process can be repeated for each of the other drum sounds in the loop, the most obvious ones being the snare, closed and open hi‑hats, and any tom or cymbal sounds. What you're trying to do is get the loop to play back using a smaller number of MIDI notes (and, hence, a smaller number of Groove Agent One pads) than the original. I narrowed the selection down to four MIDI notes that focused on the key elements I wanted from the 'performance' loop: the kick, snare, an open hi‑hat sound, and a second snare that wasn't a full hit in the original loop, and therefore sounded different to the main snare hits.

Replacement Parts

The same process has been repeated for MIDI notes for all the key drum sounds. Note that the Grid relative setting makes it easier to move the pitch of a MIDI note while maintaining its timing position.The same process has been repeated for MIDI notes for all the key drum sounds. Note that the Grid relative setting makes it easier to move the pitch of a MIDI note while maintaining its timing position.

The last step is the easiest of all. Groove Agent One lets you drag the sample from one pad and drop it onto another, simply swapping the pad assignment of the two samples. So, in our example, the kick drum is being triggered by MIDI note E2. Having auditioned the pads containing the slices from the 'sounds' loop, I thought the best kick hit was found on pad C1, and simply clicking on this pad, holding the mouse button down, pointing at the Group 1 button (which toggles the Groove Agent One display to the first group of pads), I was able to drop this replacement kick sound onto pad E2. It was then a case of simply repeating the same swapping process for each of the key sounds in the loop. While you might sometimes require a little further processing to smooth out the transitions between slices (for example, a light dusting of reverb to 'glue' the new loop together), the job is now pretty much done.

However, if you want to blend two sounds together, rather than opt for complete replacement (for example, layering two kick drums for extra definition), it's simply a matter of duplicating all the MIDI notes that trigger the original kick-drum slice and allocating these copies to a second MIDI note that belongs to the pad containing your second kick sample. The relative levels between the two can then be adjusted via the respective MIDI velocities associated with each pair of notes.

So next time you like the way your drummer has played, but perhaps not the way the recording sounds, Groove Agent One might be just what you need to get out of a scrape!


Published December 2009