1--- 2title: TOO CHEAP TO METER 3theme: jev 4status: made 5song: song.js 6measured: {"date":"2026-09-25","song":"9622a5d6ded9","total":{"loudnessDbfs":-20.4,"peakDbfs":-1},"parts":{"bass":{"loudnessDbfs":-28.1,"peakDbfs":-17.5},"drums":{"loudnessDbfs":-33.2,"peakDbfs":-7.9},"kick":{"loudnessDbfs":-23.4,"peakDbfs":-8.9},"stabs":{"loudnessDbfs":-30.8,"peakDbfs":-10.5},"vocals":{"loudnessDbfs":-27.2,"peakDbfs":-5}},"sections":{"1-8":{"total":{"loudnessDbfs":-22.3,"peakDbfs":-8},"parts":{"kick":{"loudnessDbfs":-23,"peakDbfs":-8.9},"stabs":{"loudnessDbfs":-30.5,"peakDbfs":-10.6}}},"9-16":{"total":{"loudnessDbfs":-19,"peakDbfs":-1.3},"parts":{"bass":{"loudnessDbfs":-26.7,"peakDbfs":-17.5},"drums":{"loudnessDbfs":-31.9,"peakDbfs":-8},"kick":{"loudnessDbfs":-23,"peakDbfs":-8.9},"stabs":{"loudnessDbfs":-30.8,"peakDbfs":-11.2},"vocals":{"loudnessDbfs":-23.6,"peakDbfs":-5}}},"17-24":{"total":{"loudnessDbfs":-19.1,"peakDbfs":-1.7},"parts":{"bass":{"loudnessDbfs":-26.7,"peakDbfs":-17.5},"drums":{"loudnessDbfs":-31.9,"peakDbfs":-7.9},"kick":{"loudnessDbfs":-23,"peakDbfs":-8.9},"stabs":{"loudnessDbfs":-30.5,"peakDbfs":-10.5},"vocals":{"loudnessDbfs":-23.9,"peakDbfs":-5.8}}},"25-32":{"total":{"loudnessDbfs":-20.8,"peakDbfs":-2},"parts":{"bass":{"loudnessDbfs":-26.7,"peakDbfs":-17.5},"drums":{"loudnessDbfs":-31.7,"peakDbfs":-8.1},"kick":{"loudnessDbfs":-23,"peakDbfs":-8.9},"stabs":{"loudnessDbfs":-30.9,"peakDbfs":-12.4},"vocals":{"loudnessDbfs":-82,"peakDbfs":-51.1}}},"33-40":{"total":{"loudnessDbfs":-20.8,"peakDbfs":-1.9},"parts":{"bass":{"loudnessDbfs":-26.7,"peakDbfs":-17.5},"drums":{"loudnessDbfs":-31.8,"peakDbfs":-8.1},"kick":{"loudnessDbfs":-23,"peakDbfs":-8.9},"stabs":{"loudnessDbfs":-30.8,"peakDbfs":-11.9},"vocals":{"loudnessDbfs":-194.6,"peakDbfs":-153.7}}},"41-48":{"total":{"loudnessDbfs":-19.5,"peakDbfs":-1},"parts":{"bass":{"loudnessDbfs":-26.7,"peakDbfs":-17.5},"drums":{"loudnessDbfs":-31.9,"peakDbfs":-8},"kick":{"loudnessDbfs":-23,"peakDbfs":-8.9},"stabs":{"loudnessDbfs":-30.8,"peakDbfs":-10.8},"vocals":{"loudnessDbfs":-25.2,"peakDbfs":-5}}},"49-56":{"total":{"loudnessDbfs":-19,"peakDbfs":-1.6},"parts":{"bass":{"loudnessDbfs":-26.7,"peakDbfs":-17.5},"drums":{"loudnessDbfs":-31.9,"peakDbfs":-8},"kick":{"loudnessDbfs":-23,"peakDbfs":-8.9},"stabs":{"loudnessDbfs":-30.6,"peakDbfs":-11.3},"vocals":{"loudnessDbfs":-23.9,"peakDbfs":-5.8}}},"57-64":{"total":{"loudnessDbfs":-24.6,"peakDbfs":-8.3},"parts":{"bass":{"loudnessDbfs":-51.3,"peakDbfs":-24},"drums":{"loudnessDbfs":-75.8,"peakDbfs":-44.3},"kick":{"loudnessDbfs":-25.9,"peakDbfs":-8.9},"stabs":{"loudnessDbfs":-30.3,"peakDbfs":-10.7},"vocals":{"loudnessDbfs":-84.2,"peakDbfs":-53.5}}}}} 7critic: 8 date: 2026-09-25 9 model: jev-1.13.0 10 method: rubric-1 11 art: 0.59 12 artRuns: [0.59, 0.6, 0.59] 13 criteria: 14 hook: 2.9 15 development: 3.1 16 structure: 3 17 concept: 3.6 18 originality: 3.1 19 craft: 2.1 20ideas: 21 - date: 2026-09-24 22 model: claude-opus-5-5 23 harness: claude-code 24 prompt: "Research Jev's real use cases; jab at people using Jev where deterministic code would do better, such as game bots." 25 brief: "French house at 124 bpm. A vocoder sings the price list: \"input tokens, forty-two per billion… output tokens: FREE\". The chorus answers with \"It's free real estate\". The verses list what Jev is actually good at: \"route the ticket, flag the jailbreak, gate the sudo\". Filtered disco chords, and vocals in the verses and hook only." 26revisions: 27 - rev: 1 28 date: 2026-09-24 29 model: claude-opus-5-5 30 harness: claude-code 31 prompt: "French house at 124 bpm. A vocoder sings the price list: \"input tokens, forty-two per billion… output tokens: FREE\". The chorus answers with \"It's free real estate\". The verses list what Jev is actually good at: \"route the ticket, flag the jailbreak, gate the sudo\". Filtered disco chords, and vocals in the verses and hook only." 32 output: null # overwritten by rev 2 33 art: 0.55 34 artRuns: [0.55, 0.56, 0.55] 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 name each 8-bar section with the sections allowed to follow it; at every section Jev picks the next section, the move to play it with (as written, no drums, drums and bass, or stabs and drums), and how intense it is, and ends the song by choosing the outro, with a cap of 16 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.62 42 artRuns: [0.61, 0.62, 0.62] 43 - rev: 3 44 date: 2026-09-24 45 model: claude-opus-5-5 46 harness: claude-code 47 prompt: "Let Jev set each part (stabs, kick, claps and hats, bass, vocals) to out, back or full per section, and choose how the song moves into each section (cut, clap-roll fill, riser, or a one-beat dropout)." 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: "Stop the mix clipping: peaks under -1 dBFS with a master level, the kick down and the stabs up to within about 8-10 dB of it, so the intro is carried by the sweep. One riser into the drop, written on the last two beats of bar 24 after \"It's free real estate\" ends, and Jev offered only the transitions that suit each section. Every path sings verse 2 before the outro. The ending always plays: the outro's kick through bar 60 and its stabs are not Jev's. Re-render \"Gate the sudo command\" so it reads back as sudo, dry and over the kick. A real crash on 25, not a ride. Ask Jev only about the parts a section has; vocals back or full in the verses and hooks, never out. Describe drop 2 and the energy steps truthfully. The fill replaces the backbeat clap in its bar. Credit the meme to Tim Heidecker." 55 output: song.js 56 art: 0.59 57 artRuns: [0.59, 0.6, 0.59] 58--- 59 60# TOO CHEAP TO METER — spec 61 62`song.js` is generated from this spec. Change the spec first, then the song. 63 64## Intent 65 66A celebration of Jev's pricing and of the jobs it is actually built for. 67Facts it rests on (`~/brains/personal/technology/artificial-intelligence/jev/jev.md`, from TypeSafe's launch post): 68input tokens cost $42 per billion ("$0.042 / MTok"), output tokens are 69"FREE (too cheap to meter)", and a response takes 70–500 ms. TypeSafe's named 70use cases: classification and routing, monitoring LLM agents for jailbreaks, 71model routing, and safety review of commands. 72 73## Style 74 75- Filter house, 124 bpm, A minor: Am7 – D9 – Gmaj7 – Cmaj7, two bars each. 76- Chopped disco chord stabs (supersaw) under a slow low-pass sweep that opens 77 over each 8-bar phrase; four-on-the-floor kick, open hats on the off-beat, 78 claps on 2 and 4; a pumping octave bassline; a crash (`hh27:1`) on the 79 drop's downbeat. 80- The mix peaks at or under -1 dBFS at the loudest Jev can pick (every part 81 full, energy all out), with a master level on the final stack: superdough 82 has no limiter. The stabs sit within about 8-10 dB of the kick, so the 83 intro is carried by the opening sweep, not a kick solo. The open stab layer 84 in the drop keeps some resonance (`lpq(3)`) and sits a touch above the 85 swept layer, so the drop does not dip when the filter opens. 86 87## Structure 88 8964 bars (~2:04). 90 91| Bars | Section | Contents | 92|---|---|---| 93| 1–8 | Intro | Filtered chord stabs and kick; filter opens | 94| 9–16 | Verse 1 | Vocoder: the price list | 95| 17–24 | Hook | "Output tokens: free" → "It's free real estate", call and response, one pair per chord; the last call is "Too cheap to meter"; the white-noise riser on the last two beats of bar 24, after the last "It's free real estate" ends | 96| 25–40 | Drop 1 | Instrumental: filter fully open, bassline, claps; crash (`hh27:1`) on 25 | 97| 41–48 | Verse 2 | Vocoder: what Jev is for | 98| 49–56 | Hook | As before | 99| 57–64 | Outro | Filter closes over four more bars of kick; kick stops after bar 60, the rest after 62; last stab on 63 rings | 100 101## Vocals 102 103- Vocoder, one line per 2 bars, each on its chord: 104 1. "Input tokens, forty-two per billion" — Am7 105 2. "Output tokens: free" — D9 106 3. "Seventy to five hundred milliseconds" — Gmaj7 107 4. "Too cheap to meter" — Cmaj7 108 5. "Route the ticket" — Am7 109 6. "Flag the jailbreak" — D9 110 7. "Gate the sudo command" — Gmaj7 111 8. "Too cheap to meter" — Cmaj7 (reuses line 4) 112- Hook: "Output tokens: free" rendered on each chord it lands on (Am7, D9, 113 Gmaj7), answered each time by the meme; the fourth call is line 4. 114- Meme: "It's free real estate": Tim Heidecker as Jim Boonie, "Free House 115 For You, Jim", Tim and Eric Awesome Show, Great Job! (2009), answering 116 "Output tokens: free" in each hook. 117 118Line 7 was "Gate the sudo". Five renders of that short line, with different 119spellings and dry mixes, all came back from whisper as other words ("Keep 120this here though", "See you later"), so the lyric grew a word: "Gate the 121sudo command". That render still read back as "Gate the PSEUDO command" dry 122and "HATE the pseudo command" over the kick, so it was re-rendered 123(2026-09-25) spelled "Gate, the sue-doo command": the comma gives "Gate" 124room and the spelling keeps "sudo" from turning into "pseudo". A render of 125this line is accepted only when whisper.cpp (`ggml-base.en`) reads back 126"gate the sudo command" both dry and over the four-on-the-floor kick. 127 128Every vocal section starts on a multiple of 8 bars, so each line lands on 129the first bar of its chord (the harmony cycles every 8 bars). 130 131## Jev in the booth 132 133Jev arranges the song as it plays, as two jevs declared at the top in 134TypeSafe's own shape (`jev({ state, questions })`, `website/src/jev/`), both 135given the song as state (subject, tempo, key, chords, lyrics): 136 137- **`formJev`** asks one choice: which **section** plays next, among the 138 song's eight 8-bar sections. 139- **`djJev`** asks, once that is decided, a level per part (the chord stabs, the kick, the claps and hats, the bass, the vocals: 140 out, back or full, where the section has that part), a choice of how the 141 song moves **into** the section, and a score for the section's **energy**. 142 Questions in one request cannot see each other's answers, so it is a 143 second request, told the section just chosen (`after: { section }`). 144 145Both are asked every 8 bars (`.every(8, …)`), and the answers are 146composed in ordinary Strudel at the bottom: `walk` holds the form's rules, 147each part plays at its level, the transition plays over the last bar before 148the section, and `energy.score` scales the velocity. 149The kick is its own part, apart from the claps and hats, so Jev can take 150out the four on the floor alone and bring it back: the filter-house 151drop. 152 153**The form.** A section may be followed only by these: 154 155| Section | Bars as written | May be followed by | 156|---|---|---| 157| `intro` | 1–8 | verse1 | 158| `verse1` | 9–16 | hook1 | 159| `hook1` | 17–24 | drop | 160| `drop` | 25–32 | drop2 | 161| `drop2` | 33–40 | verse2 | 162| `verse2` | 41–48 | hook2 | 163| `hook2` | 49–56 | outro, drop, verse1 | 164| `outro` | 57–64 | (the end) | 165 166Every path sings verse 2 before the outro: the outro follows only hook 2, 167which follows only verse 2, and the drop's second half leads only to 168verse 2. The brief's "route the ticket, flag the jailbreak, gate the sudo" 169is the song's point, so no arrangement may skip it. 170 171These rules are code (`walk`), not Jev: each request offers Jev only the 172sections allowed next. The written order is always allowed, and it is what 173plays when Jev can't be reached. The song ends when Jev picks the outro, 174whose closing filter and last stab always ring out; at 16 sections (about 4 175minutes at 124 bpm) the outro is forced. Sections stay on the 8-bar grid, so 176the stab filter still opens over each phrase wherever a section lands. 177 178**The parts.** Each part's level is a choice of three: out (silent for the 179section), back (half velocity, about 6 dB under the rest of the mix) and 180full (as written). Each question says what the part is and where it plays 181as written, so Jev can drop parts to build tension or make space, pull them 182back to let others speak, and bring them in full for the payoff. A part 183keeps its own masks, so vocals still appear only where the structure table 184puts them. 185 186Jev is asked only about the parts a section has; in the verses and hooks 187the vocals are back or full, never out, since the words are the song. A 188part the section does not have is set to full in code and not asked (the 189history marks it forced, not answered): the vocals outside the verses and 190hooks, the claps, hats and bass in the intro and outro, and every part in 191the outro, which is all ending. When Jev can't be reached, every part plays 192in full. 193 194Each part plays on its own orbit, named for its question (`stabs`, `kick`, 195`drums`, `bass`, `vocals`), so the browser's meter hears each one alone; 196the ending's stabs and kick play on the `stabs` and `kick` orbits, and the 197transitions on their own, `into`, since no part's level controls them. 198 199**The ending always plays**: the closing filter over the outro's stabs, the 200kick through bar 60 and the last stab. The outro's parts are not Jev's, so 201the song always finishes as written. 202 203**Into the next section.** Over the last bar of each section, the song 204plays how Jev chose to move into the next one: a straight cut, a fill 205(a clap roll doubling up into the first beat, replacing the backbeat clap 206in its bar), a riser (a lift into a section that has none of its own: the 207song's white-noise riser sweeping up), or a dropout (every part stops for 208the last beat). The last bar reads the next section's answer, so the 209transition fits where the song is going. The outro has no next section, so 210nothing plays over its last bar and its last beat is never cut. When Jev 211can't be reached, it is a cut. 212 213Which transitions suit which section is code (`allow`), so Jev is offered 214only those, and a cut is always one of them: 215 216| Into | Offered | 217|---|---| 218| a verse | cut, fill | 219| a hook | cut, fill, riser | 220| `drop` | cut, fill, dropout | 221| `drop2` | cut, fill | 222| `outro` | cut, dropout | 223 224The drop's riser is written: hook 1 ends on it, on the last two beats of 225bar 24, after the last "It's free real estate" ends, so a second riser is 226never offered into the drop to stack on it and sweep over the meme. 227 228**A little chance.** The section is sampled from Jev's 229probabilities at temperature 0.7 (`sample`), so two plays of the song can 230take different paths; the strip shows Jev's top pick beside the one 231sampled. A close call between 232sections is where sampling matters most, so there is no confidence 233threshold: an unsure Jev still picks, and the written order plays only 234when Jev can't be reached. 235 236**Energy** is a four-step ladder. It scales every part's velocity together, 237so the mix keeps its balance: held back is about 5 dB down (0.55), steady 238about 3 dB down (0.7), driving just under as written (0.85, about 1.4 dB 239down) and all out as written (1). No filter is added: the stabs, bass and 240riser already set theirs. 241 242- Bars 1–8 always play as written. 243- Each request tells Jev the song's state (subject, tempo, key, chords, 244 lyrics), every answer so far, where the song is in its form (the sections 245 allowed next, and those left before the cap), how loud each finished 246 section measured in the browser, and the 🔥/😴 reactions from the 247 listener's tab. 248- This relaxes the constraints below that the song plays once in a fixed 249 order and never varies by chance: the arrangement varies with Jev's 250 choices, which are judgments, with a little sampled chance in the form. 251 252## Constraints 253 254- Plays once from bar 1 and ends; never loops. Sections are absolute-cycle 255 masks, so playback starts from stopped. 256- Structured: patterns vary by section, never by chance. (Random chopping 257 read as noise on the first song.) 258- No sustained background pad; harmony comes from rhythmic parts. 259- Vocals only where the structure table puts them; drops are instrumental. 260- Meme clips are the real audio (myinstants, or YouTube via yt-dlp), cut at 261 word timings measured with whisper.cpp. Vocoder lines are made with 262 `speak` + `vocode` on the chord they land on, and checked by transcribing 263 the result with whisper.cpp. Everything lands in `samples/<sound>/` with 264 a provenance row in `samples/README.md`. 265- Samples load from `samples('jev-samples/strudel.json')`; drums from 266 `github:tidalcycles/dirt-samples`.