trancepenta #
A sibling of trancenwaltzi (same recap/bin/trance.mjs engine, same
single-mix scratch-mix.mjs post-FX) but a totally different track:
5/4 · 126 BPM steady · dorian, a ported hellsine gabber kick, a
real CC0 horse-gallop / neigh / ocean scene, hats off, beat held until
~0:30. trancenwaltzi is untouched — every difference is opt-in flags,
so the non-chill (trancewaltz) path stays byte-identical.
Bake (3 deterministic stages — manual; bake.mjs hardcodes the #
trancenwaltzi names so trancepenta runs the steps explicitly)
O=~/Documents/Working\ Desktop/twi-out
# 1 — engine (single all-sine multi-bus source), opt-in flags:
node recap/bin/trance.mjs --mode chill --meter 5 --master \
--bpm 126 --scale dorian --hell 11 --chill-hats off --gallop \
--beat-in 30 --out "$O/trancepenta-MASTER-preBright.wav"
# 2 — in-mix post-FX (scratch + restamped ID + breakbeat + slides),
# beat-locked to the engine's own struct.json:
node pop/dance/bin/scratch-mix.mjs \
"$O/trancepenta-MASTER-preBright.wav" "$O/.tp-scr.wav" \
pop/dance/out/.ac-dot-stamp-vocal.mp3 \
"$O/trancepenta-MASTER-preBright.wav.assets/struct.json"
# 3 — poppier finalize (duration-aware 18 s fade), → MASTER.wav + mp3:
D=$(ffprobe -v error -show_entries format=duration -of csv=p=0 "$O/.tp-scr.wav")
ffmpeg -y -i "$O/.tp-scr.wav" -af \
"acompressor=threshold=-19dB:ratio=2.4:attack=15:release=240:makeup=1:knee=6,\
equalizer=f=3000:t=q:w=1.2:g=2,highshelf=f=10000:g=1.5,\
loudnorm=I=-14:TP=-1.5:LRA=11,\
alimiter=limit=0.94:attack=8:release=120:level=disabled,\
afade=t=out:st=$(echo "$D - 18" | bc):d=18" \
-ar 44100 -sample_fmt s16 "$O/trancepenta-MASTER.wav"
Final: ~3:11 · −14.4 LUFS · −1.5 dBTP · 44.1 kHz/16-bit stereo.
Flags (engine, all chill-only & opt-in) #
| flag | trancepenta | effect |
|---|---|---|
--meter 5 --bpm 126 --scale dorian |
yes | 5/4, steady 126, dorian (steady tempo because --bpm is explicit; default = the 129→155 accelerando) |
--hell 11 |
yes | ported hellsine gabber/Rotterdam kick (tight "lil kick" first 24 s, then full) |
--chill-hats off |
yes | no hi-hats |
--gallop |
yes | real-sample horse + ocean scene |
--beat-in 30 |
yes | kick/snare/tick/floor suppressed until 30 s, ease in ~3 s |
Plus chill-general engine changes (also benefit a future trancenwaltzi re-bake): enriched piano (sustained holds + a melodic top, some reversed / pitch-bent / long-sustain), guaranteed downbeat floor (beat never fully drops), variant per-hit bass, lead harmonies, lowered "organ" pad, melodic highs tamed, cat choir −2 oct.
Sourced SFX — all CC0 (commercial-safe; provenance also in the #
gitignored pop/dance/out/.sfx-credits.txt)
| local file | source | license |
|---|---|---|
.gallop.wav |
archive.org Red_Library_Animals_Horses_1 / R13-10 Horse Gallop |
CC0 |
.neigh.wav |
archive.org horse-sound-effects / mixkit-stallion-horse-neigh-1762 |
CC0 |
.waves.wav |
Freesound #376799 "Crashing Waves into Rocks 1" | CC0 |
.foghorn.wav |
Freesound #37915 "fog horn sample(wet)" | CC0 |
.boathorn.wav |
Freesound #437687 "Loud boat horn" | CC0 |
| thunder, steam whistle | synthesized in-engine | n/a |
The .gallop/.neigh/.waves/.foghorn/.boathorn.wav live in the
gitignored pop/dance/out/ (not committed — re-fetch from the sources
above; Freesound key is vault-only, see pop/SCORE.md). The gallop /
neigh / ocean samples are placed via the engine's deep + echo +
variable-playback-rate helper (they bend with the beat & morph
under), beat-spread (random window per hit — not loop-loop).
Vocal + extra SFX (now in) #
- jeffrey vocal counterpoint —
sing-penta.mjs(jeffrey-pvc say → whisper-align → WORLD score-pitch ontrancepenta-hum.npG-dorian chord tones → rubberband stretch → restrained harmony stack) →pop/dance/out/trancepenta-vocal.mp3(gitignored, cached say). The bake adds 2 stages after scratch-mix:place-penta-vocal.mjs --phrase …trancepenta-vocal.mp3 --dur <scrDur>thenfinalize-penta-vocal.mjs --scr …--vox …--vox-db 1(the exact stage-3 master + a quiet pre-master vocal bus;--vox-dbtunes it). - bake flags also now:
--hell 13,--beat-in 30(subtle dampened 4-on-floor intro + a diatonic-3rd-up key that DROPS home ~1 min) ; the ~2:19 fog horn uses the pre-baked.foghorn-low.wav(−12 st, ~5 s, slow attack/smooth decay); between the two ID stamps a CC0 arpeggiated horse neigh + grenade; tamed/wavy last-30 s. - New CC0 sources logged in
out/.sfx-credits.txt:.waves/.foghorn/.boathorn+.grenade(Freesound, CC0) and.foghorn-low.wavderived from.foghorn.wav.
Sung jeffrey lead-double (v13 — now in) #
pop/dance/trancepenta.txt (lyric: "fog on the harbour / the sea is a
screen / ride the slow horse home / drift / hold / glow in the grey
tide / the long blue hum") + pop/dance/trancepenta-sing.np (a SUNG
DOUBLE of the chill lead — G-dorian tonic-pole contour, long sustained
notes). sing-penta.mjs is tuned drippin: slow stretch bpm, very high
--max-stretch, big legato overlap, gentle vibrato → a warm gooey
co-lead (octave-below body + soft fifth, not the dense stack) →
pop/dance/out/trancepenta-vocal.mp3 (39 s, gitignored, cached say).
place-penta-vocal.mjs lays 3 post-drop sung entries (~1:18
lead-in · ~1:44 full body · ~2:25 resolve) — silent in the keyed-up
intro, clear of the stamp + neigh/grenade (~1:35) and the gnarly
last-30 s. finalize-penta-vocal.mjs --vox-db -3 = present co-lead
(~+4 dB above the old hum), mastered together. Final v13: 3:11 ·
−14.1 LUFS · −1.4 dBTP.
Vertical video (now in) #
build.mjs has a trancepenta CONFIG (vertical 2:3, v13 audio,
dismal per-section tints, sectionsDir = gens/trancepenta-sections,
no prelude, .NO_LYRICS). Section illys regenerated under a dismal /
muted palette = the diegetic light, glowing PALS on the laptop backs,
screen-glow on jeffrey & mark's faces matching each segment's color
(gitignored under ~/Documents/Shelf/gens/trancepenta- sections/<sec>/gens/v1.png). cover-video.mjs patched for stained-
glass + all struct/track data with real motion + zoom + a beat-
reactive backlit bump. Outputs (build.mjs writes ~/Desktop/builds/
which auto-cleans — rescue to Shelf):
twi-out/trancepenta-vertical.mp4 (1080×1920 · 3:11) and a 30 s
no-lyrics IG-story cut twi-out/trancepenta-story.mp4
(~1:38→2:08: stamp/horse-grenade → drop → sung body).
Rebuild: regen illys via the section-prompt/gen-illys path, then
node pop/dance/bin/build.mjs trancepenta (config carries the rest).