m3te sound effects
==================

The nine shipped cues (swap, match, combo1..5, win, lose) are best-fit
selections from the user-provided "Triple Treat SFX" pack
(Triple_Treat_SFX.zip, ~30 MB, 280 files, Unity-style with .meta sidecars),
chosen per game event and converted for the candy match-3 feel (P10.8).

  >>> The full pack is NOT committed — only the selected, converted cues live
  >>> here. The pack was supplied directly by the user for this game; its source
  >>> archive is Triple_Treat_SFX.zip (kept outside the repo, in ~/Downloads).

All files are delivered in exactly the format iOS System Sound Services loads
directly via audio.sx: WAVE / mono / 44100 Hz / signed-16-bit PCM. The pack's
sources are 24-bit / 48 kHz / stereo; each was down-mixed to mono, trimmed to
its punchy window, peak-normalized, and re-wrapped to the canonical container.

The bank is deliberately GENTLE (the user rejected aggressive SFX twice): every
cue is peak-normalized to a quiet, consistent -15 dBFS, eases in with a short
fade to tame the attack transient, and rounds out with a cosine fade-out tail.
The pack's candy character is preserved — the cues are not re-synthesized.

Provenance: the user-provided "Triple Treat SFX" pack
-----------------------------------------------------
Each cue below names the EXACT source file within the pack it was selected from
(paths relative to the pack's "Triple Treat SFX/" root). Because the pack came
from the user for this game, no external license was hunted; provenance is the
supplied Triple_Treat_SFX.zip.

swap.wav    — soft, light SWIPE matching the swap gesture (fires on every swipe,
              so kept subtle). Distinct timbre from the candy pops.
              Source: Transition SFX/Swipe FX 1-RCM.wav
              Trimmed to the swipe body (~0.44 s), faded, peak-normalized -15 dBFS.

match.wav   — bright, juicy candy POP (the satisfying first-clear reward).
              Source: Pop:Bubble SFX/Pop FX 5-RCM.wav
              Trimmed to the single pop (~0.44 s), faded, peak-normalized -15 dBFS.

combo1..5.wav — the candy-cascade ladder: FIVE distinct REAL Match FX cues from
              the pack, ORDERED to convey cascade escalation. The Match FX set
              does not cleanly pitch-ascend, so the cues are ordered by spectral
              brightness / high-frequency energy instead — combo1 the dullest /
              most subdued, combo5 the brightest / sparkliest, so deeper cascades
              read as more exciting.
                combo1 — Match SFX/Match FX 2-RCM.wav  (dark/full,   centroid ~1.7 kHz)
                combo2 — Match SFX/Match FX 4-RCM.wav  (warm mid,    centroid ~2.1 kHz)
                combo3 — Match SFX/Match FX 6-RCM.wav  (bright mid,  centroid ~3.2 kHz)
                combo4 — Match SFX/Match FX 7-RCM.wav  (rich+bright, centroid ~4.7 kHz)
                combo5 — Match SFX/Match FX 3-RCM.wav  (sparkly,     centroid ~6.8 kHz)
              Each down-mixed to mono, trimmed to a 0.50 s onset window, eased in
              (~6 ms) and rounded out with a 150 ms cosine fade-out, peak-
              normalized -15 dBFS. Brightness (spectral centroid) ascends
              monotonically, conveying escalation:
                combo1 1.68 < combo2 2.09 < combo3 3.18 < combo4 4.70 < combo5 6.77 kHz.

win.wav     — short, triumphant POWER-UP cue (level won).
              Source: Success:Power-Up SFX/Power Up FX 1-RCM.wav
              Trimmed to the front-loaded body (~0.60 s), faded, peak-normalized
              -15 dBFS.

lose.wav    — soft, gentle tonal FAIL (level lost) — not boomy or harsh.
              Source: Fail SFX/Fail FX 2-RCM.wav
              Trimmed to the body (~0.58 s) with a long cosine fade-out, peak-
              normalized -15 dBFS.

clear.wav   — "confirmation_001" from Kenney "Interface Sounds" (CC0).
              https://kenney.nl/assets/interface-sounds
              NOT loaded by the shipped game; kept as a CC0 reference clip
              (tools/measure_pitch.py uses its ~784 Hz fundamental as a baseline).

Processing
----------
Each chosen pack cue was decoded, down-mixed to mono, trimmed to its transient
window, optionally pitch-shifted with real resample DSP (combos only), eased in
with a short fade and rounded out with a cosine fade-out, peak-normalized to
-15 dBFS, and re-wrapped to the canonical WAVE/LEI16/44100/mono container with
afconvert. The shipped game never runs any build tool; it only loads the
finished WAVs. The 30 MB pack and its .meta / __MACOSX cruft are not committed.
