You are here

Using REX Files In Ableton Live

Live Tips & Techniques By Craig Anderton
Published April 2006

The upper waveform is a 133.33bpm drum loop in Recycle; note the slices. The middle waveform has been converted into a REX file, slowed to 120bpm, and converted back to WAV. Note the gap between slices. The lower waveform is the same REX file, but sped up to 145bpm.The upper waveform is a 133.33bpm drum loop in Recycle; note the slices. The middle waveform has been converted into a REX file, slowed to 120bpm, and converted back to WAV. Note the gap between slices. The lower waveform is the same REX file, but sped up to 145bpm.

Ableton Live 5 doesn't work with REX files, right? Well, technically speaking it doesn't support the 'official' REX file format. But not only can you create your own REX-style slicing within Live, the 'do it yourself' stretching method we're about to describe can be surprisingly flexible.

First, we should discuss what REX-based stretching is all about. Although digital signal processing algorithms can lengthen digital audio by adding data, or shorten by deleting data, it's difficult to do this without compromising the sound quality — especially with substantial timing shifts. Live's stretch algorithms are nothing short of miraculous when it comes to real-time tempo stretching, but like any stretch algorithms, they're not perfect. The REX approach can provide extremely good fidelity with percussive sounds, although the trade-off is that it is pretty much useless for sustained sounds.

The REX file format was invented by Propellerhead Software as an extremely clever time-stretching solution that applied MIDI thinking to digital audio. Their Recycle program takes a piece of digital audio, cuts it into small segments ('slices'), notes where in the measure(s) these segments occur, then creates a MIDI file that triggers the segments at the appropriate time within the measure(s). Hosts that support REX files use the digital audio and timing data to stretch the file to the target tempo.

For example, the screenshot above shows a simple drum loop. Recycle separates the drum part into individual 'slices', with each slice triggered by a MIDI note recorded in a sequence. When the sequencer plays back the MIDI notes at the original tempo, the various slices all play back in succession, at the original timings. With a slower tempo, the triggers that play back the segments are further apart; at a faster tempo, the triggers occur closer together.

As a result, the rhythmic relationship of the slices remains intact, because MIDI triggers always occur where they were recorded in a measure, regardless of tempo. In other words, MIDI data generally follows musical time (bars, beats and ticks) instead of absolute time (hours, minutes and seconds).

A 120bpm loop has been dragged into the Arrangement view, and the tempo has been set to 120bpm.A 120bpm loop has been dragged into the Arrangement view, and the tempo has been set to 120bpm.The main advantage compared to DSP time-stretching is that the audio quality remains pretty much untouched — nothing is added or deleted, just triggered at a different time. Thus, it's theoretically (and often practically) possible to have Recycle files whose fidelity is indistinguishable from the original, even when time-stretched (there are limitations, though, which we'll cover later).

Many programs have native support for the REX file format. For example, with Pro Tools 7, each slice is treated as a region, and when you import the file, it's treated as a Region Group. Thus, as you change the tempo, the regions are 'staked' to ticks and remain at the same bar and beat positions. Sonar includes the RXP REX file player; you load the REX file into it, and it plays along with your sequence. MOTU's Digital Performer, Emagic Logic, Steinberg Cubase, and many others support the REX format as well.

Although Live 5 doesn't support REX files, you can use the same principle to slice and trigger digital audio within Live, and produce much the same effect.

Slicing Within Live

Here's how to slice within Live. First, set Live's tempo to the tempo of the loop you want to slice, even if this is different from the Project tempo. It's only a temporary step; after the process is complete, you can return to the original tempo (and the sliced file will follow, of course — which is the whole point of this exercise!).

Now switch to Arrangement view. This technique cannot be done in Session view. Drag the file into the Track Display, and use the zoom options so that the waveform fills up a comfortable amount of the screen. Place the first transient and type Ctrl+E (or Ctrl-click and select 'Split'). This splits the Clip at the Insert Marker. Repeat at each transient that denotes a 'blob' of sound (for instance kick drum and snare beats, hi-hat hits and so on). This is tricky, because you don't want to break up a continuous sound with a split, nor do you want to miss a transient by not adding a split. Experience will make this process easier, but for now, try to make sure that each slice is a discrete piece of sound. Snapping to the grid can be very helpful with files that have quantised rhythms, but don't be afraid to turn off snapping if the transient falls slightly ahead of or behind the beat. The important consideration is to slice exactly at the transient's beginning; it's likely that zooming in will be necessary.

The loop has now been sliced at each transient. Note the multiple small clips above the waveform.The loop has now been sliced at each transient. Note the multiple small clips above the waveform.At this point, change the tempo as a 'reality check'. The Clip will speed up and slow down, as with a standard file loaded into Live. But now we need to 'individualise' each slice, and anchor it to the bar, beat and tick position at which it was cut. To do this, select all the sliced audio clips and make sure the Clip Overview tab is selected in the lower right corner of the Live window. It should show 'X Audio Clips Selected', where X is the number of slices in the loop. Disable the Warp option (in the Samples section of the Clip View) by clicking on the Warp button so that it's grey instead of yellow. Now slow down the tempo by 20 percent or so — for example, if the loop was cut at 120bpm, change the tempo to 96bpm. Each Clip will now reflect its true, not stretched, duration at that tempo. As a result, each Clip will now appear to be 20 percent shorter in duration. When you click on Play, you'll hear the loop play back, and note that the fidelity of each slice is exactly the same as it was originally — there are no artifacts, flams, or other compromises with respect to fidelity. Cool! Now speed up the tempo as high as you'd like. The audio quality remains the same; note how the space between the decay of one slice and the attack of the next slice 'tightens up'.

We've accomplished what we've set out to do: create a file that sounds virtually identical over a wide tempo range, with no artifacts or DSP to alter the sound.

A brief aside here: the fade button is extremely useful when doing slicing, so check out the effects of checking or unchecking this option (remember to make sure that all slices are selected). Without fade applied, any abrupt transition at the beginning or end of a slice might produce a click. Applying the fade function minimises any possible click.

Conventional REX File Import

The original loop tempo was 125.126bpm; it's been tweaked to 133.33bpm to fit Live's Project tempo. 'Export as One Sample' is selected prior to exporting.The original loop tempo was 125.126bpm; it's been tweaked to 133.33bpm to fit Live's Project tempo. 'Export as One Sample' is selected prior to exporting. Although we've described how to create REX-type slicing in Live, you may also want to use standard REX files. This is easy to do if you export to a WAV or AIFF file, which is one of the functions provided in Propellerhead's Recycle program. It also helps if you know what the Live Project's tempo will be, but that's not essential; after importing, if you need to tweak the file tempo a bit, you can use Live's stretching options.

To prepare a REX file for use in Live:

1. Load the REX file into Recycle.

2. Turn on the Preview button (to the left of the transport Stop button) and adjust the Tempo control to match the Live Project tempo.

3. Adjust Recycle's options for the best sound quality (Stretch, for example, adds decay if needed for loops that are slowed down).

4. Go to the Process menu and tick 'Export as One Sample'. Otherwise, each slice will be exported as an individual file.

5. Go to File / Export. Select the filename and either Wave or Audio IFF format.

6. Specify the sample rate and bit depth used in your Live project, click on OK, and the file is exported.

7. Load the file into Live. Although it has lost its REX properties, you can of course use Live's stretching options if needed to change tempo.

Just Because It's Not a Loop...

You might think that because we've cut a bona fide loop into a bunch of little pieces, we can't use the Envelope options in Clip View. Well, you'd be right. But that doesn't mean there isn't a workaround.

You can apply transposition to individual slices or the entire loop. Just select whichever is appropriate (a clip or all clips), and adjust the Transpose control in the Sample Display window to taste. For example, you can select just the first slice (the downbeat) and transpose it down a little bit for a deeper sound, while transposing the backbeat up a little bit to tighten the sound. Note that because there is no warping, transposing is like re-pitching — the duration gets shorter when transposing up, and longer when transposing down.

When selecting all slices, try transposing up an octave or so: standard drums end up sounding more like an analogue beat box. It's a cool effect.

Slowing down the tempo causes each slice to be triggered further apart. Each slice is still the same duration as it was at the higher tempo, but because the tempo has been slowed down and each beat lasts longer, the Clip appears shorter.Slowing down the tempo causes each slice to be triggered further apart. Each slice is still the same duration as it was at the higher tempo, but because the tempo has been slowed down and each beat lasts longer, the Clip appears shorter.

Note that you can also adjust panning or volume using standard mixer track envelopes.

Slice Shuffling

Because each slice is now its own Clip, there are tons of things you can do that are just not possible with a conventional loop. Here are just a few:

  • Turn off the grid, and shift Clips slightly ahead or behind the beat for different 'feels'.
  • Rearrange the order of the slices to create an entirely different loop. This is particularly helpful because you can copy all the slices in a loop and paste them multiple times. Each iteration of the loop can have slight differences to add interest.
  • Copy and paste slices to create flams, additional hits, and so on.
  • Create a second track, and drag some slices to this track. Then add envelopes, effects, or whatever to this second track; only the slices you drag to this track will be affected.

Live News

Using REX Files In Ableton Live Ableton announced the imminent arrival of Live 5.2 at the Winter NAMM show in January 2006. In addition to a number of small bug fixes, version 5.2 also introduces support for the new Intel-based Macs for the first time. The upgrade will cost 39 Euros or $49 for Intel Mac users (due to associated development costs) but will be free to all other users. Ableton have promised to refund this charge to anyone purchasing Live 6, which is expected to be released in the Autumn.

At the time of writing Live 5.2 has just gone to public beta testing and a full release version should be available by the time you read this.

Slicing Limitations

OK, we've covered all the good stuff. But in the spirit of equal time, note that while slicing can produce excellent results in Live, there are also some definite limitations. Here are the main ones.

  • Slices have a finite, unchangeable length. Therefore, slowing down the tempo creates a gap between slices. If the sound decays before the slice ends, there's no problem. But if in the original file the end of one slice 'bleeds' into the next slice, the gap can be disconcerting.
  • Speeding up the tempo causes the decay of one slice to 'butt splice' up against the start of the next slice. Speeding up the tempo causes the decay of one slice to 'butt splice' up against the start of the next slice. Similarly, speeding up cuts off the end of segments. Fortunately, this isn't much of a problem because psychoacoustically, you're more interested in hearing the new sound that's cutting off the old sound rather than the old sound itself.
  • Slicing files doesn't work well with sustained sounds, or very complex sounds such as a part with lots of repeating delays. Ideally, slices should have a quick attack time, and consist of a single 'block' of sound (like a guitar chord, synth bass note or drum hit). This makes for an unambiguous slice — you know where it starts, and where it ends. It's much harder, and often impossible, to find good slices with a sustained sound.
  • Creating a really good sliced file can be tedious. Something like a drum loop or synth bass part is easy to slice, but increasingly complex sounds become increasingly difficult to slice.

So far, the assumption is that the file you want to use already exists. But if you're recording a file specifically for slicing within Live, note that speeding up a file generally works better than slowing down as you don't have any gaps with which you must contend. Therefore, it's a good idea to record at the slowest tempo you think you'll need. For example, to cover a range of 120-145 bpm, I usually record the file at 120-125 bpm.

Slice Is Nice!

We've pretty much covered everything you need to know about slicing in Live. Although it's already a supremely flexible program, this technique illustrates one more way to use it to create novel effects. Slicing simple percussive files is not difficult at all, and not even very time-consuming — but the results can be very interesting. 

Buy Related Tutorial Videos