TidalCycles
TidalCycles
From the website:
Tidal Cycles (or ‘Tidal’) for short is free/open source software written in Haskell. Tidal is using SuperCollider, another open-source software, for synthesis and I/O.
Tidal Cycles allows you to make patterns with code. It includes language for describing flexible (e.g. polyphonic, polyrhythmic, generative) sequences of sounds, notes, parameters, and all kind of information.
Uses Haskell underneath and SuperCollider
Examples
Don Gorelick’s set on youtube inspired me to look into this more:
Initializing the development environment
Startup
sclang startup.scd
Then open qjackctl to hookup to the actual speaker output (why is this so?)
Shutdown
To revert audio reboot pulseaudio after shutting everything down pulseaudio --kill
Using
Open vscode (code
)
Shift-ENTER
to command the current line
ctrl-enter
to execute the block
Ctrl-Alt-H
to hush
Using
# set to 130 bpm
setcps (130/60/4)
# setup some panels
d1 $ s "[bd:1 ~] * 2"
d2 $ s "[~ hh]*2"
# silence d3
d3 $ silence
# play once
once $ s "cp cp cp"
# Pattern
hush
d1 $ s "drum" |+| n "2 3" |+| n "4 5 6"
# https://tidalcycles.org/docs/reference/cycles
hush
# https://tidalcycles.org/docs/reference/mini_notation
d1 $ s "[cp | bd(3,8) | hh:2] cp cp"
d2 $ note "[[c8*3 | c7],[c e g c6*3], [e e b [a g]]]" # s "supermandolin"
d3 $ (n "[c'maj ~ e'min g'dom7 a'min ~ g'maj]" # s "superpiano") # gain "0.8 0 0.9 0.7 1 1"
d3 $ silence
hush
Tutorials
https://tidalcycles.org/docs/patternlib/tutorials/workshop/#effects Start Tidal | Tidal Cycles