First Noise

EDM.0: patterns · mini-notation · the smallest meaningful sounds in history

Every code block below is a live editor. Change anything, hit the play button, hear what breaks. That’s the whole method.

how to read this page

Play the code first. Listen. Then read the text around it. The sound comes before the name. Always.

repertoire for this lesson

Chest Opening Jingle — Koji Kondo (The Legend of Zelda, 1986). 4 notes ascending. Every human alive recognizes it. The smallest meaningful musical gesture. This is what sequencing sounds like.

Coin Sound — Koji Kondo (Super Mario Bros., 1985). Two notes. A reward signal burned into collective memory. Pitch, duration, and why sound design is composition.

Before you can write a symphony you need to write 4 notes that mean something. Kondo did it in 1986 and 40 years later you still hear it in your sleep.

01Hear It First

Press play. Don't read anything else yet.

ascending arpeggio (placeholder — real jingle TBD)

Four notes. Ascending. A C major arpeggio. (Listen to the actual Zelda chest jingle — we'll get the real transcription in soon. For now, this teaches the concept: a short pattern that carries meaning.)

Now this one:

coin

Two notes. The Mario coin. You've heard this ten thousand times. It means you got something. Two notes, and they carry meaning.

That's composition. Sounds placed in time that make a human feel something.

What just happened

note("c4 e4 g4 c5") is a pattern. It tells Strudel which notes to play and in what order. The notes cycle through one per beat. That's all a pattern is: a sequence of events in time.

02The Pattern Language

Strudel's mini-notation is how you write patterns. Let's take the Zelda jingle apart.

one note per cycle

One note. Repeating. That's a pattern with one event. Now add the second:

two notes

Two notes. They split the cycle evenly. Each gets half the time. Add the third and fourth:

the full jingle
Mini-notation

Spaces separate events. More events = each one gets less time. "c4 e4 g4 c5" means four notes, evenly spaced across one cycle. This is mini-notation. Strudel's way of writing rhythmic sequences in a single string.

Try this

Change c5 to e5. What happens to the feeling? Now try g3 instead. The pattern is the same (four notes, evenly spaced) but the pitch changes everything.

Now let's get percussive:

your first beat

s() instead of note(). This plays samples instead of synth notes. bd is a kick drum. hh is a hi-hat. sd is a snare. Same pattern logic: four events, evenly spaced.

Try this

Swap sd for cp (clap). Try "bd bd sd bd". Try "bd hh sd hh bd hh sd oh". Eight events now. Double-time. The pattern language is the same. Only the density changes.

Euclidean: let math place the hits

(3,8) distributes three kicks as evenly as possible across eight slots. The math picks the spacing. Even distribution tends to sound good.

three in eight: euclidean
Try this

Try (5,8), (3,4), (7,16), (2,5). Different numbers, different feel. Some of these are West African and Afro-Cuban rhythms, centuries old.

rabbit hole: euclidean rhythms, the algorithm, and 500 years of rhythm

E(3,8): the tresillo

Hear that pattern you just played? That’s the tresillo. Three hits, eight slots, spaced as evenly as possible.

What you’re looking at is a rhythm necklace: a circular pattern where rotation doesn’t change the shape, only where beat 1 falls. Every row in the table above is a different necklace. The tresillo and the son clave are the same necklace, worn differently.

The algorithm

Distribute 3 hits across 8 slots as evenly as possible. The gaps between hits can only ever be two sizes (here, 3 and 2). That’s maximal evenness.

[x . . x . . x .]

Where these patterns show up

patternnametraditionvibe
(3,8)TresilloCuban / West AfricanThe backbone of Afro-Cuban music. Claves, cowbell, bass.
(5,8)CinquilloCuban contradanzaTresillo’s denser cousin. Timbales, guiro.
(3,4)CumbiaColombian / PersianNearly full: three hits, one gap.
(7,12)West African bellAshanti / Yoruba / EweThe standard bell pattern. Everything else plays around it.
(5,16)Bossa novaBrazilianTwo bars of floating syncopation.
(7,16)SambaBrazilianDense, driving agogo bell pattern.

Rotation

(3,8,2) is the same three hits, started from a different position. Same necklace, different downbeat. The tresillo and the son clave are rotations of each other. Same math, different groove.

rotation comparison: same hits, different start

Angle brackets: alternate per cycle

< > rotates through its options, one per cycle. Snare, clap, snare, clap.

snare on odd cycles, clap on even
Mini-notation: the short version

[ ] subdivide • *N multiply • ~ rest • (k,n) euclidean • < > alternate

Five tools. Every rhythm in this course uses some combination of these.

03Stack It

One pattern is a melody. Two patterns playing at the same time is a texture. Strudel uses stack() to play multiple patterns simultaneously.

zelda + rhythm

The Zelda jingle over a basic beat. Two layers. This is how all music works. Independent voices happening at the same time. A melody doesn't exist alone. It exists against something.

Repertoire note: Kondo's method

Koji Kondo composed on the NES. 5 audio channels: 2 pulse waves, 1 triangle, 1 noise, 1 sample. Every sound in every Nintendo game came from those 5 voices. You're working with the same idea. stack() lets you layer voices, but each one has to earn its place.

Try this

Add a third layer: note("c3").s("sawtooth").lpf(400). A low filtered bass note. Feel how it changes the weight of everything above it.

rabbit hole: samples vs synths, wave shapes, and filters

Samples vs synths

s() plays a recording. Someone hit a drum, we play it back. note() generates a wave from scratch. No recording, just math. Samples sound “real.” Synths sound “electronic.” Both are patterns.

Wave types

wavesoundcode
sinepure, clean, sub-bass.s("sine")
sawtoothbright, buzzy, leads + bass.s("sawtooth")
squarehollow, woody, chiptune.s("square")
trianglesoft, muted, gentler saw.s("triangle")

Filters

A filter removes frequencies. .lpf(500) = low-pass filter at 500hz. Everything above 500hz gets cut. The number is the cutoff. Lower number = darker sound. Higher = brighter.

filterdoescode
lpfcuts highs (low-pass).lpf(500)
hpfcuts lows (high-pass).hpf(200)
cutoff passes cut frequency → volume LPF cutoff cut passes frequency → volume

Envelope (ADSR)

An envelope shapes a sound over time. Four stages:

stagecontrolscode
attackhow fast the sound starts.attack(0.01)
decayhow fast it drops from peak.decay(0.1)
sustainlevel it holds at (0–1).sustain(0.5)
releasehow fast it fades after stopping.release(0.3)
sustain level attack decay sustain release

.sustain(0) with a short .decay() = a pluck. No sustain, instant drop.

04Your Composition

Every lesson in this course builds a piece of ambient music alongside the main exercises. By Lesson 7 you'll have a finished 60-90 second track.

Your instrument: a koto, a 13-string Japanese instrument plucked with fingerpicks. It sounds like a harp with edges. .sound("gm_koto") loads it from Strudel's General MIDI bank. Three or four notes placed in silence. The beginning of something.

your ambient piece: first gesture

Sparse. Mostly silence. The ~ is a rest, a deliberate gap. The delay and room let each note ring out and decay into the space around it.

This is the seed. Over the next 7 lessons, you'll add a pulse, a drone, a second voice, and effects. By Lesson 7, you'll have a finished piece.

Your turn

Change the notes. Keep the silences. The ~ rests are doing as much work as the notes. Try "a3 ~ ~ ~ d4 ~ ~ e4". Try your own. Find 3-4 notes that feel like grey water and distance.

05Your First Loop

Put it all together. A beat, a melody, and your ambient sketch layered on top. This is yours. Change anything. Break it. Fix it. Share it.

capstone: share this
Before you go
  1. Replace the Zelda melody with the Mario coin (note("b5 e6")). How does 2 notes vs 4 change the feel?
  2. Write a 6-note pattern of your own. No theory. Just notes that sound good to you.
  3. Remove the beat entirely. Just the koto sketch alone. Does it stand on its own?
  4. Share your capstone. Hit the share button and post it.
what you earned
tooldoeslooks like
s()plays a sample by names("bd sd hh")
note()plays a pitched note through a synthnote("c2 eb2")
stack()layers patterns on top of each otherstack(s("bd"), s("hh*8"))
[ ]subdivides a slot (crams sounds in)s("bd [sd sd]")
*Nrepeats a sound N times in one slots("hh*8")
~rest: holds the slot silents("bd ~ sd ~")
(k,n)euclidean: distributes k hits across n slotss("bd(3,8)")
< >alternates options, one per cycles("bd <sd cp>")
.method()chains effects onto a pattern.lpf(500).gain(.5)
.s()sets the sound source (sample or synth type).s("sawtooth")
.gain()sets volume (0 to 1+).gain(.5)
.lpf()low-pass filter: cuts frequencies above cutoff.lpf(500)
.decay()how fast the sound drops from peak.decay(.15)
.sustain()level the sound holds at after decay.sustain(0)
sawtootha bright, buzzy synthesizer wave.s("sawtooth")

Next: The Break. 170bpm, half-time snare, an actual DnB beat.

mini-notation reference
syntaxnamedoesexample
[ ]bracketssubdivides a slots("bd [sd sd]")
*Nmultiplyrepeats N times in one slots("hh*8")
~restsilence, holds the slots("bd ~ sd ~")
(k,n)euclideandistributes k hits across n slotss("bd(3,8)")
(k,n,r)euclidean + rotationsame but rotated r stepss("bd(3,8,2)")
< >alternateone option per cycle, rotatings("bd <sd cp>")
/Nslowstretches pattern across N cycless("[bd sd hh oh]/2")
!Nreplicaterepeats without changing speeds("bd!3 sd")
?degrade50% chance of silences("hh*8?")
listening

Tracks that demonstrate this lesson’s concepts.

artisttrackwhy
Koji KondoSuper Mario Bros.: Coin Jingle (1985)(VGM) inspired by the two-note motif, instant dopamine, the shortest motif in gaming
Koji KondoSuper Mario Bros.: Overworld (1985)(VGM) inspired by the C major groove, the most recognized game melody, 5-channel NES
KraftwerkNumbers (1981)(electronic) minimal pattern construction from drum machine loops
Derrick MayStrings of Life (1987)(electro) a piano loop becomes a complete dance track
New OrderBlue Monday (1983)(synth-pop) programmed loop as the whole song
Afrika BambaataaPlanet Rock (1982)(electro) Kraftwerk samples fused with the South Bronx, bridging Düsseldorf to hip-hop
history

The idea of repeating patterns as music predates electronics by centuries — player pianos, music boxes, barrel organs. But the electronic loop changed everything.

Karlheinz Stockhausen and tape loops (1950s)

In 1952–53 at the WDR studio in Cologne, Stockhausen created Studie I and Studie II — the first purely electronic compositions, built from sine wave generators and tape splicing. He demonstrated that sound could be constructed, not just recorded. His student Holger Czukay went on to found Can. His ideas directly influenced Kraftwerk.

Kraftwerk and the sequencer (1970s)

Ralf Hütter and Florian Schneider built custom instruments — the Synthanorma sequencer could store 32 steps and repeat them. Trans-Europe Express (1977) and Computer World (1981) proved that machine repetition wasn’t cold — it was hypnotic. Afrika Bambaataa sampled “Numbers” and “Trans-Europe Express” for “Planet Rock” (1982), connecting Düsseldorf to the South Bronx.

Detroit techno (1980s)

Juan Atkins, Derrick May, and Kevin Saunderson — the Belleville Three — heard Kraftwerk on late-night radio in Detroit and fused it with Parliament-Funkadelic. Atkins: “I just thought it was some cool shit from outer space.” May’s “Strings of Life” (1987) demonstrated that a programmed loop could carry the emotional weight of a live performance.

Sources: Stockhausen, Studie II (1954); Bussy, Kraftwerk: Man, Machine and Music (2004); Sicko, Techno Rebels (2010); Reynolds, S. Energy Flash (1998).

→ explore the full timeline