Your L5 capstone breathes. Patterns transform. But every cycle has everything. A real piece has shape: sections where elements disappear and return. The moment they return is the drop.
Repertoire: One Winged Angel (Nobuo Uematsu, FF7, 1997) — the most famous build-to-drop in game music. Sealed Vessel (Christopher Larkin, Hollow Knight, 2017) — restraint, then devastation. Weight of the World (Keiichi Okabe, NieR: Automata, 2017) — arrangement as narrative.
Parallel composition: Your ambient piece gets structure. Jo-ha-kyū realized: introduction, development, climax, silence.
What you already know: Everything from L0-L5. Patterns, layers, space, chords, transforms.
The full phonk beat from EDM.4. Everything playing:
Now the same beat. Kick removed:
Notice the hole. The kick was carrying the weight. Without it, the beat floats. Your brain fills in the missing pulse and waits for it to come back.
Strip more. Just hats:
Tension. The listener knows what belongs here. Now bring it back. cat() plays patterns one after another—one per cycle. Stripped, then full:
One cycle of hats. Then the full beat hits. That moment of return is the drop. It works because you heard the absence first. The drop is defined by what came before it.
The moment of maximum impact in a track. It works through contrast—strip elements away, then bring them back. The bigger the absence, the harder the return. Silence is the loudest tool in arrangement.
Remove the clap instead of the kick in the stripped section. Or the cowbell. Each element leaves a different shaped hole. Try removing two elements. Notice which absence feels most dramatic.
A drop that arrives without warning is a surprise. A drop that arrives after a build is an event. The build creates rising tension so the drop has weight.
Hats through a lowpass filter that opens over 8 cycles. The brightness rises:
At the bottom of the sweep, the hats are muffled—dull ticks. At the top, full brightness. The filter does the work of building energy without adding notes or volume.
Density increase. The snare starts sparse and doubles each bar:
One hit, two hits, four hits, eight hits. The density doubles each cycle. The <> alternates between values—one per cycle. After 4 cycles it loops. The roll accelerates toward a destination.
An 8-cycle arrangement. Bars 1–2: intro (pad and muffled hats). Bars 3–4: build (filter opens, snare rolls in, clap enters). Bars 5–8: the drop (everything):
Eight cycles. The first two are sparse—pad and dark hats. Then the filter opens, the snare roll accelerates, the clap arrives. Bars 5–8: kick, bass, cowbell, everything. The <> patterns on .gain() and .lpf() control when each element appears and how bright it sounds. That’s arrangement through gain automation.
Rising tension before a drop. Two primary tools: filter sweeps (brightness increases over time) and density increase (snare rolls, hat fills). The build tells the listener something is coming. The longer and steeper the build, the harder the drop hits.
Change the hat filter range: .lpf("<200 200 600 2000 12000 12000 12000 12000>") for a wider sweep. Try s("sd*<0 0 4 16 0 0 0 0>") for a more aggressive snare fill. Or bring the kick in on bar 4 instead of bar 5 for an earlier drop.
The build uses <> to control gain per cycle. cat() takes a different approach—entirely different patterns, played one per cycle. Pad-only, then drums+bass:
Cycle 1: just the pad. Cycle 2: drums and bass, no pad. Back and forth. Two completely different textures alternating. cat() is a section switch—each argument is a section, played in order, one per cycle.
cat(pattern1, pattern2, ...): plays patterns sequentially, one per cycle. When it reaches the last pattern, it loops back to the first. Use it to alternate between sections—verse and chorus, stripped and full, build and drop.
The / operator spreads a pattern across multiple cycles. Instead of cramming everything into one cycle, it takes its time:
Six notes spread across two cycles. Three notes per cycle instead of six. The pattern slows down by half. /2 means “take two cycles to play through.”
The @ operator holds a note longer within a cycle. It controls duration weight:
C3 gets 3 time units. Eb3 gets 1. The cycle divides into 4 equal parts and C3 takes three of them. @3 means “hold for 3 shares of the total.” Useful for long sustained pads that hand off to a short transitional note.
[pattern]/N: spread a pattern across N cycles. The pattern plays slower. note@N: hold a note for N time units within a cycle. Both give you control over pacing—/ stretches across cycles, @ stretches within a cycle.
Try [c3 eb3 g3 c4 eb4 g4]/4 to spread the arpeggio across four cycles. Or note("c3@7 eb3") for extreme imbalance—the C holds for 7/8 of the cycle. Combine with cat(): one section uses /2 for a slow melody, the next uses *8 for rapid runs.
Different genres shape energy differently. House builds gradually over minutes. Drum and bass cuts between sections rapidly. Phonk loops a vibe then switches up. The shape of energy over time is the arrangement.
House uses long builds and drops—the arc spans minutes. DnB cuts rapidly between high and low energy, keeping the dancer on edge. Phonk loops at a steady energy then hits a sudden switchup—flat sections punctuated by hard transitions.
| form | structure | genre |
|---|---|---|
| ABABCB | verse–chorus–verse–chorus–bridge–chorus | pop, EDM radio edits |
| DJ-oriented | intro–main–breakdown–build–drop–outro | house, techno, trance |
| loop + switchup | A section loops, then abruptly shifts to B | phonk, trap, Memphis rap |
| continuous mix | layers add/remove gradually, no hard sections | ambient, minimal techno |
| drop-focused | intro–build–drop–break–build–drop–outro | dubstep, future bass, riddim |
Most club music follows this form: 16–32 bars of intro (sparse, mixable). Main groove establishes the full beat. Breakdown strips it back to pads or atmosphere. Build adds tension (filter sweeps, snare rolls, risers). Drop brings everything back at once. Outro mirrors the intro for the next DJ to mix in. The tools from this lesson—cat(), <> gain automation, filter sweeps—map directly to this structure.
Three composers. Three approaches to the same structural question: how do you make the loud part hit?
FF7: One Winged Angel (Nobuo Uematsu, 1997). The build is everything. Strings layer. Choir enters. Percussion intensifies. Filter opens. Then the full orchestra + choir + rhythm section hits simultaneously. The first fully orchestral piece in a Final Fantasy game:
Three sections via cat(). Strings alone. Strings + drums. Everything. The filter opens from 600 to 3000. The gain rises. The note density increases. That’s the build.
Hollow Knight: Sealed Vessel (Christopher Larkin, 2017). The opposite. Restraint, restraint, restraint. Quiet piano. Then the full orchestra crashes in and it’s devastating specifically because nothing prepared you for it:
8 cycles of quiet piano. Then everything. The silence before the drop IS the arrangement.
Uematsu builds gradually: layers add, filter opens, density increases. Larkin holds back: almost nothing, then everything at once. Both work because the drop is defined by what came before it. No build, no drop. No silence, no impact.
In L5 you learned that jo-ha-kyū is slow introduction → breaking apart → rapid conclusion. Now you can build it:
Jo: koto alone, sparse, with reverb. 4-8 cycles.
Ha: shakuhachi enters. Pad builds. Transforms activate. Density increases. 4-8 cycles.
Kyū: everything at once. Full layers. The piece peaks. 2-4 cycles.
After: everything drops out. Koto alone again. Reverb tail. Silence.
That’s cat() with four sections. The same structure Zeami codified 600 years ago, implemented in code.
Nobuo Uematsu wanted to write film scores. He ended up at Square. One Winged Angel was him finally getting an orchestra: the first fully orchestral piece in a Final Fantasy game. He recorded it with real players in a real studio. The constraint of game hardware was gone. He filled every second. That’s kyū as a career.
Your brain predicts. When a pattern is established and then disappears, the auditory cortex keeps expecting the next event. The silence isn’t empty. It’s full of anticipation. The longer the silence, the more tension accumulates. The drop resolves that tension all at once.
This is why Larkin’s approach works: 8 cycles of quiet piano trains your brain to expect quiet. When the full orchestra hits, the prediction error is enormous. Your brain goes “THAT WAS NOT WHAT I EXPECTED” and floods you with dopamine. The emotion isn’t in the loud part. It’s in the gap between expectation and reality.
The piece you’ve been building since L0, now with structure. Jo-ha-kyū:
Four sections. Koto alone. Layers enter. Everything peaks. Koto alone again, fading into reverb. The piece you started in L0 is finished.
Change the section lengths. Make jo longer (copy-paste the first section in cat()). Make kyū shorter. Add a beat to the peak section. Remove the final section entirely and let it end at full intensity. The arrangement is yours now.
A phonk track with shape. Not a loop—a piece. Intro fades in with pad and muffled hats. The build opens the filter, rolls the snare, brings in the clap. Then the drop: kick, bass, cowbell, full hats, pad. Eight cycles of structure from simple gain patterns.
"<0 0 0 0 0.9 0.9 0 0.9>". One cycle of silence before the kick returns. Feel the gap.<> pattern: 4 bars intro, 4 bars build, 4 bars drop, 4 bars second build into a harder drop. Use higher filter values and denser snare rolls for the second build..every(4, fast(2)) on the kick line and .juxBy(0.5, rev) on the hats. The drop breathes while it hits.| tool | does | looks like |
|---|---|---|
| cat() | play patterns sequentially, one per cycle | cat(pattern1, pattern2) |
| /N | spread pattern across N cycles | [c3 eb3 g3]/2 |
| @N | hold for N time units in a cycle | note("c3@3 eb3") |
| <> gain automation | per-cycle gain values for mute/unmute | .gain("<0 0 0.9 0.9>") |
| filter sweep build | rising lpf over time for tension | .lpf(sine.range(200, 8000).slow(8)) |
| snare roll build | increasing density for tension | s("sd*<1 2 4 8>") |
cat() for section switching. <> on .gain() for per-cycle mute/unmute. <> on .lpf() for filter automation. / to stretch patterns across cycles. @ to weight duration within cycles. Silence defines the drop. The build earns it.
Next: Chopping. Sample slicing, pitch shifting, and the most sampled 6 seconds in music.
Tracks that demonstrate this lesson’s concepts.
| artist | track | why |
|---|---|---|
| Nobuo Uematsu | FF7: One Winged Angel (1997) | (VGM) inspired by the layered orchestral build, filter opens, choir hits |
| Christopher Larkin | Hollow Knight: Sealed Vessel (2017) | (VGM) inspired by the restraint-to-devastation arc, silence as arrangement |
| Keiichi Okabe | NieR: Automata: Weight of the World (2017) | (game) the same melody in different languages as the story shifts |
| The Prodigy | Firestarter (1996) | (rave) filter sweep build into vocal explosion |
| Chase & Status | Blind Faith (2011) | (DnB) textbook DnB buildup and drop |
| DVRST | Close Eyes (2021) | (drift phonk) drift phonk build-drop gone mass |
| Skrillex | Scary Monsters and Nice Sprites (2010) | (rave) silence before the drop as a weapon, the EDM-era template |
Arrangement in electronic music evolved from DJ mixing technique—the need to blend two records seamlessly created structural conventions that producers then built into tracks.
In the 1970s, disco DJs (Larry Levan at Paradise Garage, Frankie Knuckles at the Warehouse) developed extended mixing—blending records over 8, 16, or 32 bars. Producers responded by structuring intros and outros in 16- or 32-bar segments for easy mixing. The “32-bar rule” became standard: sections in multiples of 8 or 16 bars, transitions at predictable points. This isn’t a creative choice—it’s an interface standard between DJ and record.
The “drop”—the moment when the bass and kick return after a breakdown—emerged from rave culture’s need for collective physical release. DJs like Carl Cox and Sasha would strip tracks down to atmospheric pads, build tension with filters and effects, then reintroduce the beat. The crowd’s physical response (hands up during build, explosion of movement at the drop) created a feedback loop. Producers started engineering tracks specifically for this moment.
The “EDM” era (Skrillex, Deadmau5, Avicii) formalized the build-drop into a rigid structure: intro → verse → build → drop → breakdown → build → drop → outro. The build became its own art form—rising filter sweeps, snare rolls, vocal chops. Skrillex’s “Scary Monsters and Nice Sprites” (2010) used silence before the drop to maximize impact, a technique that went from underground to Super Bowl halftime.
Sources: Brewster & Broughton, Last Night a DJ Saved My Life (1999); Reynolds, Energy Flash (1998); Rietveld, DJ Culture in the Mix (2013).