Meter, Note Values and Your First Grooves
Learning objectives
- learner can read meter, time signatures, note values and dotted rhythms
- learner can place kick, snare and hi-hat on the 16-step grid to build a backbeat groove
- learner can create syncopation and choose sample and tempo appropriate to a target genre
Capstone — one whole task that evidences the objectives
Program a two-bar drum groove on a 16-step grid at a genre-appropriate tempo: kick on the downbeat, a backbeat snare, offbeat hats, one syncopated accent and one dotted-rhythm variation — with samples chosen to fit the genre.
Prerequisite modules
This module builds toward the first genuinely musical thing most live coders and bedroom producers make: a two-bar drum groove that sounds like it belongs to a genre. Whether you are step-sequencing an 808-style pattern in a browser sandbox or typing a drum line into a live-coding buffer, the same skill is at work — hearing a pulse, knowing where the strong and weak positions sit, and placing kick, snare and hats so the groove drives rather than plods. This is the rhythmic literacy every later module leans on.
The arc starts on paper, not the grid. First you learn how meter groups beats into bars, how a time signature encodes that, and how note values and the dot work — the fractional-proportion naming of note lengths and the dotted-note rule are your JIT references here. Then you translate that notation onto the sequencer: the 16-step grid atom shows how two bars of 4/4 become slots 1–16, and the drum pattern construction procedure walks you through a supported first pattern — kick anchored on the downbeat, snare answering on the backbeat, hats riding above. From there the supports come off: you add an offbeat open hat, push one accent onto a weak position using the syncopation concept, and finish by picking samples and a tempo that fit your target genre before programming a fresh groove unassisted.
Every required atom is load-bearing for that capstone: you cannot place a dotted-rhythm variation without note values, or a genre-appropriate tempo without the BPM ranges. The supporting atoms widen the frame — what drum programming is historically, why a groove can feel faster or slower than its BPM, and how the two-step strips a break to its skeleton — enriching taste without gating the task.
Runnable examples
Generated from the context/ instrument corpus by concept (redistributable idioms only). Do not edit — regenerate with gen-module-examples.mjs.
four-on-the-floor
s("bd*4")
strudel-0001 · CC0
setcps 0.52
tidal-0044 · CC0
offbeat-hats
s("~ hh ~ hh")
strudel-0002 · CC0
d1 $ sound "~ hh ~ hh"
tidal-0002 · CC0
backbeat
s("~ sd ~ sd")
strudel-0003 · CC0
d1 $ sound "~ sn ~ sn"
tidal-0003 · CC0
breakbeat
out: speed 4.0 >> seq 60 _ _ 60 _ 60 _ _ >> bd 0.2 >> mul 0.6
glicol-0035 · MIT
setcpm(174/4)
stack(
s("amencutup*8").chop(8).sometimesBy(0.3, x => x.speed(2)),
note("c1 ~ ~ c1 ~ g1 ~ ~").s("sawtooth").lpf(500),
s("~ cp").room(0.2)
)
strudel-0050 · CC0
subdivision
seq [55, 82.5, 110, 82.5] & osc >> audio
punctual-0014 · CC0-1.0
d1 $ n "0 .. 7" # scale "minor" # sound "arpy"
tidal-0030 · CC0
syncopation
Pbind(\degree, Pseq([0, 4, 7], inf), \dur, 0.5, \amp, Pseq([0.4, 0.1, 0.1, 0.1], inf)).play
supercollider-0036 · CC0
Atoms in this module
Required — these gate the capstone
Supporting — enrichment, not gating
Part of curricula
- DJ / Selector — from track selection to a mixed set — Behind the decks: signal, cue and the first blend required
- Electronic Music Producer — from raw sound to a released track — Make your first loop — sound, DAW, and the ear required
- Live Coder — zero to performing live-coded music — First Sounds in the Browser required
- Music Culture Writer — scenes, lineages & critical practice — Orientation & the origin stories recommended
- Sampling Artist — from crate-digging to a curated sample practice — Turn recorded sound into an instrument required
- Synthesist / Sound Designer — deep DSP to a performed live synth rig — The synthesis palette — FM, additive, wavetable, granular, drums optional
Unlocks — modules that require this one