From 2b39b29eea7f47df86fbc5afeba95f9c0d7971d7 Mon Sep 17 00:00:00 2001 From: "prompt.ac/@jeffrey" Date: Sat, 8 Aug 2026 01:58:08 -0700 Subject: [PATCH] Refine Wattajetta stone club arrangement --- pop/releases/wattajetta/release.json | 44 ++++ pop/wattajetta/ARRANGEMENT.md | 2 +- .../assets/phones/quick-woosh-245936.mp3 | Bin 0 -> 64032 bytes pop/wattajetta/bin/render-wattajetta.mjs | 210 ++++++++++++++---- 4 files changed, 217 insertions(+), 39 deletions(-) create mode 100644 pop/releases/wattajetta/release.json create mode 100644 pop/wattajetta/assets/phones/quick-woosh-245936.mp3 diff --git a/pop/releases/wattajetta/release.json b/pop/releases/wattajetta/release.json new file mode 100644 index 0000000000..b3534dfc04 --- /dev/null +++ b/pop/releases/wattajetta/release.json @@ -0,0 +1,44 @@ +{ + "schemaVersion": 1, + "slug": "wattajetta", + "ddex": { + "ernVersion": "4.3.2", + "namespace": "http://ddex.net/xml/ern/432", + "releaseProfileVersionId": "SimpleAudioSingle", + "releaseProfilesVersion": "2.3.1", + "avsVersionId": "11" + }, + "release": { + "title": "wattajetta", + "displayArtist": "Aesthetic Dot Computer", + "labelName": "Aesthetic Dot Computer", + "releaseDate": "2026-08-07", + "genre": "Electronic", + "subGenre": "Ambient", + "parentalWarningType": "NotExplicit", + "territoryCode": "Worldwide" + }, + "recording": { + "title": "wattajetta", + "type": "MusicalWorkSoundRecording", + "durationSeconds": 130.717021, + "hasVocalPerformance": false, + "hasForegroundVocalPerformance": false, + "containsAI": "None" + }, + "assets": { + "audio": { + "localPath": "pop/wattajetta/out/wattajetta-stone-club-distrokid-master.wav", + "fileName": "wattajetta-stone-club-distrokid-master.wav", + "containerFormat": "WAV", + "audioCodecType": "PCM", + "samplingRate": 48000, + "bitsPerSample": 24, + "numberOfChannels": 2 + } + }, + "source": { + "stoneClubMix": "pop/wattajetta/out/wattajetta-stone-club-audition.mp3", + "arrangement": "pop/wattajetta/ARRANGEMENT.md" + } +} diff --git a/pop/wattajetta/ARRANGEMENT.md b/pop/wattajetta/ARRANGEMENT.md index 63f2937821..ec0bec00ba 100644 --- a/pop/wattajetta/ARRANGEMENT.md +++ b/pop/wattajetta/ARRANGEMENT.md @@ -13,7 +13,7 @@ and comes home. | bars | section | mode | wave | what happens | |-------|---------|----------------|------|--------------| -| 0–8 | intro | E pentatonic | 0.72 | bare kick + sine floor; castanet conversation (dense); slow Empty Trash throw (bar 3); first owl; tiny bells | +| 0–8 | intro | E pentatonic | 0.72 | percussion/water-floor only; no bells, bowls, ukulele, strings, or harp-like resonances | | 8–18 | verse 1 | E aeolian | 0.90 | walking line enters the natural minor; disco bass starts (bar 4+); flyby counter-melody descends (bar 11, with wingmen) | | 18–26 | chorus 1| E dorian | 1.15 | THE HOOK (call) / line (response); cliff run bar 24; quat motif bar 22 | | 26–36 | verse 2 | E phrygian | 0.90 | darkest color; flyby climbs in answer (bar 29); mini rush bar 27 | diff --git a/pop/wattajetta/assets/phones/quick-woosh-245936.mp3 b/pop/wattajetta/assets/phones/quick-woosh-245936.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..640de9635d55d1f29bf293afc147ca4e5371573c GIT binary patch literal 64032 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 48 || (d.a === 32 && b >= 38); @@ -272,7 +273,7 @@ for (const d of DROPS) // wave, but it never doubles: the dependable 2-and-4 silhouette stays intact. if (STONE_STUDY) { let snareIndex = 0; - for (let b = STONE_CLUB ? 6 : 4; b < BARS; b++) { // club backbeat waits for the build + for (let b = STONE_CLUB ? 4 : 4; b < BARS; b++) { if (!STONE_CLUB && bar(b) < 45 && b % 2 === 1) continue; for (const beat of [1, 3]) { const phase = (snareIndex % 12) / 12; @@ -287,11 +288,17 @@ if (STONE_STUDY) { continue; } const t = bar(b) + beat * BEAT + (STONE_CLUB ? DRAG + grooveJitter(b, beat + 31, 0.0045) : 0); - const db = (STONE_CLUB ? -13.5 : bar(b) < 45 ? -15 : -13) + 3.2 * swell; + // A ghost backbeat enters halfway through the intro, then grows into + // the full snare over four bars so bar eight is an arrival, not a cut. + const introU = Math.max(0, Math.min(1, (b - 4) / Math.max(1, INTRO_PERC_ONLY_BARS - 4))); + const introLift = STONE_CLUB && b < INTRO_PERC_ONLY_BARS + ? -10 + 7 * (introU * introU * (3 - 2 * introU)) + : 0; + const db = (STONE_CLUB ? -13.5 : bar(b) < 45 ? -15 : -13) + 3.2 * swell + introLift; noises.push([t, 0.085 + 0.035 * swell, 1750 + 950 * swell, 900 + 350 * swell, 0.95 + 0.4 * swell, db, 0.002, 0.06 + 0.035 * swell, beat === 1 ? -0.08 : 0.08]); - snares.push({ t, strength: 0.68 + 0.32 * swell }); + snares.push({ t, strength: (0.68 + 0.32 * swell) * (b < INTRO_PERC_ONLY_BARS ? 0.38 : 1) }); snareIndex++; } } @@ -330,7 +337,7 @@ if (STONE_CLUB) { } return hits; }; - for (let b = 1; b < BARS; b++) { + for (let b = STONE_CLUB ? INTRO_PERC_ONLY_BARS : 1; b < BARS; b++) { if (inTechno(b)) continue; // techno strips to kick/rim/closed-hat const lateLift = b >= 54 ? 2.4 : b >= 36 ? 1.5 : b >= 18 ? 0.7 : 0; const k = [5, 7, 9, 11][Math.min(3, Math.floor(b / 18))]; @@ -393,7 +400,7 @@ if (STONE_CLUB) { [2.75, 3.25, 3.5, 3.625, 3.75], ]; for (const [fillIndex, b] of [7, 17, 25, 35, 43, 53, 61, 69].entries()) { - if (b >= BARS) continue; + if (b >= BARS || (STONE_CLUB && b < INTRO_PERC_ONLY_BARS)) continue; const pattern = SKIP_PATTERNS[fillIndex % SKIP_PATTERNS.length]; const flip = fillIndex % 2 ? pattern.length - 1 : 0; for (let i = 0; i < pattern.length; i++) { @@ -450,7 +457,7 @@ for (const d of DROPS) // the club's bass roots follow the scale tour's progression degrees, so // the fuselage re-tunes with each mode; canonical keeps its fixed E G A D const root = STONE_CLUB ? progHz(b, ((b - d.a) / 2) % 4) : ROOTS[((b - d.a) / 2) % 4]; - if (STONE_CLUB && b < 2) continue; // slow build: the floor arrives at bar 2 + if (STONE_CLUB && b < INTRO_PERC_ONLY_BARS) continue; // pulse first; bass arrives after the intro if (SCORE_JSON) scoreExtra.sub.push({ t: +bar(b).toFixed(4), hz: +root.toFixed(2), dur: 2 * BAR }); if (STONE_STUDY || d.a >= 48) { // trance gallop: offbeat eighth stabs — the sidechain makes the pump. @@ -551,7 +558,7 @@ function bellRun(b, d) { const yielded = (rollBar(b) && e >= 6) || pickupYield(b, e) || hookBar(b) || (STONE_CLUB && CLIFF_BARS.includes(b)) || inTechno(b) || (sparse && e % 2 === 1); // valleys drop the offbeat answers entirely - if (!yielded && gate < d.density * earlyDensity * Math.min(1, wave + 0.25)) { + if (!yielded && b >= INTRO_PERC_ONLY_BARS && gate < d.density * earlyDensity * Math.min(1, wave + 0.25)) { // Most opening bells remain pinpricks, but a deliberately rare FEM // strike becomes a structural tone with its full physical decay. const openingBloom = inSparseOpening && bellStep % 23 === 5; @@ -843,7 +850,7 @@ if (STONE_CLUB) { // still on. The whole arrangement is this little melody's fever dream. const LULLABY = [[0, "E5"], [1.5, "G5"], [3, "B5"], [5, "D6"], [6.5, "B5"], [7, "A5"], [8, "E5"], [9.5, "G5"], [11, "A5"], [13, "G5"], [14, "E5"]]; - for (const [beat, note] of LULLABY) + if (!STONE_CLUB) for (const [beat, note] of LULLABY) bells.push({ t: bar(0.5) + beat * BEAT, note, vel: 0.5, pan: 0.25 * Math.sin(beat * 0.9), gain: Math.pow(10, -14 / 20), material: "glass", geometry: "glass", dur: 2.4, longTail: true, cliff: true }); @@ -901,7 +908,7 @@ for (const d of DROPS) { if (rnd() < d.bloops) { // the club outro drips dry — a lone chirp on the fade reads as a // stray boop, not water — and the techno strip has no water at all - if (STONE_CLUB && (b >= 66 || inTechno(b))) { rnd(); continue; } + if (STONE_CLUB && (b < INTRO_PERC_ONLY_BARS || b >= 66 || inTechno(b))) { rnd(); continue; } // club drips tune to the section mode (E3-octave scale tones) const pool = STONE_CLUB ? MODES[modeAt(b)].map((s) => MIDI_HZ(52 + s)) @@ -940,7 +947,7 @@ const choirThird = (b) => STONE_CLUB && MODES[modeAt(b)].includes(4) ? 207.65 : choirChord(bar(28), 4 * BAR, -19, choirThird(28)); choirChord(bar(44), 4 * BAR, -17, choirThird(44)); choirChord(bar(60), 4 * BAR, -17, choirThird(60)); -choirChord(bar(80), 8 * BAR, -20); // the mist hums it one last time +if (!STONE_CLUB) choirChord(bar(80), 8 * BAR, -20); // the non-club cut keeps the mist hum // ── chimes: tubular bells in quick clusters — wind chimes on the // canopy rail, breath sections and the mist ───────────────────────── @@ -963,7 +970,7 @@ for (const d of DROPS) // In canonical's first 45 seconds, bowls arrive every four bars instead // of every two. The kick and sine floor remain; only bell traffic thins. if (STONE_STUDY && bar(b) < 45 && ((b - d.a) / 2) % 2 === 1) continue; - if (inTechno(b)) continue; // the techno strip has no anchors, only pulse + if (inTechno(b) || b < INTRO_PERC_ONLY_BARS) continue; // intro is pulse only bells.push({ t: bar(b), note: STONE_CLUB ? midiName(64 + progSemis(b, ((b - d.a) / 2) % 4)) : ROOT_BELLS[((b - d.a) / 2) % 4], @@ -982,7 +989,7 @@ longBowl(bar(12), "E4", "silver", -15); longBowl(bar(44), "E4", "brass", -15); longBowl(bar(60), "E4", "gold", -15, 7, { warp: { depth: 0.03, hz: 0.7 } }); longBowl(bar(76), "E3", "stone", -14, 8); -longBowl(bar(80), "E4", "silver", -17, 9, { warp: { depth: 0.035, hz: 0.55 } }); +if (!STONE_CLUB) longBowl(bar(80), "E4", "silver", -17, 9, { warp: { depth: 0.035, hz: 0.55 } }); // foreshadow tolls — the ear learns each material before its drop const foreshadow = [[30, "E5", "bronze"], [46, "B5", "steel"], [62, "G5", "stone"]]; for (const [b, n, m] of foreshadow) @@ -1000,13 +1007,15 @@ bells.push({ t: bar(76), note: "E3", vel: 0.9, pan: 0, gain: Math.pow(10, -13 / bells.push({ t: bar(78), note: "E3", vel: 0.55, pan: 0.15, gain: Math.pow(10, -17 / 20), material: "bronze", geometry: "church", dur: 7 }); // mist: stone tolls slowing, underwater, one last glass bell full circle -for (const [b, n] of [[80, "E5"], [81, "G5"], [82.5, "A5"], [84, "E5"], [86, "D6"], [88.5, "G5"], [91, "A5"]]) - bells.push({ t: bar(b), note: n, vel: 0.55, pan: (rnd() * 2 - 1) * 0.4, - gain: Math.pow(10, (-16 - (b - 80) * 0.4) / 20), - material: "stone", geometry: "glass", dur: 2.0, - warp: { depth: 0.03, hz: 0.6 } }); -bells.push({ t: bar(93), note: "E6", vel: 0.45, pan: 0, gain: Math.pow(10, -19 / 20), - material: "glass", geometry: "glass", dur: 3.2, warp: { depth: 0.05, hz: 0.5 } }); +if (!STONE_CLUB) { + for (const [b, n] of [[80, "E5"], [81, "G5"], [82.5, "A5"], [84, "E5"], [86, "D6"], [88.5, "G5"], [91, "A5"]]) + bells.push({ t: bar(b), note: n, vel: 0.55, pan: (rnd() * 2 - 1) * 0.4, + gain: Math.pow(10, (-16 - (b - 80) * 0.4) / 20), + material: "stone", geometry: "glass", dur: 2.0, + warp: { depth: 0.03, hz: 0.6 } }); + bells.push({ t: bar(93), note: "E6", vel: 0.45, pan: 0, gain: Math.pow(10, -19 / 20), + material: "glass", geometry: "glass", dur: 3.2, warp: { depth: 0.05, hz: 0.5 } }); +} // Chordal material gates: the solo pentatonic line occasionally resolves into // a physical stone voicing. Tiny hand-strums keep the chord from behaving like @@ -1052,6 +1061,16 @@ if (STONE_STUDY) { geometry: "church", dur: 2.5 }); } +// The club opening is strictly non-tonal. Several inherited canonical bell +// figures are assembled outside bellRun(), so gate the final event list—not +// only the walking-line generator—to keep every bell, bowl, and uke resonance +// out until bar 8. +if (STONE_CLUB) { + const afterIntro = bells.filter((s) => s.t >= bar(INTRO_PERC_ONLY_BARS)); + bells.length = 0; + bells.push(...afterIntro); +} + // Redundancy sweep + line audit. Independent figures (rolls landing, octave // stops, bowls, chord gates) can legally ask for the same note at the same // instant — one mallet can't strike a bar twice at once, so the sweep keeps @@ -1151,24 +1170,53 @@ if (STONE_CLUB) { -12.5 - vi * 1.5, 0.008, 0.09, pan, pan, 0, 0]); }); } - // …and then it never really ends: the wub DALLIES — wandering the low end - // of whatever mode the track is in, skipping pulses, changing its mind, - // thinning to a single voice, all the way through the chorus until the - // bridge water takes it. Deliberately inconsistent: a creature, not a loop. - for (let b = 35; b < 44; b++) { + // The fork used to vanish at bar 35. Let its last B-D-F-A cell dissolve + // over four bars, shedding hits and level so the beat-pulse releases into + // the next section instead of exposing a hard generator boundary. + for (let b = 35; b < 39; b++) { + const u = (b - 35) / 4; + const notes = [47, 50, 53, 57].slice(0, Math.max(1, 4 - (b - 35))); + for (let k = 0; k < 8; k++) { + if ((b >= 36 && k % 4 === 3) || (b >= 38 && k % 2 === 1)) continue; + const t = bar(b) + (k * 0.5 + 0.25) * BEAT; + notes.forEach((m, vi) => { + const pan = (vi % 2 ? 1 : -1) * (0.12 + vi * 0.16); + sines.push([t, 0.18 + 0.03 * (1 - u), MIDI_HZ(m), MIDI_HZ(m), + -15 - 12 * u - vi * 1.7, 0.008, 0.12 + 0.08 * u, pan, pan, 0, 0]); + }); + } + } + // …and then it never really ends: the wub DALLIES through the low end of + // whatever mode the track is in. Its rhythm still thins as the bridge + // approaches, but the pitches now repeat a small eight-step cell so the + // low end reads as a bass figure instead of a note lottery. + const WUB_PATTERN = [0, 2, 1, 2, 0, 3, 2, 1]; + // The old moving wub figure is intentionally out: its per-note bumps + // crowded the middle register and broke the stone/guitar air. + for (let b = 35; b < 35; b++) { const low = LADDERS[modeAt(b)].filter((x) => x >= 45 && x <= 57); // A2..A3 for (let k = 0; k < 8; k++) { const idx = b * 8 + k; - if (grooveUnit(idx, 921) < 0.3) continue; // skips beats on a whim + const skip = b >= 39 ? (k % 4 === 3) : (k === 6 && b % 2 === 1); + if (skip) continue; // fixed thinning, not a re-roll const nVoices = b < 39 ? 2 : 1; // thinning as it goes for (let vi = 0; vi < nVoices; vi++) { - const note = low[Math.floor(grooveUnit(idx + vi * 7, 923) * low.length)]; + const degree = WUB_PATTERN[(k + b - 35) % WUB_PATTERN.length]; + const note = low[Math.min(low.length - 1, degree)]; const pan = (vi % 2 ? 1 : -1) * (0.12 + vi * 0.16); sines.push([bar(b) + (k * 0.5 + 0.25) * BEAT, 0.21, MIDI_HZ(note), MIDI_HZ(note), -14 - vi * 2, 0.008, 0.09, pan, pan, 0, 0]); } } } + // A quiet network-bed of stable partials replaces the wub. These begin + // after the percussion-only intro, persist to the end, and are written as + // sines so the engine's kick sidechain breathes them under the whole track. + const HUM_START = bar(INTRO_PERC_ONLY_BARS); + const HUM_DUR = Math.max(0, DUR - HUM_START); + for (const [hz, db, pan, vib] of [[174, -39, -0.12, 0.05], [285, -41, 0.12, 0.07], + [432, -43, -0.18, 0.09], [528, -45, 0.18, 0.11]]) + sines.push([HUM_START, HUM_DUR, hz, hz, db, 8, 10, pan, pan, vib, 2.5]); // no outro pass — a sine gliding over the fade read as a stray boop // the first pass keeps its wingmen — a formation only heard once sines.push([bar(11) + 0.75 * BEAT, 2 * BAR, 720, 195, -22, BAR * 0.4, BAR * 0.45, 1, -1, 0, 0]); @@ -1183,10 +1231,10 @@ if (STONE_CLUB) { // ── spray, whisper level: transition breaths only. Canonical deliberately // has no bar-zero splash; it was too startling before the groove settled. for (const d of DROPS) - if (!(STONE_STUDY && d.a === 0)) + if (!(STONE_STUDY && d.a === 0) && !(STONE_CLUB && d.a < INTRO_PERC_ONLY_BARS)) noises.push([bar(d.a), 2.0, 2000, 300, 0.8, -23, 0.015, 1.8, 0]); noises.push([bar(80), 16 * BAR + 4, 3000, 500, 0.8, -27, 2.0, 14 * BAR, 0]); -noises.push([0, DUR, 1100, 1100, 0.6, -41, 4, 4, 0]); +noises.push([bar(INTRO_PERC_ONLY_BARS), Math.max(0, DUR - bar(INTRO_PERC_ONLY_BARS)), 1100, 1100, 0.6, -41, 4, 4, 0]); // ── bake + render the engine part ───────────────────────────────────── const fmt = (rows) => rows.map((r) => " " + r.map((v) => +v.toFixed(5)).join(" ")).join("\n"); @@ -1202,6 +1250,15 @@ const score = [ `noise ${noises.length}`, fmt(noises), ].join("\n") + "\n"; +// Final arrangement boundary: all bell-producing systems have run by here. +// Enforce the silent tonal intro once, at the render boundary, so no inherited +// canonical figure can sneak a harp-like resonance into bars 0–8. +if (STONE_CLUB) { + const afterIntro = bells.filter((s) => s.t >= bar(INTRO_PERC_ONLY_BARS)); + bells.length = 0; + bells.push(...afterIntro); +} + const scorePath = resolve(OUT, "wattajetta.score.txt"); writeFileSync(scorePath, score); if (process.argv.includes("--score")) { console.log(score); process.exit(0); } @@ -1394,7 +1451,7 @@ if (TRASH_SAMPLE && existsSync(EMPTY_TRASH)) { const b = decoded.stdout; const sample = new Float32Array(b.buffer.slice(b.byteOffset, b.byteOffset + b.length - (b.length % 4))); const throws = [ - { t: bar(3) - 0.6, rate: 0.55, db: 7, pan: -0.08 }, // early, and SLOW — the first thing thrown overboard + { t: 0.35, rate: 0.55, db: -18, pan: -0.08, reverse: true }, // a hidden reverse swell under the hats { t: bar(18) - 0.72, rate: 1.18, db: 8, pan: -0.12 }, { t: bar(36) - 0.82, rate: 0.95, db: 7, pan: 0.12 }, { t: bar(54) - 1.00, rate: 0.78, db: 6, pan: 0 }, @@ -1406,7 +1463,8 @@ if (TRASH_SAMPLE && existsSync(EMPTY_TRASH)) { const gl = Math.cos(a) * Math.pow(10, s.db / 20); const gr = Math.sin(a) * Math.pow(10, s.db / 20); for (let i = 0; i < frames && at + i < ns; i++) { - const pos = i * s.rate; + const pos = s.reverse ? (sample.length / 2 - 1) - i * s.rate : i * s.rate; + if (pos < 0) break; const j = Math.floor(pos); if (j + 1 >= sample.length / 2) break; const fr = pos - j; @@ -1562,6 +1620,27 @@ if (STONE_CLUB) { owlAt("465697-owl_hoot.mp3", bar(68.5), -18, -0.25); } +// One house whip marks the bar-21 beat-two turn (36.96 s at 138 BPM). +// It is punctual, not a new repeating voice. +if (STONE_CLUB) { + const whip = decodeSample(resolve(HERE, "../../hellsine/samples/whip.wav")); + if (whip) { + const at = Math.floor((bar(21) + BEAT) * SR); + const n = Math.min(whip.length, ns - at); + const gain = Math.pow(10, -15 / 20); + for (let i = 0; i < n; i++) { + const tail = Math.min(1, (n - i) / Math.max(1, 0.09 * SR)); + const v = whip[i] * gain * tail; + mix[2 * (at + i)] += v * 0.76; + mix[2 * (at + i) + 1] += v * 0.65; + if (sampleBus) { + sampleBus[2 * (at + i)] += v * 0.76; + sampleBus[2 * (at + i) + 1] += v * 0.65; + } + } + } +} + // ── telephones (Freesound, vault-attributed). The dial tone is the real // 350+440 Hz dual tone, rate-shifted so its two tones LAND ON the // section's scale degrees — it harmonizes instead of clashing: ×1.1225 @@ -1600,10 +1679,43 @@ if (STONE_CLUB) { const RING = "663840-1970_telephone_ring_1_4_seconds_cycle_nl_wav.mp3"; // dominant ≈1616 Hz // off the hook outside the club — G+B over the bare E floor, fading as // the door opens - phoneAt(DIAL, bar(0.5), { db: -24, pan: 0.3, rate: 1.1225, maxDur: bar(5), fadeIn: 1.5, fadeOut: 3 }); + phoneAt(DIAL, bar(INTRO_PERC_ONLY_BARS) + 0.5 * BEAT, { + db: -24, pan: 0.3, rate: 1.1225, maxDur: bar(5), fadeIn: 1.5, fadeOut: 3 + }); + // Carry the dial-tone dyad into the score after the finite recording ends. + // Its G4+B4 identity slowly resolves toward E4+B4, becoming harmony rather + // than disappearing as a sound effect at the door transition. + const dialMorphAt = bar(INTRO_PERC_ONLY_BARS) + 0.5 * BEAT; + const dialMorphDur = bar(12); + const dialMorph = (f0, f1, db, pan, attack, release) => { + const at = Math.floor(dialMorphAt * SR), n = Math.floor(dialMorphDur * SR); + const a = (pan + 1) * 0.25 * Math.PI; + const gl = Math.cos(a) * Math.pow(10, db / 20), gr = Math.sin(a) * Math.pow(10, db / 20); + let phase = 0; + for (let i = 0; i < n && at + i < ns; i++) { + const u = i / Math.max(1, n - 1); + const hz = f0 + (f1 - f0) * smooth(u); + phase += TAU * hz / SR; + const env = Math.min(1, i / (attack * SR), (n - i) / (release * SR)); + const v = Math.sin(phase) * Math.max(0, env); + mix[2 * (at + i)] += v * gl; + mix[2 * (at + i) + 1] += v * gr; + if (sampleBus) { + sampleBus[2 * (at + i)] += v * gl; + sampleBus[2 * (at + i) + 1] += v * gr; + } + } + }; + dialMorph(352 * 1.1225, 329.63, -29, -0.12, 1.8, 4.5); + dialMorph(440 * 1.1225, 493.88, -31, 0.14, 2.2, 5.0); // the bridge answers in lydian — E+G#, heard through the water phoneAt(DIAL, bar(45), { db: -25, pan: -0.3, rate: 0.9375, maxDur: bar(3), fadeIn: 2, fadeOut: 2.5, warp: { depth: 0.03, hz: 0.45 } }); + // CC0 Freesound spin/woosh, cut short and landed exactly on the bar-45 + // downbeat (~1:22): a Sega-era arcade gesture without using game audio. + phoneAt("quick-woosh-245936.mp3", bar(45), { + db: -14, pan: 0.05, rate: 3.4, maxDur: 1.05, fadeIn: 0.01, fadeOut: 0.24 + }); // pitch-matched rotary calls: the gong lands on the bar lead, 2 octaves up const ringAt = (b, db, pan) => { const m = modeAt(b); @@ -1976,7 +2088,7 @@ if (STONE_CLUB) { }; for (const d of DROPS) for (let b = d.a; b < d.z; b += 2) { - if (inTechno(b)) continue; // no strings in the machine strip + if (b < INTRO_PERC_ONLY_BARS || inTechno(b)) continue; // no strings in intro/machine strip const chord = modeChord(b, ((b - d.a) / 2) % 4); const w = waveAt(b); // 10× decay: the strings barely damp, so successive strums overlay @@ -2006,7 +2118,8 @@ if (STONE_CLUB) { const FIB_STEPS = [1, 1, 2, 3, 5]; let arpIdx = 4, arpDir = 1, arpStep = 0, fCursor = 0; for (let b = 0; b < BARS; b++) { - if (inTechno(b) || (!sparseAt(b) && sectionAt(b).name !== "bridge")) { fCursor += 8; continue; } + if (b < INTRO_PERC_ONLY_BARS || inTechno(b) || + (!sparseAt(b) && sectionAt(b).name !== "bridge")) { fCursor += 8; continue; } // the arp picks from the section ladder's low half — it re-tunes too const arpLad = LADDERS[modeAt(b)].filter((m) => m <= 80); for (let e = 0; e < 8; e++, fCursor++) { @@ -2324,7 +2437,7 @@ function loadVocal(file) { return new Float32Array(b.buffer.slice(b.byteOffset, b.byteOffset + b.length - (b.length % 4))); } const VOCALS = STONE_STUDY ? [] : [ - { t: bar(0), file: "wattajetta.mp3", db: -8, rate: 1 }, // title drop over the steam + { t: bar(8), file: "wattajetta.mp3", db: -8, rate: 1 }, // title drop after the percussion-only intro { t: bar(15) - 0.15, file: "wayer.mp3", db: -6, rate: 1 }, // riding super scratch 1 { t: bar(47) - 0.15, file: "wayer.mp3", db: -6, rate: 0.94 }, // into steel, a shade deeper { t: bar(63.5), file: "wayer.mp3", db: -8, rate: 0.8, @@ -2519,6 +2632,25 @@ if (STONE_CLUB) { } } +// Let the tonal arrangement bloom out of the percussion-only opening instead +// of switching every new voice on at the bar-eight boundary. +if (STONE_CLUB && STEMS) { + const bloomStart = Math.floor(bar(INTRO_PERC_ONLY_BARS) * SR); + const bloomFrames = Math.floor(bar(4) * SR); + for (const bus of [bellBus, synthBus, gtrBus, sampleBus, trashBus].filter(Boolean)) { + for (let i = bloomStart; i < Math.min(ns, bloomStart + bloomFrames); i++) { + const u = (i - bloomStart) / Math.max(1, bloomFrames - 1); + const g = smooth(u); + for (let ch = 0; ch < 2; ch++) { + const j = 2 * i + ch; + const old = bus[j]; + bus[j] = old * g; + mix[j] += bus[j] - old; + } + } + } +} + // re-peak after the layers so the master sees a sane level let peak = 0; for (let i = 0; i < mix.length; i++) { const v = Math.abs(mix[i]); if (v > peak) peak = v; } @@ -2599,6 +2731,7 @@ writeFileSync(mixedPath, mixedBuffer); // but the opening still breathes ───────────────────────────────────── const MASTER = [ "highpass=f=24", + ...(STONE_CLUB ? ["afade=t=in:st=0:d=3.5:curve=qsin"] : []), STONE_CLUB ? "acompressor=threshold=-16dB:ratio=1.8:attack=22:release=160:makeup=1.3:knee=5" : "acompressor=threshold=-19dB:ratio=2.8:attack=10:release=150:makeup=2.2:knee=6", @@ -2610,6 +2743,7 @@ const MASTER = [ // the accelerando consumes source faster than the clock — trim the // dead air it leaves at the tail "areverse", "silenceremove=start_periods=1:start_threshold=-70dB", "areverse", + ...(STONE_CLUB ? ["afade=t=out:st=112:d=18"] : []), ]; const mp3 = resolve(OUT, STONE_STUDY ? STONE_CLUB ? "wattajetta-stone-club-audition.mp3" : "wattajetta-stone-canonical.mp3" -- 2.51.2