Goals:
- modify samples playback length and pitch
- modify your sample sounds using filters/effects
Reference:
- https://estuary.mcmaster.ca
- https://tidalcycles.org/docs/
- https://tidalcycles.org/docs/patternlib/howtos/playchords/
!presetview twocolumns
Choose MiniTidal from the language dropdown for both cells
note
can be used in the same way as n
notation (and people often mix them up!), but rather than affecting which sample is used from the sample folder, note
affects the pitch of the sample.
Let's introduce a new set of samples, ukulele
by Thomas Grund - these are a set of ukulele notes tuned to concert C (ie all the same note) but played with different techniques, note length, vibrato etc. To prove this, let's start with our previous n
pattern and see how it sounds
n "0 3 [4 5] [8 7]" # sound "ukulele"
Some different octaves, but all tuned to C - Let's change to note
note "0 3 [4 5] [8 7]" # sound "ukulele"
Note: the sample should be tuned to C to give predictable results with note
The numbers used correspond to the 12 tones of the Chromatic Scale used in Western Music
However, note
can also be directed to work with various scales based on the 12 tone system
note (scale "major" "<[0 1 2 3] [4 5 6 7]>") # sound "ukulele"
In this case, each number corresponds to a degree of the major scale (counting from 0)
You can play multiple notes at a time using chords
note "[c'maj d'min e'min g'maj]" # sound "ukulele"
You can pattern chords
note "<[c'maj ~ d'min] e'min [~ g'maj]>" # sound "ukulele"
arp
is a function for use with note
to arpeggiate a chord - ie play the notes of a chord one after the other with a short gap between
note (arp "down" "<[c'maj7 ~ d4'min'ii] e4'min'6 [~ g'dom7'o]>") # sound "ukulele"
There are a variety of ways to arpeggiate chords, try some more!
arp
divides the cycle by the number of notes in the chord which is why you hear some chords play a faster or slower series of notes.
Effects are filters that you can apply to your sound to change specific properties. They are applied after your code, using a #
prefix
gain
affects the loudness of the sound, from 0 (silent) to 1 (default sample volume) - you can go higher, use with caution!
sound "ukulele*2"
# gain "1 0.7"
pan
controls which side of the stereo channel the sound goes to - 0
is hard left, 0.5
is the middle, 1
is hard right
sound "bd sd cb"
# pan "0 0.5 1"
vowel
shapes the sound according to the vowel you choose...
sound "sd*20"
# vowel "a e i o u"
hcutoff
and cutoff
are high and low pass filters respectively, accepting parameters from 0
to 20000
(Hz)
sound "moog"
# hcutoff "<2000 1500 800 500 250 50>" -- only play frequencies above this value
# cut 1
sound "moog"
# cutoff "<200 500 1000 2000 5000>" -- only play frequencies below this value
# cut 1
delay
, delaytime
, and delayfeedback
are all related parameters to a general delay
effect
delay
: wet/dry gain up to 1.0delaytime
: space between delay events, in units of cyclesdelayfeedback
: how much gain applies to each subsequent delay event (usually less than 1)
sound "jazz:5*2"
# delay 1
# delaytime "<0.125 0.25>"
# delayfeedback 0.7
Note: be careful with feedback numbers greater than 1!
By now, you will have noticed that not all samples are equal - some have a long playback (moog
), some are short (bd, sd
), everything in between and more!.
There are several tools we can make use of to control how long the samples play for - the simplest is
cut
stops one sample playing when the next sample starts playing. Try the following example with and without the cut
note "0 4 7 10" # s "moog"
-- # cut 1
begin
and end
control where in the sample playback should begin from, and end at. begin
should always take a lower value than end
(otherwise... ?)
note "0 4 7 10" # s "moog"
# begin 0.02
# end 0.04
Note: certain samples may introduce little pops with this method
There are a number of ways that speed can affect our sounds - let's break down some common speed adjustments
!setcps
in the terminal chat - this controls the global estuary tempo, in cycles per second. By default this is set to 0.5 cps
(which is equivalent to 120bpm
for a 4/4 time signature), and due to it being an estuary setting, not a minitidal setting, is not patternable
Try playing a pattern and increasing the cps to 0.75
or 1.0
!setcps 0.75
speed
is an effect that changes the playback speed of samples (and therefore the pitch) - standard playback speed is 1.0
, try mixing it up
sound "sd*4"
# speed "1.0 1.5 0.5 -1"
...what is # speed "-1"
doing?
-
fast
andslow
are functions that can be used to play your pattern more times over a single cycle, or spread the pattern over more than one cycle - try them out! -
fast
andslow
can actually be used interchangeably - find a way to slow down your melody sequence usingfast
, and speed it up withslow
-
Try writing a short 2 or 4 cycle melody using
note
and a sample(s) of your choice -
There are many more chord qualities available to use - explore!
-
hurry
is a function that combines both thefast
andspeed
functions - can you prove this by creating two identical sounding patterns, one usinghurry
and the other usingfast
andspeed
together?
-
Write a chord progression to accompany your melody from 2.
-
Write a 4 cycle melody to accompany our chord progression from the
note
section
note "<[c4'maj'8 ~ d4'min'ii] e4'min'6 [~ g'maj]>" # sound "ukulele"