speech reaches 99 of 274 genres: station idents for the mix forms

The bespoke cast is twelve genres that had a voice waiting in their own card — the OYEZ, the ATC read-back, the auction chant. That does not scale to a hundred: writing ninety more idioms by hand is ninety chances to write a bad one, and most genres have no such line in them.

• So the derived tier is picked by a STRUCTURAL property rather than by me choosing forty-one names out of a hat. Genres whose FORM is a mix — dj, drop, vamp, the ones built to be beat-matched and talked over

• genres with speech 58 -> 99 of 274 bespoke cast 12 (unchanged; a bespoke voice always beats an ident) derived idents 41 (dj 20, drop 12, vamp 9)

• The VOICE is hashed from the genre name, not the track seed, so every station sounds like a different station and the same genre always gets the same announcer: house is a fast m2, jungle a mid m1, disco an f3.

• A REAL BUG CAUGHT ON THE WAY, and the reason the samples are worth printing: the first cut used `>>`, which is a SIGNED 32-bit shift, so any hash above 2^31 went negative and dragged the modulo with it.

Verified: determinism identical on repeat, no out-of-range voice anywhere, and house and jungle both synthesize live in a real browser with zero console errors.

▶ Play it: Barometric Stampede → Congregation Furnace → Stationary Weather — the three genres this change names, as one path https://stellate.app/?genre=jungle&seed=9094&path=1718.20526,1101.20850,2103.13302&xdur=0.096

422eb07 https://github.com/aboard-io/stellate/commit/422eb07e191b9770869605e1a018694fc6ef9570