SPEC.mdpreviewSPEC.mdsource314 lines · 21.8 KB · raw
1---
2title: TASK FAILED SUCCESSFULLY
3theme: jev
4status: made
5song: song.js
6measured: {"date":"2026-09-26","song":"4a94bbb1a6a8","total":{"loudnessDbfs":-18.9,"peakDbfs":-1.7},"parts":{"bass":{"loudnessDbfs":-27.4,"peakDbfs":-11.1},"drums":{"loudnessDbfs":-23.3,"peakDbfs":-4.1},"other":{"loudnessDbfs":-32.6,"peakDbfs":-1.9},"stabs":{"loudnessDbfs":-32.9,"peakDbfs":-13.8},"vocals":{"loudnessDbfs":-26.8,"peakDbfs":-4.6},"xp":{"loudnessDbfs":-24.4,"peakDbfs":-11}},"sections":{"1-4":{"total":{"loudnessDbfs":-21.9,"peakDbfs":-12.3},"parts":{"xp":{"loudnessDbfs":-21.9,"peakDbfs":-12.3}}},"5-8":{"total":{"loudnessDbfs":-22.2,"peakDbfs":-11},"parts":{"drums":{"loudnessDbfs":-40.9,"peakDbfs":-21.1},"xp":{"loudnessDbfs":-22.1,"peakDbfs":-12.3}}},"9-12":{"total":{"loudnessDbfs":-20,"peakDbfs":-3},"parts":{"bass":{"loudnessDbfs":-31.8,"peakDbfs":-20.1},"drums":{"loudnessDbfs":-22.5,"peakDbfs":-7.5},"vocals":{"loudnessDbfs":-24.7,"peakDbfs":-4.6},"xp":{"loudnessDbfs":-32.8,"peakDbfs":-12.3}}},"13-16":{"total":{"loudnessDbfs":-19.2,"peakDbfs":-2.3},"parts":{"bass":{"loudnessDbfs":-33.1,"peakDbfs":-20.1},"drums":{"loudnessDbfs":-23.1,"peakDbfs":-7.5},"vocals":{"loudnessDbfs":-21.8,"peakDbfs":-4.7}}},"17-20":{"total":{"loudnessDbfs":-18.9,"peakDbfs":-3.2},"parts":{"bass":{"loudnessDbfs":-31.8,"peakDbfs":-20.1},"drums":{"loudnessDbfs":-22.4,"peakDbfs":-7.5},"stabs":{"loudnessDbfs":-29.4,"peakDbfs":-13.8},"vocals":{"loudnessDbfs":-22.7,"peakDbfs":-5.3},"xp":{"loudnessDbfs":-37.5,"peakDbfs":-11.5}}},"21-24":{"total":{"loudnessDbfs":-18,"peakDbfs":-1.7},"parts":{"bass":{"loudnessDbfs":-24.4,"peakDbfs":-11.1},"drums":{"loudnessDbfs":-22.2,"peakDbfs":-4.1},"stabs":{"loudnessDbfs":-31,"peakDbfs":-14.3},"vocals":{"loudnessDbfs":-88.1,"peakDbfs":-62.9},"xp":{"loudnessDbfs":-22,"peakDbfs":-11.5}}},"25-28":{"total":{"loudnessDbfs":-18,"peakDbfs":-4.3},"parts":{"bass":{"loudnessDbfs":-24.5,"peakDbfs":-11.4},"drums":{"loudnessDbfs":-22.4,"peakDbfs":-7.3},"stabs":{"loudnessDbfs":-30.9,"peakDbfs":-14.5},"xp":{"loudnessDbfs":-21.8,"peakDbfs":-12.3}}},"29-32":{"total":{"loudnessDbfs":-19.1,"peakDbfs":-5},"parts":{"bass":{"loudnessDbfs":-25.1,"peakDbfs":-11.6},"drums":{"loudnessDbfs":-23.4,"peakDbfs":-7.1},"stabs":{"loudnessDbfs":-31.9,"peakDbfs":-14.3},"vocals":{"loudnessDbfs":null,"peakDbfs":null},"xp":{"loudnessDbfs":-22.7,"peakDbfs":-12.3}}},"33-36":{"total":{"loudnessDbfs":-18.6,"peakDbfs":-2},"parts":{"bass":{"loudnessDbfs":-31,"peakDbfs":-15.3},"drums":{"loudnessDbfs":-22.5,"peakDbfs":-7.5},"vocals":{"loudnessDbfs":-21.5,"peakDbfs":-4.6},"xp":{"loudnessDbfs":-32.9,"peakDbfs":-12.3}}},"37-40":{"total":{"loudnessDbfs":-19.4,"peakDbfs":-3},"parts":{"bass":{"loudnessDbfs":-31.5,"peakDbfs":-20.1},"drums":{"loudnessDbfs":-22.4,"peakDbfs":-7.5},"stabs":{"loudnessDbfs":null,"peakDbfs":null},"vocals":{"loudnessDbfs":-23,"peakDbfs":-5.4}}},"41-44":{"total":{"loudnessDbfs":-18.8,"peakDbfs":-3.2},"parts":{"bass":{"loudnessDbfs":-31.7,"peakDbfs":-20.1},"drums":{"loudnessDbfs":-22.4,"peakDbfs":-7.5},"stabs":{"loudnessDbfs":-29.4,"peakDbfs":-13.8},"vocals":{"loudnessDbfs":-22.2,"peakDbfs":-5.3},"xp":{"loudnessDbfs":-38.8,"peakDbfs":-11.5}}},"45-48":{"total":{"loudnessDbfs":-17.7,"peakDbfs":-2.3},"parts":{"bass":{"loudnessDbfs":-23.8,"peakDbfs":-11.8},"drums":{"loudnessDbfs":-22.1,"peakDbfs":-4.1},"stabs":{"loudnessDbfs":-30.8,"peakDbfs":-14.3},"vocals":{"loudnessDbfs":-76.7,"peakDbfs":-52.7},"xp":{"loudnessDbfs":-21.9,"peakDbfs":-11.5}}},"49-52":{"total":{"loudnessDbfs":-17.7,"peakDbfs":-4.9},"parts":{"bass":{"loudnessDbfs":-24.2,"peakDbfs":-11.3},"drums":{"loudnessDbfs":-22.1,"peakDbfs":-7.1},"stabs":{"loudnessDbfs":-31.3,"peakDbfs":-14.5},"xp":{"loudnessDbfs":-21.5,"peakDbfs":-11}}},"53-56":{"total":{"loudnessDbfs":-17.7,"peakDbfs":-3},"parts":{"bass":{"loudnessDbfs":-24.9,"peakDbfs":-11.5},"drums":{"loudnessDbfs":-22,"peakDbfs":-7.3},"stabs":{"loudnessDbfs":-31,"peakDbfs":-14.3},"xp":{"loudnessDbfs":-21.5,"peakDbfs":-11}}},"57-60":{"total":{"loudnessDbfs":-17.5,"peakDbfs":-3.7},"parts":{"bass":{"loudnessDbfs":-24.8,"peakDbfs":-12},"drums":{"loudnessDbfs":-21.9,"peakDbfs":-7.1},"stabs":{"loudnessDbfs":-27.7,"peakDbfs":-14.5},"xp":{"loudnessDbfs":-21.5,"peakDbfs":-11}}},"61-64":{"total":{"loudnessDbfs":-20.2,"peakDbfs":-1.9},"parts":{"bass":{"loudnessDbfs":-40.2,"peakDbfs":-16.4},"drums":{"loudnessDbfs":-46.9,"peakDbfs":-24},"other":{"loudnessDbfs":-20.5,"peakDbfs":-1.9},"stabs":{"loudnessDbfs":-45.8,"peakDbfs":-16.7},"xp":{"loudnessDbfs":-33.1,"peakDbfs":-11}}}}}
7critic:
8  date: 2026-09-26
9  model: jev-1.13.0
10  method: rubric-1
11  art: 0.67
12  artRuns: [0.67, 0.67, 0.66]
13  criteria:
14    hook: 3.1
15    development: 3.8
16    structure: 3.3
17    concept: 4
18    originality: 3.6
19    craft: 2.2
20ideas:
21  - date: 2026-09-24
22    model: claude-opus-5-5
23    harness: claude-code
24    prompt: "Give me some song ideas as prompts, in the same Jev theme: perhaps with actual memes in the vocals, or a vocoder sound."
25    brief: "Upbeat breakcore about Jev's bad days. Memes: \"Task failed successfully\", the Windows XP error sound as percussion, \"Oh no no no no\" and \"Emotional damage\". End with the \"Directed by Robert B. Weide\" theme as the outro. Vocoder chorus: \"Jev is type safe, Jev is fine\"."
26revisions:
27  - rev: 1
28    date: 2026-09-24
29    model: claude-opus-5-5
30    harness: claude-code
31    prompt: "Upbeat breakcore about Jev's bad days. Memes: \"Task failed successfully\", the Windows XP error sound as percussion, \"Oh no no no no\" and \"Emotional damage\". End with the \"Directed by Robert B. Weide\" theme as the outro. Vocoder chorus: \"Jev is type safe, Jev is fine\"."
32    output: null  # overwritten by rev 2
33    art: 0.61
34    artRuns: [0.61, 0.61, 0.61]
35  - rev: 2
36    date: 2026-09-24
37    model: claude-opus-5-5
38    harness: claude-code
39    prompt: "Let Jev arrange the song as it plays. Split it into named parts and cut it into 4-bar sections, each listing the sections allowed to follow it; at every section Jev picks the next section, the move to play it with (as written, no breaks, a breakdown of amen and bass, or the XP riff over the amen), and how intense it is, and ends the song by choosing the Weide theme, with a cap of 28 sections. Tell Jev the tempo, key, chords, lyrics and everything played so far, and how the listener reacted. Without Jev it plays as written."
40    output: null  # overwritten by rev 3
41    art: 0.65
42    artRuns: [0.65, 0.65, 0.65]
43  - rev: 3
44    date: 2026-09-24
45    model: claude-opus-5-5
46    harness: claude-code
47    prompt: "Instead of one move per section, let Jev set each part (the XP error riff, the amen and kick, the chord stabs, the bass, the vocals) out, back or full for the section, each on its own orbit, and pick how the song moves into the section over the last bar before it: a cut, an amen snare roll, the XP error sound stuttering up as a riser, or a one-beat dropout. The Weide theme holds three bars and fades over the fourth, so it ends with its section, and its last beat always plays. Without Jev every part plays full and each section comes in on a cut."
48    output: null  # overwritten by rev 4
49    art: null  # not scored: the song.js before rev 4 was recorded is rev 2's, not rev 3's
50  - rev: 4
51    date: 2026-09-25
52    model: claude-opus-5-5
53    harness: claude-code
54    prompt: "Fix the mix and make every line true and heard. Stop the clipping: peaks at or under -1 dBFS, the drums 3-4 dB over the vocals and bass, the stabs within about 10 dB of the drums, and every amen slice cut to its step so the rolls stop stacking. Every verse line, the chorus and the three memes always play, outside Jev's parts, and both verses always play. Cut \"Oh no no no\" to its words with no laugh, take \"Emotional damage\" from an unclipped source, and re-render the lines until two whisper models read them word for word, \"Jev\" and the past tenses included. Replace the lines that describe the projects wrongly: the options were reversed, not shuffled, and flipped thirty-two of two hundred answers; ranking that did not help is a bad day, not a wrong pick. Land the XP stutters and transitions in the gaps between words, and spell the chorus stutter on its G chord. Make both drops build, section by section, with 32nd, 64th and 128th rolls, the XP riff an octave up, the reese opening and extra stabs at the peak. Play the Weide theme at the voices' level, outside the energy. Use a real crash, raise the F root an octave, keep the intro as written, make the dropout a real silence, and ask Jev only about the parts a section has. The song is 64 bars."
55    output: null  # overwritten by rev 5
56    art: 0.68
57    artRuns: [0.68, 0.68, 0.67]
58  - rev: 5
59    date: 2026-09-26
60    model: claude-opus-5-5
61    harness: claude-code
62    prompt: "Keep Jev from looping drop 2: it may go round once more at most (drop2 plays at most twice), so no run of drop sections passes 32 bars. Every detour still plays."
63    output: song.js
64    art: 0.67
65    artRuns: [0.67, 0.67, 0.66]
66---
67
68# TASK FAILED SUCCESSFULLY — spec
69
70`song.js` is generated from this spec. Change the spec first, then the song.
71
72## Intent
73
74Jev's bad days, told as they happened. Jev picks among answers the caller
75writes down, so it never makes one up: "You define the possible answers
76through primitives", and calibration "does not guarantee that an individual
77answer is correct" (https://docs.typesafe.ai/concepts/system-one, retrieved
782026-09-25). The verses are three projects built on it that had a bad day
79(each README retrieved 2026-09-25):
80
81- **jev-axi** (https://github.com/shiftynick/jev-axi): on a 390k-line repo,
82  its file ranking "moved cost and file reads by less than run-to-run noise".
83  A feature that did not help, not Jev picking a wrong option.
84- **jev-orderby-bench** (https://github.com/yodablocks/jev-orderby-bench):
85  ORDER BY over a Jev probability passes on 20 Newsgroups, but on Amazon's
86  product-relevance queries "four of six gate conditions fail".
87- **jev-mcp** (https://github.com/blakestone-x/jev-mcp): reversing the order
88  of a question's options flipped 32 of 200 choices.
89
90## Style
91
92- Upbeat breakcore, 180 bpm, C major (the cheerfulness is the joke):
93  C – G – Am – F, two bars per chord, so each vocoded line sits on one chord.
94  The bass roots are C2, G1, A1 and F2: F1 (43.7 Hz) is below what a laptop
95  plays.
96- Amen edits that are written out and repeatable — fast, but never random.
97  Every slice is cut to its own step, so a roll is a roll, not copies of a
98  slice stacked on each other.
99- The Windows XP error sound pitched and sequenced as a percussion part,
100  following the chords. Its stutter at the end of each chorus spells the
101  bar's chord (G: G B D G).
102- The crash is Dirt-Samples `hh27:1` (a real crash; `cr` is a ride).
103- **Mix.** Peaks at or under −1 dBFS, measured (superdough has no limiter,
104  so a master level sets it). The drums sit about 3–4 dB over the vocals and
105  the bass; the chord stabs sit within about 10 dB of the drums. The Weide
106  theme plays at the voices' level: the clip is 3.5 dB quieter than the
107  lines, so its gain is 3.5 dB higher.
108
109## Structure
110
11164 bars (~1:25) — 60 bars of song, then 4 bars for the outro theme.
112
113| Bars | Section | Contents |
114|---|---|---|
115| 1–8 | Intro | XP error sound as a riff; amen enters on bar 5 |
116| 9–16 | Verse 1 | Vocoder lines 1–4 over a straight amen |
117| 17–20 | Chorus | "Jev is type safe, Jev is fine" (17); "Task failed successfully" (19); XP error stutter (20) |
118| 21–32 | Drop 1 | Instrumental breakcore: written-out amen edits, reese, chord stabs, the XP riff; crash on 21 |
119| 33–40 | Verse 2 | Vocoder lines 5–8; "Oh no no no" answers "Four of six failed" (36) |
120| 41–44 | Chorus | "Jev is type safe, Jev is fine" (41); "Emotional damage" (43); XP error stutter (44) |
121| 45–60 | Drop 2 | Instrumental, building to the peak: 32nd, 64th and 128th rolls |
122| 61–64 | Weide | Everything cuts; the "Directed by Robert B. Weide" theme holds three bars and fades over the fourth |
123
124Fit:
125- Verse 2 starts on bar 33, so each vocoded line lands on the first bar of
126  its chord (the harmony cycles every 8 bars); drop 1 is 12 bars and drop 2
127  is 16.
128- The Weide theme is 10.2 s and its section 4 bars (5.3 s): it holds three
129  bars and fades out over the fourth, so the song ends with its section.
130- In chorus 2, "Emotional damage" takes the place of "Task failed
131  successfully": there is room for one meme before the stutter bar.
132- "Oh no no no" is the clip's words alone, cut at whisper word timings with
133  the laugh before them left out (1.31 s): it fills bar 36 and ends before
134  the next line.
135- The XP stutters and the transitions land in the gaps, never on a word.
136  "Successfully" ends 0.23 s into bar 20 and "Emotional damage" 0.47 s into
137  bar 44 (the clips' measured lengths), so each chorus stutter starts halfway
138  through the bar's second beat (0.5 s in). A transition plays from the
139  second beat of a section's last bar, after any line's tail: "noise" ends
140  0.21 s into bar 16, "two hundred" 0.1 s into bar 40.
141
142## Vocals
143
144- Vocoder, one line per 2 bars:
145  1. "No hallucinations" — C
146  2. "Just the wrong option" — G
147  3. "Ranked the files" — Am
148  4. "Indistinguishable from noise" — F
149  5. "Order by probability" — C
150  6. "Four of six failed" — G
151  7. "Reversed the options" — Am
152  8. "Thirty-two of two hundred" — F
153- Vocoder chorus: "Jev is type safe, Jev is fine." — C (sped up to fit two
154  bars without a pitch change).
155- Memes: "Task failed successfully" (voiced with `speak`, unvocoded: no
156  audio clip exists on myinstants — it is an image meme); the Windows XP
157  error sound; "Oh no no no"; "Emotional damage" (Steven He, from his own
158  video, where it is not clipped); the "Directed by Robert B. Weide" theme.
159- Every line and meme reads back word for word in whisper `small.en` and
160  `medium.en` (`nix run .#transcribe`), "Jev" and the past tenses included
161  (numbers may come back as digits). "Oh no no no" reads as the words it
162  sings, "No, no, no, no": its "oh" is lost in the laugh that is cut away.
163  How each was rendered to pass is recorded in its `samples/README.md` row.
164- Every line, the chorus and the memes always play, at full level, outside
165  Jev's parts, like the ending: they are the story.
166
167## Jev in the booth
168
169Jev arranges the song as it plays, as two jevs declared at the top in
170TypeSafe's own shape (`jev({ state, questions })`, `website/src/jev/`), both
171given the song as state (subject, tempo, key, chords, lyrics):
172
173- **`formJev`** asks one choice: which **section** plays next, among the
174  song's sixteen 4-bar sections.
175- **`djJev`** asks, once that is decided, a level for each part the section
176  has (the XP error riff, the amen and kick, the chord stabs, the bass: out,
177  back or full), a choice of how the song moves **into** the section, and a
178  score for the section's **energy**.
179  Questions in one request cannot see each other's answers, so it is a
180  second request, told the section just chosen (`after: { section }`).
181
182Both are asked every 4 bars (`.every(4, …)`), and the answers are
183composed in ordinary Strudel at the bottom: `walk` holds the form's rules,
184each part plays at its level, the transition plays over the last bar before
185the section, and `energy.score` scales the velocity.
186The sections are 4 bars: the choruses are 4 bars, so 8 would not divide
187them.
188
189**The form.** A section may be followed only by these:
190
191| Section | Bars as written | May be followed by | Plays at most |
192|---|---|---|---|
193| `intro` | 1–4 | amenIn |  |
194| `amenIn` | 5–8 | verse1 |  |
195| `verse1` | 9–12 | verse1b |  |
196| `verse1b` | 13–16 | chorus1 |  |
197| `chorus1` | 17–20 | drop1 |  |
198| `drop1` | 21–24 | drop1b |  |
199| `drop1b` | 25–28 | drop1c, verse2 |  |
200| `drop1c` | 29–32 | verse2 |  |
201| `verse2` | 33–36 | verse2b |  |
202| `verse2b` | 37–40 | chorus2 |  |
203| `chorus2` | 41–44 | drop2 |  |
204| `drop2` | 45–48 | drop2b | twice |
205| `drop2b` | 49–52 | drop2c |  |
206| `drop2c` | 53–56 | drop2d, drop2 |  |
207| `drop2d` | 57–60 | weide, drop2, chorus1, verse2 |  |
208| `weide` | 61–64 | (the end) |  |
209
210**Loops end.** Uncapped, the ways back let Jev repeat drop 2 until the cap: up to 68 bars of it in a row. So drop2, where both of drop 2's loops return, plays at most twice (`times` in `walk`, which counts every play: a loop is a cycle of different sections, and none of them repeats back to back), and each loop goes round once more at most. The longest run of drop 2 any path can now take is 32 bars. Every detour can still play, the written order is never capped, and a section that has played its most is not offered, nor is one that could only reach the ending through one.
211
212These rules are code (`walk`), not Jev: each request offers Jev only the
213sections allowed next. The written order is always allowed, and it is what
214plays when Jev can't be reached. Every path plays both verses: verse 1
215opens the song, and drop 1 always leads to verse 2. The song ends when Jev
216picks `weide`. At 28 sections (about 2½ minutes) the ending is forced. A
217section plays its own bars, so a repeated chorus is that chorus, with its
218own meme.
219
220**What each drop section adds.** The drops build: no two of their sections
221play the same bars.
222
223- `drop1`: amen edits with 32nd and 64th rolls in its second and fourth
224  bars, the reese sweeping, the saw stabs, the XP riff, a crash on the
225  downbeat.
226- `drop1b`: 32nd rolls in every bar and 64ths closing three of them.
227- `drop1c`: 64th rolls in every bar, the busiest edits of the first drop.
228- `drop2`: 32nd and 64th rolls in every bar, a crash on the downbeat.
229- `drop2b`: 64th and 128th rolls, and the XP riff doubled an octave up.
230- `drop2c`: 128th rolls in every bar, and the reese's filter opened wide.
231- `drop2d`, the peak: the densest edits, a last bar of 64th and 128th
232  rolls, and a second, busier layer of square stabs on top.
233
234**The parts.** Each part's level is a choice: out (silent for the
235section), back (half velocity, under the rest) or full (as written). Jev is
236asked only about the parts a section has, and never to drop the part that
237defines it:
238
239| Section | Parts it has | Defines it (back or full only) |
240|---|---|---|
241| `intro` | none: the XP riff plays as written | — |
242| `amenIn` | xp, drums | drums |
243| `verse1`, `verse1b`, `verse2`, `verse2b` | drums, bass | drums |
244| `chorus1`, `chorus2` | drums, stabs, bass, xp (the stutter) | stabs |
245| every drop section | xp, drums, stabs, bass | drums |
246| `weide` | none: the Weide theme plays | — |
247
248A part a section does not have is not asked about. Each part plays on its
249own orbit, named for its question (`xp`, `drums`, `stabs`, `bass`), and the
250lines on `vocals`, so the browser's meter hears each one alone. When Jev
251can't be reached, every part plays in full. What each part is:
252
253- **xp**: the XP error sound as a riff on the chords in `amenIn` and every
254  drop (an octave-up double from `drop2b`), and its stutter at the end of
255  each chorus.
256- **drums**: from bar 5: a thin, high-passed amen in `amenIn`, a straight
257  amen and the kick in the verses and choruses, the written-out edits, the
258  kick and the crash in the drops.
259- **stabs**: the chord stabs, square in the choruses, saw in the drops.
260- **bass**: a plain sub on the chord roots in the verses and choruses, the
261  reese and sub in the drops.
262
263**Into the next section.** Over the last bar of each section, from its
264second beat, the song plays how Jev chose to move into the next one: a
265straight cut, a fill (an amen snare roll doubling up into the first beat),
266a riser (the XP error sound stuttering up an octave, on the xp part's orbit
267and at its level, in a cut group of its own), or a dropout (every part's
268notes stop from the second half of the third beat, the kick is held to one
269beat, so the last beat is silent). Only what suits the change is offered:
270out of a chorus the stutter already rises into the drop, and out of
271`verse2` "Oh no no no" fills the last bar, so those come in on a cut and
272Jev is not asked. The move is sampled from Jev's probabilities (temperature
2731), so a close call does not always come out the same. The Weide section
274has no next section, so nothing plays over its last bar. When Jev can't be
275reached, it is a cut.
276
277**A little chance.** The section is sampled from Jev's
278probabilities at temperature 0.7 (`sample`), so two plays of the song can
279take different paths; the strip shows Jev's top pick beside the one
280sampled. A close call between
281sections is where sampling matters most, so there is no confidence
282threshold: an unsure Jev still picks, and the written order plays only
283when Jev can't be reached.
284
285**Energy** is a four-step ladder, from held back to all out. It scales
286the parts and the transitions together (0.55 to 1), so the mix keeps its
287balance, but never the lines, the intro riff or the Weide theme. No filter
288is added: the amen, stabs and reese already set theirs.
289
290- Bars 1–4 always play as written: the intro riff is not a part.
291- Each request tells Jev the song's state (subject, tempo, key, chords,
292  lyrics), every answer so far, where the song is in its form (the sections
293  allowed next, and those left before the cap), how loud each finished
294  section measured in the browser, and the 🔥/😴 reactions from the
295  listener's tab.
296- This relaxes the constraints below that the song plays once in a fixed
297  order and never varies by chance: the arrangement varies with Jev's
298  choices, which are judgments, with a little sampled chance in the form.
299
300## Constraints
301
302- Plays once from bar 1 and ends; never loops. Sections are absolute-cycle
303  masks, so playback starts from stopped.
304- Structured: patterns vary by section, never by chance. (Random chopping
305  read as noise on the first song.)
306- No sustained background pad; harmony comes from rhythmic parts.
307- Vocals only where the structure table puts them; drops are instrumental.
308- Meme clips are the real audio (myinstants, or YouTube via yt-dlp), cut at
309  word timings measured with whisper.cpp. Vocoder lines are made with
310  `speak` + `vocode` on the chord they land on, and checked by transcribing
311  the result with whisper.cpp. Everything lands in `samples/<sound>/` with
312  a provenance row in `samples/README.md`.
313- Samples load from `samples('jev-samples/strudel.json')`; drums from
314  `github:tidalcycles/dirt-samples`.