For agents, on top of README.md, which they read first.
Notes for agents
Stop playback before playing song.js. Its section masks count from cycle 0.
The harmony moves every two bars on purpose. Each vocoded line (hl* in samples/) is rendered on one chord — Gm g2 g3 bb3 d4, Eb eb2 eb3 g3 bb3, F f2 f3 a3 c4, D d2 d3 f#3 a3 — so it must start on the first bar of that chord. "Jev plays Link to the Past" exists twice (hljevplays on Gm, hljevplaysd on D) for that reason. Changing section lengths or chord order means re-rendering with vocode.
The secret jingle is note data, not a sample. G5 F#5 D#5 A4 G#4 E5 G#5 C6, checked against published transcriptions; the rhythm (seven 16ths, last note held) is set by c6@9 filling the bar.
The D chord needs F#. The lead and arp are written as note names rather than .scale("G:minor"), because the D bars use F# (harmonic minor) and a plain minor scale would put F natural against the D chord.
"Jev" needs coaxing through the vocoder. Plain "Jev" comes back from whisper as "Jeff"; a vocoded "Jehv" as "Jeb". What passes small.en and medium.en: SAPI rate −4, "Jehv," with a comma, vocode --dry 1.5 --seed 1, then the comma's pause cut down and the line sped up to fit two bars (the rows in samples/README.md give each line's recipe). base.en hears "Jeff" even in the raw speech, so it is not one of the two models.
Measure peaks more than once. The meter samples, so one run at postgain(.6) read −0.3 dBFS where the others read about −2; the master level is set with that margin.