-
fix(desire): the track did not compile, and the error pointed at the wrong block · 70048d46
Caught by tools/silent-eval.py on the four tracks PLN saved at the end of the last speaker rehearsal. `desire` did NOT compile — meaning the bass he had just called "doope" existed only in a running ghci, in a take that was never recorded. A saved file that does not compile is the worst kind of gig blocker: it looks like work is safe. THE ERROR LIED ABOUT ITS LOCATION <track>:409:7: Couldn't match expected type: Pattern ValueMap with actual type: Pattern ValueMap -> Pattern ValueMap Probable cause: 'midiOn' is applied to too few arguments In the first argument of '(#)', namely 'midiOn "^45" (# crush 6)' Line 409 of the generated file sits in the "Claude's Gesture" block, so that is where I looked first, and a plausible fix there changed nothing. `--keep` and a read of the actual generated Haskell found it three blocks earlier: orb4_51 = idcp $ gF2 $ gM3 $ midiOn "^45" (# crush 6) -- a FUNCTION # "bassWarsaw" # voice 0.05 -- used as the LEFT operand of # "Claude's Weight" had exactly one note figure, "0@5 0 <2 3> <1 0>", and that figure moved into Gesture's new midiOff. What remained was a midiOn with no pattern to apply itself to. GHC unified across the whole d4 group and reported the position where the type conflict surfaced, not the block that caused it. TWO FIXES 1. "Claude's Weight" commented out, params and all, with the reason inline. Nothing musical is lost — the LAST d4 in a file wins, and that was never this block. Restoring it needs a note pattern of its own, which is a taste call. 2. "Claude's Gesture" — `midiOn ch` passes its argument straight to someCyclesBy (BootTidal:391), so it must be a FUNCTION. Both note figures are now LEFT sections of `#`: ((note (scale ...)) #). That keeps the original semantics exactly: note supplies the rhythm, bassWarsaw and the params merge in. ON = the moving arp, OFF = the grounded root, which was the intent. VALIDATION: `silent-eval.py --seeded live/collab/raph/desire.tidal` -> "ok — every declared orbit emits events". Cold, no rig, no second ghci. PROCESS NOTE WORTH KEEPING: the first attempt at fix (2) was written to disk and then silently reverted — PLN quit Pulsar and reopened it, and Pulsar wrote its stale BUFFER back over the file. That is #95 / the buffer-clobber trap, observed live rather than theorised. Any on-disk fix to a file open in Pulsar needs a Window: Reload before the editor touches it again.PLN (Algolia) authored70048d46
×