Skip to content
This repository was archived by the owner on Jun 19, 2025. It is now read-only.
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 17 additions & 2 deletions website/src/pages/learn/mini-notation.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import { JsDoc } from '../../docs/JsDoc';

# Mini-notation

Just like [Tidal Cycles](https://tidalcycles.org/), Strudel uses a so called "Mini-Notation", which is a custom language that is designed for writing rhythmic patterns using little amounts of text.
Just like [Tidal Cycles](https://tidalcycles.org/docs/reference/mini_notation/), Strudel uses a so called "Mini-Notation", which is a custom language that is designed for writing rhythmic patterns using little amounts of text.

## Note

Expand Down Expand Up @@ -156,7 +156,11 @@ But to play multiple chords in a sequence, we have to wrap them in brackets:

## Elongation

With the "@" symbol, we can specify temporal "weight" of a sequence child:
With the "\_" symbol, we can manually extend the duration of an event:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

maybe leave that out, as we try to quietly deprecate "_", in favor of "@" ?


<MiniRepl client:idle tune={`note("<[g3,b3,e4] _ _ [a3,c3,e4] [b3,d3,f#4]>*2")`} punchcard />

With the "@" symbol, we can do the same thing more conveniently by specifying the temporal "weight" of a sequence child:

<MiniRepl client:idle tune={`note("<[g3,b3,e4]@2 [a3,c3,e4] [b3,d3,f#4]>*2")`} punchcard />

Expand All @@ -168,6 +172,16 @@ Using "!" we can repeat without speeding up:

<MiniRepl client:idle tune={`note("<[g3,b3,e4]!2 [a3,c3,e4] [b3,d3,f#4]>*2")`} punchcard />

## Degradation

Using "?" we can randomly drop events from a pattern while preserving their time slot:

<MiniRepl client:idle tune={`note("<[g3,b3,e4]? [a3,c3,e4]? [b3,d3,f#4]>*2")`} punchcard />

We can include a number after the "?" to represent the probability of being dropped, otherwise defaulting to 0.5:

<MiniRepl client:idle tune={`note("<[g3,b3,e4]? [a3,c3,e4]?0.9 [b3,d3,f#4]>*2")`} punchcard />

## Mini-notation review

To recap what we've learned so far, compare the following patterns:
Expand All @@ -179,6 +193,7 @@ To recap what we've learned so far, compare the following patterns:
<MiniRepl client:idle tune={`note("<[g3,b3,e4] _ [a3,c3,e4] [b3,d3,f#4]>*2")`} />
<MiniRepl client:idle tune={`note("<[g3,b3,e4]@2 [a3,c3,e4] [b3,d3,f#4]>*2")`} />
<MiniRepl client:idle tune={`note("<[g3,b3,e4]!2 [a3,c3,e4] [b3,d3,f#4]>*2")`} />
<MiniRepl client:idle tune={`note("<[g3,b3,e4]?0.9 [a3,c3,e4] [b3,d3,f#4]>*2")`} />

## Euclidian rhythms

Expand Down