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?
-
fastandsloware 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! -
fastandslowcan 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
noteand a sample(s) of your choice -
There are many more chord qualities available to use - explore!
-
hurryis a function that combines both thefastandspeedfunctions - can you prove this by creating two identical sounding patterns, one usinghurryand the other usingfastandspeedtogether?
-
Write a chord progression to accompany your melody from 2.
-
Write a 4 cycle melody to accompany our chord progression from the
notesection
note "<[c4'maj'8 ~ d4'min'ii] e4'min'6 [~ g'maj]>" # sound "ukulele"
