Tutorial

Rhythmic Notation

I got more rhythm, and it has western note values, seriously, is there anything more?

How to notate rhythms

From the previous chapter, we have a pattern in proportional notation. If we have our time set to 4/4 this represents three quarter notes and two eighths.

play([d2, f, g, [e2, bf1]], synth)

We may feel more comfortable thinking more musically and less mathemtically. There’s an option for that:

play([d2;q, f, g, e2;e, bf1], synth)

Just like the use of the semi-colon to represent a different proportion in the last chapter. Here we are using it to indicate a rhythmic value. Below is the current set of usable values:

NameNoteBeatsBar in 4/4
wWhole41
hHalf21/2
qQuarter11/4
eEighth1/21/8
sSixteenth1/41/16

There is currently no thirthy second notes.

Like before, the rhythm carries forward.

play([d2;q, f, g, e2;e, bf1], synth)

So d2, f and g are all quarter notes and bf1 is an eighth note.

We can modify rhythms in to ways:

MarkerMeaning
.dotLengthens by half. Takes an optional count from 1 to 8 — q.dot is 3/2 beats, q.dot(2) is 7/4, following (2^(n+1) − 1)/2^n.
;tTuplet. Plays a bracketed group in the next lower power of two — three quarters in the time of two, five eighths in the time of four.

Going back to out proportional example, the nested group of three is an eighth note triplet.

play([d2, f, g, [e2, bf1, g2]], synth)

With this notation, we can make that explicit.

play([d2;q, f, g, [e2;e, bf1, g2];t], synth)

In this case the ;t is required. Otherwise, you don’t require brackets at all for straight eighths. With this notation, we can make that explicit.

play([d2;q, f, g, e2;e, bf1, g2], synth)

And yes, this produces a four and one half note pattern that would syncopate over the bar. There are no guards to prevent interesting things like this.

Ok, that’s all, right? Well, how do we make silence? What about drums?