# Mini Notation

**Mini-notation** is the name of a special notation used for writing patterns of various sort (*notes*, *samples*, *parameters*). To use the mini-notation, use a string delimited by quotation marks: `""`

. Internally, the mini-notation is actually parsed and understood as a shortcut for a function that you could otherwise write using longer function compositions.

Learning the mini-notation is **essential** for learning how to make music with **Tidal Cycles**. The notation is rather intuitive. We encourage you to try all these examples to see if you understand what effect every symbol can have on your pattern.

## #

Mini-notation tableSymbol | Description | Example | Equivalent |
---|---|---|---|

`~` | Create a rest | `d1 $ s "~ hh"` | |

`[ ]` | Create a pattern grouping | `d1 $ s "[bd sd] hh"` | `d1 $ fastcat [s "bd sd", s "hh"]` |

`.` | Shorthand for pattern grouping | `d1 $ s "bd sd . hh hh hh"` | `d1 $ s "[bd sd] [hh hh hh]` |

`,` | Play multiple patterns at the same time | `d1 $ s "[bd sd, hh hh hh]"` | `d1 $ stack [s "bd sd", s "hh hh hh"]` |

`*` | Repeat a pattern | `d1 $ s "bd*2 sd"` | `d1 $ s "[bd bd] sd"` |

`/` | Slow down a pattern | `d1 $ s "bd/2"` | `d1 $ s (slow 2 $ "bd")` |

| | Create a random choice | `d1 $ s "[bd` |`cp ` |`hh]"` | |

`< >` | Alternate between patterns | `d1 $ s "bd <sd hh cp>"` | `d1 $ slow 3 $ s "bd sd bd hh bd cp"` |

`!` | Replicate a pattern | `d1 $ s "bd!3 sd"` | `d1 $ s "bd bd bd sd"` |

`_` | Elongate a pattern | `d1 $ s "bd _ _ ~ sd _"` | Results in pattern `(0>1/2)\|s: "bd" (4/6>1)\|s: "sd"` |

`@` | Elongate a pattern | `d1 $ s "superpiano@3 superpiano"` | `d1 $ s "superpiano _ _ superpiano"` |

`?` | Randomly remove events from pattern | `d1 $ s "bd? sd"` | `d1 $ fastcat [degradeBy 0.5 $ s "bd", s "sd"]` |

`:` | Selecting samples | `d1 $ s "bd:3"` | `d1 $ s "bd" # n 3` |

`( )` | Euclidean sequences | `d1 $ s "bd(3,8)"` | `d1 $ euclid 3 8 $ s "bd"` |

`{ }` | Polymetric sequences | `d1 $ s "{bd bd bd bd, cp cp hh}"` | 2nd pattern wraps: `d1 $ stack [ s "bd*4", s "cp cp hh cp" ]` |

`{ }%` | Polymetric sequence subdivision | `d1 $ s "{bd cp hh}%8"` | Pattern wraps: `d1 $ s "bd cp hh bd cp hh bd cp"` |

## #

The mini-notation in depth### #

RestsUse `~`

to create rests in your patterns:

### #

Pattern groupingPicture every element of your cycle as a step. Divide a simple pattern by 4:

Now use pattern grouping to create a subdivision of any step:

You can play with infinite layers of subdivisions. Time and human perception is the limit:

### #

Pattern grouping shorthandYou can use `.`

to separate multiple pattern groupings in your pattern top-level:

You can nest pattern grouping shorthands:

### #

SuperpositionYou can play multiple patterns at the same time inside one pattern. This is one of the most intuitive ways of dealing with superposition/polyphony. These patterns have the 4 samples sounding together, but with different rhythmic subdivisions. The second pattern is a complete rhythm section:

##### tip

Be sure to enclose your pattern between brackets (`[]`

) if you want to use superposition at the top-level.

### #

Step repetitionYou can repeat a step as many times as you like using the multiplication symbol (also illustrated above):

### #

Step divisionYou can slow down a pattern by using division (`/`

). This one needs a little bit of practice to be understood:

The `clap`

will only be heard every other cycle.

### #

AlternateYou can alternate between events in your pattern using the `less-than`

and `more-than`

symbols < >. This one can be used to add a little variation to your pattern or to create nice and simple melodies and arpeggios:

### #

ReplicateUse `!`

to replicate a given event `x`

times:

##### caution

This is not the same thing as the `*`

symbol. `!`

will create new steps or `replicate`

the steps. `*`

will only multiply a step by a given factor:

### #

ElongateElongate or `_`

will extend the duration of an event for `x`

steps:

You might hear a lot of silence between the first hit and the hi-hat. That's perfectly normal. Silence is cool too.

### #

RandomizationYou can use a question mark `?`

to randomly remove some events from the pattern, with a probability of `1/2`

. To use a different probabilty, use a number after the question mark.

### #

Random choiceYou can use the | symbol between brackets `[]`

to choose between multiple events with an equal probability:

### #

Sample SelectionWhen entering the name of an audio sample, you are in fact entering the name of the `folder`

containing it. To select a specific file in the selected folder, use the `:`

symbol followed by any number:

##### tip

You can't go too far in the folder and select a file that doesn't exist. Something like `cp:1238129038123`

will work:

Tidal will not complain. It will just cycle in the folder until it finds the right sample.

### #

Euclidian SequencesEuclidian rhythms are rhythms obtained using the greatest common divisor of two numbers. They were described in 2004 by Godfried Toussaint, a canadian computer scientist. Euclidian rhythms are really useful for computer/algorithmic music because they can accurately describe a large number of rhythms used in the most important music world traditions. The algorithm work by providing two numbers:

- the number of beats
- the number of steps/silences to fill

An euclidian rhythm will distribute the first number of beats to the second numbers of steps to be filled. With Tidal, you can create euclidian rhythms by adding an event followed by the `(x,y)`

indicator, `x`

and `y`

corresponding to the numbers described above:

#### #

More examples### #

Polymetric SequencesCreating polymetric sequences is a fairly advanced thing you can do using the **Tidal** mini-notation. To do so, enclose your pattern between curly brackets (`{}`

). In the 1st example the 3 note and 4 note patterns sound together. The 4 beat pattern wraps and you hear the cr sample on different parts of the 3 beat pattern:

### #

Polymetric Sequences with SubdivisionAlternatively, you can also add the precise subdivision you are looking for by using `%`

followed by the subdivision number: