P10.8: rebuild the SFX bank from the user's Triple Treat SFX pack

Replace the 9-cue bank with best-fit selections from the user-provided
Triple_Treat_SFX.zip, converted to the engine format (mono / 44100 / Int16,
<= ~600 ms) and peak-normalized to a gentle, consistent -15 dBFS. Drop-in:
audio.sx and all wiring are untouched; only assets/audio/** changes.

Per-cue source within the pack:
  swap   <- Transition SFX/Swipe FX 1   (light swipe = the swap gesture)
  match  <- Pop:Bubble SFX/Pop FX 5     (juicy candy pop, first clear)
  combo1..5 <- Pop:Bubble SFX/Pop FX 3  (one pop pitch-laddered +0/+2/+4/+7/+9
               semitones; the pack's Match set does not ascend monotonically)
  win    <- Success:Power-Up SFX/Power Up FX 1 (short triumphant)
  lose   <- Fail SFX/Fail FX 2          (gentle tonal, not boomy)

combo1..5 ascend in fundamental: 687 < 771 < 865 < 1029 < 1155 Hz. The 30 MB
pack and its .meta/__MACOSX cruft are not committed; LICENSE.txt records the
exact per-cue source file within the pack.
This commit is contained in:
swipelab
2026-06-06 07:51:36 +03:00
parent eca994f454
commit 28e32435f9
10 changed files with 53 additions and 81 deletions

View File

@@ -1,100 +1,72 @@
m3te sound effects
==================
Every shipped cue is a REAL, FREE-licensed sound effect (all CC0 1.0 / public
domain), chosen and processed to EVOKE a sweet, juicy, tactile candy-game feel.
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).
>>> NONE of these are ripped from Candy Crush or any King-owned audio. They are
>>> independent CC0 assets that merely evoke a similar candy/jelly character.
>>> 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.
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 SOFT and GENTLE (P10.7 softening pass, see "Softening"
below): every cue eases in instead of snapping, the brittle top end is rolled
off for a warm rounded tone, and loudness is dialed well down. System Sound
Services has no runtime volume, so loudness is baked into the file: the bank
peaks at a quiet -15.5 dBFS, with the swap blip and the lose "aww" softer still
at -17.5 dBFS.
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.
Licenses
--------
CC0 1.0 (public domain): https://creativecommons.org/publicdomain/zero/1.0/
Versilian Community Sample Library (VCSL), CC0: https://github.com/sgossner/VCSL
Freesound (per-sound CC0, links below): https://freesound.org
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.
Per-file provenance & candy character
-------------------------------------
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.
swap.wav soft, light blip/bubble.
Freesound "Pop 01" (#506546) by LilMati — CC0.
https://freesound.org/people/LilMati/sounds/506546/
Trimmed to the single pop (~89 ms), faded, peak-normalized.
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.
match.wav bright, juicy candy POP (the "tasty" match reward).
Freesound "Cartoon Pop" (#741368) by Mish7913 — CC0.
https://freesound.org/people/Mish7913/sounds/741368/
Trimmed to the single pop (~260 ms), faded, peak-normalized.
combo1..5.wav — the candy-cascade ladder: ONE clean pop pitch-laddered up a
major-pentatonic run (+0/+2/+4/+7/+9 semitones) so deeper cascades
pop higher. The pack's Match FX set does NOT ascend monotonically,
so a single good pop was real-resample pitch-shifted instead.
Source: Pop:Bubble SFX/Pop FX 3-RCM.wav
Real DSP (linear-interpolation resample) per step; trimmed
(~0.36 s down to ~0.21 s as pitch rises), faded, peak-normalized
-15 dBFS. Measured fundamentals (tools/measure_pitch.py), strictly
ascending:
combo1 687 Hz < combo2 771 < combo3 865 < combo4 1029 < combo5 1155
combo1..5.wav — warm, sweet MARIMBA mallet notes ascending a C-major pentatonic
(C5 D5 E5 G5 A5) — the candy-cascade sparkle, warm not glassy.
Source: VCSL "Marimba" single note F5 (med velocity) — CC0.
github.com/sgossner/VCSL .../Idiophones/Struck Idiophones/Marimba
The one marimba note is real-resample pitch-laddered (ffmpeg
asetrate/aresample) to C5/D5/E5/G5/A5, trimmed (~280 ms), faded,
peak-normalized. Measured dominant partials (tools/measure_pitch.py),
strictly ascending:
combo1 1045 Hz < combo2 1173 < combo3 1317 < combo4 1566 < combo5 1758
(these are the marimba's strong ~2x partial; perceived pitch is
one octave lower: C5 523 .. A5 880.)
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.
win.wav — short, sugary, triumphant GLOCKENSPIEL bell fanfare.
Source: VCSL "Glockenspiel" notes C5 + G5 + C6 (med velocity) — CC0.
github.com/sgossner/VCSL .../Idiophones/Struck Idiophones/Glockenspiel
The three real bell notes are trimmed and sequenced into an
ascending C5->G5->C6 arpeggio (ffmpeg adelay/amix), ~580 ms,
faded, peak-normalized.
lose.wav — soft, gentle, descending "aww" (not a buzzer).
Source: VCSL "Marimba" notes B4 + G4 (med velocity) — CC0.
github.com/sgossner/VCSL .../Idiophones/Struck Idiophones/Marimba
The two real marimba notes are sequenced into a gentle descending
B4->G4 gesture (ffmpeg adelay/amix), ~490 ms, faded, normalized to
the softer -17.5 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.
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
----------
Sources downloaded as their original CC0 files (VCSL .wav notes from GitHub;
Freesound CC0 high-quality previews). Each cue was decoded, down-mixed to mono,
trimmed to its transient, optionally pitch-shifted / sequenced with real ffmpeg
DSP (asetrate/aresample, adelay/amix, afade), peak-normalized, 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.
Softening (P10.7)
-----------------
The candy CHARACTER of the P10.6 bank was right but still hit too hard, so each
finished cue was re-processed with real ffmpeg DSP — no re-synthesis, same CC0
sources — to be SOFT and GENTLE:
1. Onset eased in — a short qsin fade-in (8-14 ms) tames the attack transient
so pops "bloop" instead of "snap".
2. Highs rolled off — a warm two-pole low-pass (2.6 kHz swap/lose, 3.0 kHz
match/combo, 3.6 kHz win) removes the brittle/edgy top
end. Spectral centroid drops roughly 40-60% per cue; the
> 4 kHz energy fraction collapses (e.g. win 76% -> 28%,
combos ~10% -> <1%). The win keeps a little glockenspiel
sparkle by design; everything else is rounded right down.
3. Loudness lowered — re-normalized to the soft -15.5 / -17.5 dBFS targets
above (down from ~-9 / -12 dBFS), lowering BOTH peak and
RMS on every cue, then re-wrapped with afconvert.
The cascade ladder is preserved: combo1..5 still ascend in fundamental pitch
(measured dominant partials unchanged at 1045 < 1173 < 1317 < 1566 < 1758 Hz,
all below the 3.0 kHz low-pass corner). A short qsin fade-out rounds each tail.
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.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.