Slicing Up Breaks with Tidal

I love slicing breaks. There's nothing else like scrambling up a drum beat.

Tidal and real-time coding puts a fresh spin on slicing up breaks. I'm going to share some of my super-secret techniques (a.k.a. accidental discoveries) on how I slice up breaks in Tidal.

The video below is a real-time explanation and demonstration of everything, but continue reading if you want more of a textual explanation.

Mentally, I break down slicing into a few steps:

  1. Find a good break
  2. Decide on a good tempo
  3. Striate, striate, striate!
  4. Shift beats
  5. Reversal
  6. Pitch shift
  7. Season all of the above to taste

Find a good break

For those new to samples and breaks, start out with a break that is four or eight beats. Just a basic drum pattern. Make sure that the sample is edited and cropped so that the tempo stays smooth and constant when the sample is looped constantly.

For those experienced with breaks, you'll probably have curated a number of favorite breaks already. Any will do.

My overall advice with Tidal is to choose breaks that are long enough. Find a break that will be longer than a single Tidal pattern cycle. Your mileage may vary depending on your tempo/bps.

As a general guideline, I like using breaks that:

Decide on a good tempo

Ultimately, we will use Tidal's striation to stretch the sample to the tempo we need. However, a tempo closer to the break's original tempo will make the break sound truer to its original sound.

Tempos slower than the original will result in some grainy sound artifacts... which is completely fine. You will decide what sounds best for you. Otherwise, choose a tempo that is faster than your original break to make sure there are no gaps in your breaks slices. More on this in the next section...

Striate, striate, striate!

striate is the super secret sauce in Tidal for slicing up breaks. First, you may want to read up on Alex's description of striate in this post (4th video down):

striate chops a sample into a number of segments that you specify. It then concatenates and plays those segments in order:

d1 $ striate 128 ( sound "mybreak" )

The code above will chop up the .wav file into 128 equally-sized sub-samples. and then play them at an evenly distributed time over the duration of the Tidal pattern cycle. This is what makes slicing breaks in Tidal possible magical. striate stretches (or compresses) your sample to fit within a single Tidal cycle.

The larger the striation value (e.g. 128), the more granular you can get with manipulating the break. Changing the striation value will also change the sound of the break if it is stretched to match the Tidal cycle time. Keep in mind that very large striation values can also cause more latency and the Tidal/Dirt code may not be able to keep up with your sound device, depending on your hardware.

Shift Beats

At this point you should be playing a break that fits the tempo of your Tidal code. Great. Now lets do something interesting with it.

The go-to, easy transformation that you can apply is beat shifting:

d1 $ every 4 (0.25 <~) $ striate 128 ( sound "mybreak" )

The above code will shift the pattern by 25% every fourth pattern. Pretty basic, but it adds a little variation in your break. Nice!

d1 $ every 3 (0.25 <~) $ every 4 (0.25 <~) 
    $ striate 128 ( sound "mybreak" )

Above, we've applied a second shift transformation of 25%. This one is every three beats. Naturally, you will now hear cycles of two shift transforms occurring at different times - sometimes arriving at the same time and resulting in a single transformation shift of 50%. Yes!

Of course you can get as crazy as you want with this technique:

d1 $ every 5 (0.25 ~>) $ every 7 (0.333 <~) 
    $ every 3 (1.716 <~) $ striate 256 ( sound "break")

Not that the listener will be able to make much sense of that, but the point is that you can apply multiple beat shifts to create some classic, sliced-up break sounds.


With striate, we can reverse the order in which the individual sample segments are played back:

d1 $ rev $ striate 64 ( sound "mahbreak" )

The higher striation value, the more resolute the reversal is. Compare how these two sound:

d1 $ rev $ striate 4 ( sound "mahbreak" )
d1 $ rev $ striate 128 ( sound "mahbreak" )

Of course, we can apply a reversal only at certain times, using every:

d1 $ every 4 rev $ striate 64 ( sound "mahbreak" )

Combine with beat shifting, then dance a little:

d1 $ every 4 rev $ every 3 (0.25 <~) 
	$ striate 64 ( sound "mahbreak" )

Pitch Shift

You can apply the speed parameter to the result of striate:

d1 $ striate 128 (sound "verybreak" )
	|+| speed "1.2"

This will increase the speed of each striated sub-sample by 20%, resulting in an apparent increase in the pitch of the entire break. Very cool.

d1 $ striate 128 (sound "verybreak" )
	|+| speed "[1.2 0.8]/2"

Above, we apply two speeds (one at 120%, then another at 80%) over twice the time, resulting in the break being played at a higher pitch for one cycle, then a lower pitch for a second cycle.

Using this lesser-known Tidal technique, you may also choose to apply speed changes using every:

d1 $ every 4 (|+| speed "0.5") $ striate 128 (sound "brake")

Season to Taste

Experiment. I've shown beat shifting, every, rev, and speed here, but there is more to Tidal than just those parameters and transforms. Feel free to experiment with others, like jux. There are quite a few possibilities.

Happy slicing.

← Home