Skip to main content

Sound Effects

Overview​

Sound effects can be attached to action blocks to describe the ambient audio for a scene beat. Each effect has precise timing so it can be placed and trimmed on a visual timeline.

Sound library​

The sound library (/admin → Sound Effects, or via the Sound Manager in the studio) holds all available sound effects. Sounds are generated via AI and stored on the server.

Generating a sound​

  1. Open the Sound Manager (manage mode)
  2. Click Add Sound
  3. Enter a name and a text description (prompt)
  4. Set duration (0–21 seconds)
  5. Click Create — the AI generates and uploads the audio

Requires sound:create permission.

Attaching sounds to a block​

  1. Edit an action block (pencil icon → BlockModal)
  2. In the Sounds section, click + to open the Sound Picker (picker mode)
  3. Preview sounds by clicking the play button (audio is fetched via Bearer token)
  4. Click Add to attach the sound to the block

The block can have multiple sounds attached.

Sound timeline​

Each attached sound is displayed on a timeline relative to the block's duration. You can drag the sound bar to adjust:

  • Block start (blockStart) — when within the block this sound starts playing
  • Block end (blockEnd) — when within the block this sound stops

The timeline visually shows overlapping sounds and their relative positions.

Playback in BlockModal​

ButtonAction
â–¶ (Play All)Plays all sounds simultaneously according to their blockStart timing
â–¶ (Play Selected)Plays the currently selected sound from its soundStart trim point
🗑Deletes the selected sound from this block

All audio is fetched via apiFetch (Bearer token) and played from blob URLs.

Inline playback (scene view)​

Each attached sound is shown as a pill on the action block. Clicking the play button on a pill plays that specific sound clip (trimmed to soundStart/soundEnd).

Sound fields​

FieldDescription
blockStartSeconds into the block when sound begins
blockEndSeconds into the block when sound ends
soundStartTrim start within the source audio file
soundEndTrim end within the source audio file
durationTotal duration of the source audio

API​

MethodEndpointDescription
GET/api/soundsList sounds (paginated, searchable)
POST/api/sounds/generateGenerate a new sound
PATCH/api/sounds/:idRename a sound
DELETE/api/sounds/:idDelete a sound