Understanding REX Files and How They Work

Navigate your way through tempo changes – the easy way

“The recording’s great, but can you change the tempo a bit?”

This question has been posed since the days of steam-powered multitrack recorders, and there’s seldom an easy answer. Here’s the problem: if you recorded a fantastic solo into a digital audio recording program at, for example, 120 BPM, changing the tempo will cause the part to be out of sync. Two measures at 120 BPM will last more than two measures at faster tempos, and less than two measures at slower tempos. And if you’re into using loops, it’s also a problem if the perfect loop for your 133 BPM song was recorded at 125 BPM.

One solution is digital signal processing algorithms, which can lengthen digital audio by adding data, or shorten by deleting data. But it’s difficult to do this without compromising the sound quality, especially with substantial timing shifts.

Another option is MIDI-based recording. For example, suppose you record a kick drum trigger on each beat of a measure at 120 BPM. If you change the sequencer tempo to 130 BPM, the trigger still hits on each beat—the kick parts simply occur closer together. If you slow down the tempo, the kicks hit further apart. That’s fine, but not everything lends itself to being recorded as (or converted into) MIDI data.


A couple decades ago, Propellerhead Software devised a clever time-stretching solution that applies 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).

For example, the image above shows a simple drum loop. ReCycle separates the drum part into individual slices, with each one 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 always follows musical time (bars:beats:ticks) instead of absolute time (hr:min:sec).

The main advantage compared to DSP time-stretching is that the audio quality remains 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).

ReCycle saves the digital audio slices and MIDI information in a single file called a REX file. There are several types of REX files, but the most important, and recent, is the REX2 format (these types of files have a .RX2 suffix). Unlike earlier mono-only ReCycle formats, REX2 files are true stereo. Interestingly, REX files usually take up less space than their WAV equivalents because silent parts don’t need to be saved.


Several sample library companies produce REX file collections for use in programs that support the format. You can also use ReCycle to create your own REX files out of audio files.

Note that you don’t necessarily need ReCycle; you can follow the same concept by cutting audio into slices, and triggering them from MIDI. However, ReCycle makes the process far simpler, and includes several features that optimize and enhance the process of converting a file into REX format.

Although some speculated that the REX file would become obsolete as programs like Acid (which offer on-the-fly time-stretching) appeared, that hasn’t happened. If anything, the REX file format is growing in popularity, as more people recognize the advantages it can offer over “audio only”-based time-stretching techniques.


Most DAWs can read and interpret REX files. The most developed example is Propellerhead’s own Reason, which include a sophisticated REX file player module (for example, you can change the pitch of each slice). With other programs, like Cubase, Logic, Studio One, and the like, you drag a REX file into the project, and the program automatically knows what do with the MIDI and audio. Speed up or slow down the tempo, and the REX file data goes along for the ride – no tweaks required.

However, not all implementations are the same. For example, sometimes the MIDI file driving the slices will be accessible, but sometimes not.


REX files can be the perfect solution for many time-stretching problems. But like all other time-stretching options, REX files have their 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. If the sound is relatively high at the splice point, ReCycle has a function that extends a sound’s decay; however, it’s not effective with all types of signals.
  • Similarly, speeding up cuts off the end of segments. Fortunately, this isn’t much of a problem because psycho-acoustically, you’re more interested in hearing the new sound that’s cutting off the old sound rather than the old sound itself.
  • REX files don’t work well with sustained sounds, or very complex sounds (e.g., a part with lots of repeating delays). Ideally, slices would have a fast attack time, and consist of a single “block” 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 sometimes impossible, to find good slices with a sustained sound.
  • Another problem is that each slice produces a discontinuity in the sound. If it occurs during a quiet part, this isn’t really an issue. But if there’s audio happening at the slice point, you’ll often hear a pop or tick. Careful editing of the slice boundaries can minimize or eliminate clicks, but for sustained sounds, it’s not always possible to hide the slice transition.
  • Creating a really good REX file can be time-consuming. Something like a drum loop or synth bass part is usually easy to convert to REX format, but complex sounds are not.
  • REX files are much better at shifting time than pitch (ReCycle does allow for changing pitch). If you want to create a melodically-oriented REX file that works in any key, consider “multisampling” – e.g., recording versions in the keys of E, A, and C. Then the file needs only a little pitch shifting to work in a different key, which will sound more realistic than larger changes.


If you record a sound you plan to convert to REX format, consider your target tempo range. A typical file will still sound fine if shifted down around 5-10%, or up by 20-40%. So, to cover a 120 – 145 BPM range, I usually record the file at 125 BPM. In many cases, these loops can work well down to 100 BPM and as high as 160 (and sometimes, even beyond).

REX files lend themselves to experimentation. For example, one ReCycle function can save a file as a collection of individual digital audio slices. You can bring these into a digital audio program and move the slices around, change their pitches, add envelopes, etc. The current version of ReCycle has some built-in processing, but this is specialized and doesn’t compare to what a digital audio editor can do.

For example, I made some cool sample-and-hold sounds by taking a sustained chord, putting slices every eighth note, then saving each section. I then brought the sections into Wavelab and applied a different resonant filter frequency to each one. After combining them back together into a single file, the end result was a useful loop.

REX files aren’t the only way to do time-stretching, but for certain applications, they are the ideal choice. Add them to your bag of tricks, and the next time someone wants to change the tempo, you’ll be able to cope a little better.