# Recorded sound sources

All 16 clips in `sampler-v1.pcm` are adapted from **Kenney CC0** asset packs.
These recordings are separate from the game's original music; no ZZZ recording is distributed.

- [Voiceover Pack #1](https://kenney.nl/assets/voiceover-pack), by Kenney Vleugels.
  Male voice: Jeffrey M. Smith. Female voice: Giselle.
- [Impact Sounds 1.0](https://kenney.nl/assets/impact-sounds), created/distributed by Kenney, 2019-12-19.
- License for both: [Creative Commons Zero 1.0](https://creativecommons.org/publicdomain/zero/1.0/).

Source archive URLs, retrieved 2026-10-13:

- https://kenney.nl/media/pages/assets/voiceover-pack/3f7f168698-1677589897/kenney_voiceover-pack.zip
- https://kenney.nl/media/pages/assets/impact-sounds/87b4ddecda-1677589768/kenney_impact-sounds.zip

Both supplied license files state: “You may use these assets in personal and commercial projects”
(Voiceover Pack) and “This content is free to use in personal, educational and commercial projects”
(Impact Sounds). Attribution is optional; creator and performer credit is retained here.

## Processing and rebuilding

Extract the packs into `voice/` and `impact/` inside a local source directory, then run:

```sh
python3 scripts/audio-samples.py /path/to/source-directory
```

The script requires ffmpeg. It converts to 32 kHz mono, removes quiet leading/trailing sections,
filters sub-bass/ultrasonic content, normalizes individual peaks and applies short click-free fades.
Percussion tails are capped. The checked-in PCM16 bank is **534,072 bytes / 521.6 KiB**; the game ships
it (and `drums-v1.pcm`) as 4-bit IMA ADPCM (`*.adp`, about a quarter of the size) — run
`node scripts/adpcm.mjs` after regenerating either PCM bank;
the shared float32 copy uses about 1.02 MiB. `sampler.json` records original filenames and hashes;
`sampler.js` supplies the byte-slice layout for both direct-module development and deployment.

`music-production.js` authors each stage's kit, rests and fills. Music vocals are
selected separately by `music-vocals.js`; legacy `go`/`power` music accents are disabled
in all 92 arrangements. Gameplay and boss warning cues continue to use the CC0 bank.
Music retains five sources per deck and only the current/next song. The bank is
hosted with the game and included in its offline cache.

## Human vocal material in the music (revised 2026-10-14)

These are **human recordings**, not synthesized speech, used as **mix material**
rather than as a lead part. In `web/music-vocals.js` each clip is:

- cut at measured syllable boundaries and placed so the sound itself (or a swell's
  peak) lands on the 174 BPM grid;
- transposed once per track (at most about ±3 semitones; CANDY POP an octave up)
  toward the song's key, never re-pitched note by note; breaths and the ragga
  toast stay at their original pitch;
- band-limited per track (air / body / dark / radio), sent to a tempo-synced
  ping-pong echo and a short room, and baked into the harmony stem with a gentle
  keys duck. Vocals never mute, thin or re-voice the lead or chords.

Only tracks whose concept calls for a voice carry one (22 of 92). Vocals sit in
the bars the arrangement already leaves open for them:

- **SHIBUYA-CHO** (JSR liquid funk): short soul-syllable chops and a roll into the drop.
- **HARBOR 99, GOLDEN HOUR**: the sung phrase washed behind the arrangement like a pad.
- **RED LANTERN** (ragga jungle): i_rebel's toast with word rolls at phrase ends.
- **THUNDER BAY** (darkstep): low sung swells and offbeat stabs.
- **CANDY POP** (jump-up): octave-up soul chops in a dotted bounce.
- **Demon scores** named for voices only: SAMIGINA, PAIMON, NABERIUS, BUNE, RONOVE,
  ASTAROTH, FORNEUS, GAAP, PHENEX, UVALL, CAMIO, MURMUR, GREMORY, AMDUSIAS,
  BELIAL, DANTALION.

The Kenney announcer clips (`call_*`) remain in the manifest but are no longer used
in the music; Kenney voice lines are game cues only.

### Sample attribution

- Vocal excerpts from **“[Rhiannon] Where You Are Now Acapella”** by **Ascension**,
  vocals by **Rhiannon Delpero (SizzleFly), WolfFly**.
  [Original recording](https://ccmixter.org/files/ascension/27734),
  [Creative Commons Attribution 3.0](https://creativecommons.org/licenses/by/3.0/).
- Vocal excerpts from **“Leaving babylon accap 126 bpm”** by **i_rebel**.
  [Original recording](https://ccmixter.org/files/i_rebel/60044),
  [Creative Commons Attribution 3.0](https://creativecommons.org/licenses/by/3.0/).
- Vocal excerpts from **Etherealwinds Harp II: Community Edition**,
  performed by **Jordi Francis (Etherealwinds)**, recorded/edited by **Versilian Studios LLC**.
  [Original library](https://versilian-studios.com/etherealwinds-harp/),
  [Creative Commons Attribution 4.0](https://creativecommons.org/licenses/by/4.0/).
- Spoken excerpts from **Voiceover Pack #1**, by **Kenney Vleugels**.
  Male voice: **Jeffrey M. Smith**. Female voice: **Giselle**.
  [Original pack](https://kenney.nl/assets/voiceover-pack),
  [Creative Commons Zero 1.0](https://creativecommons.org/publicdomain/zero/1.0/).

Changes: selected excerpts, mono resampling, high/low-pass filtering, level matching,
short fades, MP3 encoding, rhythmic chopping and selected stereo reflections, mixed
into RUDIE arrangements. No pitch changes or time stretch are applied. No endorsement
by the source artists is implied. The original files are not distributed in full.

`scripts/vocal-chops.py` reproduces the 14 clips from the licensed originals:

```sh
python3 scripts/vocal-chops.py /path/to/licensed-source-files /path/to/kenney/voice
```

`vocals.json` records exact original paths, offsets, lengths, delivery and SHA-256
hashes. The 14 distributed mono MP3 clips total **125,464 bytes**. A selected track
loads only its own 1–2 clips (the API allows at most four); browsing or choosing an
instrumental track downloads none. The existing **8-entry / 2 MiB** decoded cache
and five-stem playback budget are unchanged. Rendering yields between small chunks.
A missing recording falls back to the instrumental arrangement, with legacy random
music calls still suppressed. Unit tests validate timing, source ranges, original
rate, explicit echoes, attribution hashes, cache budgets and real MP3 decoding;
these checks do not constitute a listening review.

## Recorded acoustic drums · October 2026 arrangement revision

Six one-shot recordings from **Virtuosity Drums**, performed by **Austin McMahon**
and released by **Versilian Studios / Karoryfer Samples** under **CC0 1.0 Universal**.
[Fixed source revision](https://github.com/sfzinstruments/virtuosity_drums/tree/9f04cf9a734527edfbb0a4eee1f674e45bbf71bc).

RUDIE changes: mono downmix, 32 kHz resampling, attack/tail trimming, short boundary
fades, DC removal and role-specific gain. No pitch shifting or synthetic layers in
the recorded bank. `drums-virtuosity-LICENSE.txt` contains the license; `drums-v1.json`
records exact files, source hashes and processing. Reproduce with
`scripts/drum-recordings.py`. The bank is **132,114 bytes**, decoded once to 264,228
bytes, and fetched only by break/brush arrangements. Brush arrangements combine the
recorded muted body with original synthesized brush friction.

`music-materials.js` additionally synthesizes 17 distinct contact/body materials and
five fallback drum families. Those are original physical-inspired synthesis, **not
recorded acoustic instruments**. Reference YouTube recordings are not distributed.
