Kitaab

tidalcycles

generative

published 1970-01-01 00:00

updated 2022-11-13 12:16

%date

start

to start tidal cycles: run scide (or run the SuperCollider IDE) in terminal to start SuperCollider server execute the following code in scide:

{{{supercollider include("SuperDirt") SuperDirt.start }}}

open a new terminal and run tidalvim you should now be running tidal, use ctrl+E to pass lines to tidal from vim

basics

when you add more sounds to each cycle, it speeds up, the time of the cycle remains constant

----- is the buffer to super collider, there are 9 opened by default in tidal
/     --- the "command" to run

v v d1 $ sound "bd:2 bd bd ~" ^ ^ ^ \ \ --- is a rest note \ --- is the sound that is going to be played; play the 3rd (0 indexed) sound in bd --- magical $ notation

subsequences

using [] we can create sub sequences that run "together" in the same step of each cycle this can be done recursively

using this we can achieve nice compound time signatures:

{{{tidalcycles d1 $ n "[0 2 1] [4 4 5]" # s "drum" }}}

alternative notation:

{{{tidalcycles d1 $ n "0 2 1 . 4 4 5" # s "drum" }}}

= speeding, slowing, repeating =

  • is the same as a subsequence (s "kick*2" == s "[kick kick]") ! is the same as repeating the sound (s "kick!2" == s "kick kick") / "divides" the step into n steps and alternates them

we can combine these to shorten lengthy things:

{{{tidalcycles s "[kick [lo hi]/2]*2" == s "kick lo kick hi" }}}

polyphony

, allows us to have multiple "tracks" in the same pattern but they must be in a subsequence!

{{{tidalcycles d1 $ s "[bd sn, lo hi lo lo]" }}}

{{{tidalcycles d1 $ s "bd ~ sn ~" d2 $ s "lo hi lo lo" }}}

are the same

{} changes tidalcycles to make the steps align instead of the cycles aligning

effects & commands

stut - create echos {{{tidalcycles d1 $ stut 4 0.5 (-0.1) $ s "bd sn" }}}

adding a samples directory

File > Open Start Up File > Add line ~dirt.loadSoundFiles("path/to/directory/*");

pipes

|> is the same as #, it takes values from the right and structure from the left | indicates which side to take structure from and the arrow indicates which side to take values from hence with the following combinations

{{{ |> <| |<

| }}}

we can mix and match any combinations


Backlinks