Skip to content

Latest commit

 

History

History
254 lines (166 loc) · 6.33 KB

File metadata and controls

254 lines (166 loc) · 6.33 KB

DECODED Banner

MiniTidal Audio Workshop 1-1 - First Sounds (~1.0h)

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:

Setup Cells!

!presetview twocolumns

Choose MiniTidal from the language dropdown for both cells


Making your First Sounds

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!

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 or Delete, 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

Exploring Sounds available in Estuary

Open a new browser tab, and go to

https://estuary.mcmaster.ca

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!)


Introduction to "mini-notation" for sequencing

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 Nth cycle

sound "bd/2 sd"

Notice how the bd sample only plays every 2nd 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


Sub-sequencing with [ ]

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]"

Patterns per cycle with < >

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 >"

Exercises:

  1. 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]]"

For Bonus Points

  1. Explore the use of the @ operator
sound "bd@1 sd@1"
  1. Explore the use of the curly braces { }
sound "{bd sd}%4"