Manipulating samples

From TidalCycles userbase
Revision as of 21:08, 14 December 2019 by FuzzyBot (talk | contribs) (Updating to match new version of source page)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
Other languages:
British English • ‎English • ‎français • ‎中文(繁體)‎ • ‎日本語

So far we've just used short samples. Longer samples can cause us some problems if we’re not careful. Let’s see what happens with a long sample

d1 $ sound "bev"
-- wait a bit, then..
hush

As you can hear, Tidal will keep triggering the sample each cycle, even if it’s very long. Even if you stop the pattern playing, you will still need to listen while the samples play out.

You can use cut to truncate the sample when the next one is triggered

d1 $ sound "bev" # cut 1

The number in ‘cut’ define a group, so you can play with interference across different patterns

d1 $ sound "bev ~" # cut 1
d2 $ slow 4 $ sound "pebbles ~" # cut 1

legato also truncates samples, but using a fixed length

d1 $ sound "bev ~ bev ~" # legato 1

We can also chop samples for a ‘granular synthesis' effect

d1 $ chop 32 $ sound "bev"

striate is similar to chop but organises the playback in a different way

d1 $ slow 4 $ chop 4 $ sound "arpy:1 arpy:2 arpy:3 arpy:4"
d1 $ slow 4 $ striate 4 $ sound "arpy:1 arpy:2 arpy:3 arpy:4"

randslice chops the sample into pieces and then plays back a random one each cycle

d1 $ randslice 32 $ sound "bev"

We can also use loopAt to fit samples to a set number of cycles:

d1 $ loopAt 8 $ sound "bev"

As always we can add patterns and transformations to these functions, or combine them for interesting effects

d1 $ loopAt "<8 4 16>" $ chop 64 $  sound "bev*4" # cut 1
d1 $ rev $ loopAt 8 $ chop 128 $ sound "bev"