Goals:
- create code to make (and stop) sounds in Estuary
- identify available sound/sample banks, and how you can use them
- create sequenced sounds using tidal mini-notation
- understand square
[]
and angle<>
bracket notation
Reference:
!presetview twocolumns
Choose MiniTidal from the language dropdown for both cells
In the leftmost cell, create a kick (bass) drum sound that plays once each cycle
sound "bd"
To evaluate, or execute the code (programming jargon) - press the Play button associated with the cell
You can also evaluate a cell using Shift + Enter
Let's evaluate a sound in the rightmost cell
sound "~ sd"
Each cell can be thought of as a stereo audio channel - the second example introduces a basic sequence within a cycle, with two elements:
- a rest
~
, and a - snare drum sound
sd
Tidal takes the pattern provided between the quotes, and fits it evenly into one cycle
silence
is important! In music, and especially in Tidal - you can stop your audio streams in a number of ways
Appending # silence
to the end of the code block in a cell, and evaluating
sound "bd"
# silence
Prepending --
(indicates a comment) to any lines you wish to stop
-- sound "bd"
Or by removing all the code in the cell, and evaluating the blank cell - a good keyboard shortcut for this is:
- Select All
Ctrl+A
, then Backspace
orDelete
, then- Evaluate
Shift+Enter
I tend to use this method because it's quicker, and you can very easily bring your code back with the keyboard shortcut
- Undo
Ctrl+Z
Open a new browser tab, and go to
Click on the Solo Mode
item, and type the following into the chat/terminal window (brace yourself):
!localview audiomap
This displays a list of all the available sample names for use in Tidal.
Note that each sample name is actually a folder, containing a number of (usually) related sample files.
You can choose a different sample from within the folder by appending a number (counting from 0
)
sound "sd:0 sd:1"
By default, if you don't specify which numbered sample to play, tidal will use samplename:0
Explore! find two new samples that you like (you may like the sound, or the name of the sample - either is fine!)
The Tidalcycles language allows short and concise statements to create patterns of sound (or anything!). Mini-notation is the name of the language within Tidalcycles that is used to "sequence" the sounds ie specifying the order and position in time at which the sound plays.
Whenever you see " "
in tidal, the language between the quotes is (almost always) mini-notation
Let's start in the left hand cell, and create a simple kick snare loop
sound "bd sd"
The more samples we add, the faster the items in the sequence plays - tidal fits all the sounds within the "cycle" which remains constant
sound "bd hc sd hc bd bd hc sd ho"
You can use a variety of different punctuation "operators" within the pattern to modify the way it behaves.
Starting with a simple pattern again, let's use the *
operator
sound "bd*2 sd"
*N
will repeat the sample the number of times you choose within the time that would be allocated to a single bd
event, or a "step" - try increasing the number from 2
!N
is a similar operator, but subtly different - it also tells the sample to repeat by the number specified, but spreads the time allocated for each "event" evenly within the cycle ie inserts extra "steps"
sound "bd!2 sd"
This is equivalent to "bd bd sd"
Check it! Then try increasing the number from 2
/N
will reduce the number of times the event plays to every N
th cycle
sound "bd/2 sd"
Notice how the bd
sample only plays every 2
nd cycle?
Strictly speaking, the /
operator will spread the sequence it is working on over the number of cycles you specify - we'll see how it can be applied to a (sub-) sequence further on
Mini-notation makes heavy use of different sorts of bracket types, each has a very specific purpose
[ ]
or "square brackets" group a number of events into a step, creating a sub-sequence - let's start with a new simple pattern again
sound "bd hc sd hc"
and fit some extra events (~ bd
) into the last step
sound "bd hc sd [hc ~ bd]"
You can nest square brackets
sound "bd hc sd [[hc bd] ~ bd*2]"
...and easily create "compound time signatures"
sound "[bd hc sd] [hc bd hc bd]"
You can even apply the mathematical operators mentioned earlier to bracketed sub-sequences
sound "bd hc sd [hc ~ bd]*2"
sound "bd hc sd [hc ~ bd]!2"
-- or equally
sound "bd hc sd [hc ~ bd] !"
sound "bd hc sd [hc ~ bd]/3"
Note: the /
operator is actually spreading the [hc ~ bd]
pattern evenly over the three "steps" in the three "cycles"... what if you change the 3
to a 2
? /cue brain explosion
Square brackets allow us to add multiple simultaneous patterns to easily create polyrhythms!
sound "[bd bd, sd sd sd, hc hc hc hc]"
Often you will not want the pattern to repeat every cycle, and to assist with this are the handy "Angle Brackets"
Space separated patterns within < >
brackets will iterate through each space separated pattern, each cycle
sound "<bd cp bd [cp ho]>"
They can also be nested
sound "<<bd*4 sd*12> [bd hc]*4 >"
- Shorten the following examples using any of the operators, and brackets covered in this workshop
Tip: put the original pattern in one cell, and build your variation in the other cell so you can play them both to confirm
sound "[bd bd] hc sd hc bd hs sd [hc hc [hc hc]]"
sound "bd hc sd hc bd hs sd hc"
sound "bd hc sd [[hc ~ bd] [hc ~ bd]]"
- Explore the use of the
@
operator
sound "bd@1 sd@1"
- Explore the use of the curly braces
{
}
sound "{bd sd}%4"