sfx-picker

برای هر لحظه از انیمیشن، افکت صوتی مناسب را انتخاب و به timeline وصل می‌کند.

این skill حرکت‌ها و keyframeهای یک composition را بررسی می‌کند و از میان ۱۴۸ افکت کتابخانه‌ی Cozer، مناسب‌ترین صدا را برای هر لحظه انتخاب می‌کند؛ از click و pop تا glitch، bell و rizer.

خروجی شامل cue sheet زمان‌بندی‌شده، مسیر دقیق فایل‌ها و snippet آماده برای Browser، HyperFrames یا FFmpeg است. این کار هماهنگی صدا و تصویر را سریع‌تر می‌کند و جلوی انتخاب نام فایل اشتباه یا اجرای چندباره‌ی افکت‌ها را می‌گیرد.

چه چیزی می‌گیرید

  • فهرست لحظه‌های بصری همراه با زمان، عنصر متحرک و حس موردنظر
  • انتخاب دقیق فایل SFX از catalog به‌همراه مسیر repo-relative
  • cue sheet آماده برای اتصال افکت‌ها به timeline
  • snippet JavaScript برای Browser و HyperFrames با preload و fire-once guard
  • دستور FFmpeg برای mix کردن SFX با خروجی ویدئو

برای چه کاری خوب است

  • ساخت motion graphics، title sequence و UI animation با صدای هماهنگ
  • پروژه‌های HyperFrames که به cueهای دقیق صوتی نیاز دارند
  • افزودن click، glitch، pop یا transition sound به ویدئوهای export‌شده
  • تیم‌هایی که می‌خواهند از کتابخانه‌ی آماده‌ی Cozer بدون جست‌وجوی دستی استفاده کنند

برای چه کاری نیست

  • ساخت موسیقی متن، soundscape یا طراحی کامل صدای یک پروژه
  • پروژه‌هایی که به افکت‌های خارج از کتابخانه‌ی Cozer نیاز دارند
  • میکس حرفه‌ای و master نهایی صدا

دربارهٔ این اسکیل

SFX Picker - Cozer Motion SFX Library

148 curated sound effects across 10 categories, purpose-built for motion graphics, UI animations, and editorial video. Every file lives under assets/sfx/ in this repository and is ready to use in HyperFrames, ffmpeg pipelines, After Effects, or browser-based HTML compositions.

Before you start

Read references/catalog.md in full before picking any sound. It contains every filename, category, and recommended use case. Never invent a filename or path.

Step 1: Identify the visual moments that need sound

Map the animation to a list of keyframe moments. For each moment, state:

  • What moves (element name, transform)
  • When it moves (time in seconds from the composition start)
  • The emotional intent (punchy, soft, glitchy, mechanical, organic)

Example moment list:

0.0s: hero title slides in from left - punchy, confident
0.4s: subtitle fades up - soft, airy
1.2s: CTA button appears - crisp click, satisfying
2.0s: background grid glitches - digital, corrupted

Step 2: Match each moment to a category

Use the category guide below. Open references/catalog.md to pick the exact file.

CategoryPathBest for
crispassets/sfx/crisp/Snappy element reveals, cuts, punchy transitions
ui-soundsassets/sfx/ui-sounds/Interface interactions, sci-fi menus, confirmations
popassets/sfx/pop/Bubble reveals, element pop-ins, list items
digital-clickassets/sfx/digital-click/Button clicks, futuristic UI taps, typewriter text
normal-clickassets/sfx/normal-click/Soft button presses, subtle taps
bellassets/sfx/bell/Notifications, soft dings, light accents
messageassets/sfx/message/Ping notifications, message send, iOS-style chimes
glitchassets/sfx/glitch/Corrupted reveals, error states, data glitches
gearassets/sfx/gear/Mechanical transitions, typewriter scrolls, slow reveals
rizerassets/sfx/rizer/Build-up before a big reveal, rising energy, final hold

Step 3: Output a cue sheet

After picking sounds, produce a cue sheet in this format:

TIME    CATEGORY        FILE                                NOTES
0.0s    crisp           Crisp  (14).mp3                    Title slide: punchy cut
0.4s    ui-sounds       ES_UI, Positive 02 - Epidemic Sound.mp3   Subtitle appears
1.2s    digital-click   ui degital click by clips.mp3      CTA button appears
2.0s    glitch          UIGlitch_Futuristic_Machines_Devices_Glitch_2_Ocular_Sounds_Sci.wav  Grid glitch

Step 4: Deliver paths and an integration snippet

For each picked SFX, give the full repo-relative path and a ready-to-use snippet.

Browser / HyperFrames:

// Preload all SFX at composition init
const sfx = {
  titleSlide: new Audio('assets/sfx/crisp/Crisp  (14).mp3'),
  ctaClick:   new Audio('assets/sfx/digital-click/ui degital click by clips.mp3'),
  glitch:     new Audio('assets/sfx/glitch/UIGlitch_Futuristic_Machines_Devices_Glitch_2_Ocular_Sounds_Sci.wav'),
};

// Fire at seek(t) when t crosses the cue time (fire-once guard):
let fired = {};
function maybeFire(t) {
  if (t >= 0.0 && !fired.titleSlide) { sfx.titleSlide.play(); fired.titleSlide = true; }
  if (t >= 1.2 && !fired.ctaClick)   { sfx.ctaClick.play();   fired.ctaClick   = true; }
  if (t >= 2.0 && !fired.glitch)     { sfx.glitch.play();     fired.glitch     = true; }
}

ffmpeg mixdown (for video export):

ffmpeg -i video.mp4 \
  -i "assets/sfx/crisp/Crisp  (14).mp3" \
  -i "assets/sfx/digital-click/ui degital click by clips.mp3" \
  -filter_complex "
    [1:a]adelay=0|0[sfx0];
    [2:a]adelay=1200|1200[sfx1];
    [0:a][sfx0][sfx1]amix=inputs=3:normalize=0[aout]
  " \
  -map 0:v -map "[aout]" -c:v copy -c:a aac -shortest output.mp4

Rules

  • Never guess a filename. Check references/catalog.md first.
  • Prefer short, punchy sounds for fast cuts. Reserve rizer for a single composition-level energy build.
  • Crisp sounds under 0.5 s work best on element reveals. Do not stack more than three simultaneous SFX cues.
  • Files are in .mp3, .wav, .aac, and one .mp4 (audio-only). All 148 are probed valid.
  • Duplicate file GearPlastic_AP1.475 - Copy.mp3 is identical to GearPlastic_AP1.475.mp3. Use the original.

What I learned the hard way

  • Preload before seek(0). Browsers silently skip audio if the file has not buffered. Create new Audio(...) at init, not at cue time.
  • Fire-once guard prevents double-triggers. Calling seek(t) multiple times for the same frame re-fires the sound. Track which cues have already played and clear the guard only on full composition reset.
  • ffmpeg adelay is in milliseconds. adelay=1200|1200 means 1.2 seconds, not 1200 seconds.
  • Crisp sounds disappear in loud music. Boost SFX by 3 to 6 dB with volume=2.0 in the amix chain when the background track is dense.
  • The rizer is one per composition. It sounds wrong when it plays twice. Gate it behind a flag.

دانلود ZIP