Lesson 16 +10 XP

Elongate & Replicate

Two more note tools: elongate notes with @ and replicate them with !.

Elongate with @

@ makes a note longer. c@3 means the c is 3 units long:


strudel
note("c@3 eb").sound("gm_acoustic_bass")

Not using @ is like using @1. In the example above, c is 3 units long and eb is 1.

Elongate within sub-sequences


strudel
setcpm(60)
n("<[4@2 4] [5@2 5] [6@2 6] [5@2 5]>*2")
.scale("<C2:mixolydian F2:mixolydian>/4")
.sound("gm_acoustic_bass")

This groove is a shuffle: each beat has two notes where the first is twice as long as the second. It's also called triplet swing, common in blues and jazz.

Replicate with !

! repeats a note. c!2 plays c twice:


strudel
setcpm(60)
note("c!2 [eb,<g a bb a>]").sound("piano")

!, * and @ - what's the difference?

  • !
  • replicate: repeat the value (same length).
  • *
  • speed up: compress the value into a shorter time.
  • @
  • elongate: stretch the value over a longer time.

TL;DR

  • c@3 elongates c to 3 units.
  • c!2 replicates c twice.
  • @ stretches time, ! repeats, * compresses.