Labsco
remotion-dev logo

add-sfx

โ˜… 52,100

by remotion-dev ยท part of remotion-dev/remotion

Add a new sound effect to @remotion/sfx

๐Ÿ”ฅโœ“ VerifiedFreeQuick setup
๐Ÿ”’ Repo-maintenance skill. It exists to help maintain remotion-dev/remotion itself โ€” it's only useful if you contribute code to that project.

Add a new sound effect to @remotion/sfx

Inspect the full instructions your agent will receiveExpand

This is the exact playbook injected into your agent when the skill activates โ€” shown here so you can audit it before installing. You don't need to read it to use the skill.


name: add-sfx description: Add a new sound effect to @remotion/sfx

Steps

1. Add to remotion.media repo (must be done first)

In the remotion-dev/remotion.media repo:

  1. Add the WAV file to the root of the repo
  2. Add an entry to the soundEffects array in generate.ts:
    Copy & paste โ€” that's it
    {
      fileName: "my-sound.wav",
      attribution:
        "Description by Author -- https://source-url -- License: Creative Commons 0",
    },
  3. Run bun generate.ts to copy it to files/ and regenerate variants.json
  4. Deploy

2. Add the export to packages/sfx/src/index.ts

Use camelCase for the variable name. Avoid JavaScript reserved words (e.g. use uiSwitch not switch).

Copy & paste โ€” that's it
export const mySound = 'https://remotion.media/my-sound.wav';

3. Create a doc page at packages/docs/docs/sfx/<name>.mdx

Follow the pattern of existing pages (e.g. whip.mdx). Include:

  • Frontmatter with image, title (camelCase export name), crumb: '@remotion/sfx'
  • <AvailableFrom> tag with the next release version
  • <PlayButton> import and usage
  • Description
  • Example code using @remotion/media's <Audio> component
  • Value section with the URL in a fenced code block
  • Duration section (fetch the file and use afinfo on macOS to get duration/format)
  • Attribution section with source link and license
  • Convert section with a full-link sentence: [Open this file on remotion.dev/convert](https://remotion.dev/convert?url=<encoded-sfx-url>)
  • See also section linking to related sound effects

4. Register in sidebar and table of contents

  • packages/docs/sidebars.ts โ€” add 'sfx/<name>' to the @remotion/sfx category items
  • packages/docs/docs/sfx/table-of-contents.tsx โ€” add a <TOCItem> with a <PlayButton size={32}>

5. Regenerate SFX waveforms

After the sound is added to packages/remotion-media and exported from packages/sfx/src/index.ts, regenerate the waveform samples used by the docs:

Copy & paste โ€” that's it
bun packages/docs/generate-sfx-waveforms.ts

This uses ffmpeg to sample every exported sound effect into around 2000 waveform samples and updates packages/docs/components/sfx-demos/sfx-waveforms.ts.

6. Update the skills rule file

Add the new URL to the list in packages/skills/skills/remotion/rules/sfx.md.

7. Build

Copy & paste โ€” that's it
cd packages/sfx && bun run make

Naming conventions

File nameExport name
my-sound.wavmySound
switch.wavuiSwitch (reserved word)
page-turn.wavpageTurn

Version

Use the current version from packages/core/src/version.ts. For docs <AvailableFrom>, increment the patch version by 1.