Skip to main content
Version: 1.0 archive

Add voiceover, music, and synchronized audio

Scribe Animator separates reusable audio sources, timeline tracks, placed clips, synchronization markers, and scene/object bindings. This lets one source appear at the right time without tying its original media to a single scene.

Product UI verification

The Desktop audio screenshots below were captured from the real local editor at 1440 × 1000 through 27 July 2026. They document the production library, audio lane, script segments, binding actions, and bound-object inspector rather than a simulated player.

Choose scope and role first

Scope

ScopeUse it forTiming
Project AudioMusic, narration, or effects that should continue across scene boundariesGlobal project time
Scene AudioNarration or effects owned by one sceneThe selected scene's local range
Audio Library onlySave a source for later without placing a clipNo timeline placement

Role

RoleTypical contentWhy it matters
VOICEOVERRecorded or generated narrationSupports narration-oriented placement and bindings
MUSICBackground scoreMakes track intent clear and helps mixing
SFXShort effectsKeeps effects separate from speech/music
GENERICAudio that does not fit another roleSafe fallback for imported files

Choose scope before importing. Moving media into the wrong scope can make scene edits and synchronization harder later.

Before you start

  1. Stop playback.
  2. Select the intended scene if you need Scene Audio.
  3. Verify that the file is recognized as audio/* by the browser.
  4. Keep a single imported file within the current upload limit (5 MB in this build).
  5. Use headphones for recording and final sync review.
  6. Allow microphone access only when intentionally recording.
  7. Keep enough local memory/storage for imported or generated audio.

Browser decoding support varies. A file extension alone does not guarantee that the current browser or native WebView can decode it.

Audio library and timeline anatomy

Scribe Animator Desktop with the Audio library open and the project and scene audio lanes visible
The library manages sources; the bottom audio lane creates tracks, imports clips, records, generates voiceover, and aligns timing.
Screenshot callouts
  1. Search and Generate Voiceover
    Find private-library sources or open local AI narration.
  2. All, Recent, and Favorites
    Filters organize available library sources without changing the timeline.
  3. Signed-out private-library state
    Sign-in is required for private cloud library items, not for every local project-audio action.
  4. Project Audio actions
    Record VO, AI VO, add tracks, choose import role, import media, and add markers.
  5. Project and Scene Audio regions
    Global tracks and active-scene tracks remain visibly separate.

Visible Audio lane controls

ControlPurpose
Collapse arrow and Audio labelHides or reveals lane details without deleting tracks
Record VOStarts project voiceover recording; while recording it becomes a stop action with elapsed time
AI VOOpens local voice synthesis for project placement
+VO, +Music, +SFXCreates an empty global track with that role
Role selectorSets the default role for the next import
Project importImports media into Project Audio
+MarkerCreates a marker at the current global playhead
Focus-mode iconExpands or exits the focused audio editing layout
Settings iconOpens waveform style and other available audio-lane settings
Scene Rec VO, AI VO, +VO, +Music, +SFXSame operations scoped to the active scene
Scene importImports media into the selected scene

Tutorial 1: create a track

Use an empty track when you want to establish role and scope before adding media.

  1. Decide Project Audio or Scene Audio.
  2. Choose +VO, +Music, or +SFX in the correct section.
  3. Confirm the track appears in that section.
  4. Click its name to rename it.
  5. Use the mute control for temporary silence.
  6. Adjust its gain/volume.
  7. Drag compatible media onto the track, or use the matching import action.
Scribe Animator Desktop with a new project Voiceover audio track in the timeline
A new Voiceover track is created in Project Audio. It has a track header but no clip until media is imported, recorded, or generated.
Screenshot callouts
  1. Track-creation and import actions
    Choose the role, create a track, import, record, generate, or add a marker.
  2. Project Audio
    Tracks here use global project time and can continue across scenes.
  3. Voiceover track header
    Rename, mute, set gain, delete, and drop/import clips into the lane.

Expected result: the role-labelled track exists in the intended scope. An empty track is valid; it becomes audible only after it contains a playable clip.

Deleting a track also removes its placed clips from that track. Keep the source in the library or a backup when you may need it again.

Tutorial 2: import audio

  1. Position the playhead where the clip should begin.
  2. Choose a role from the import selector.
  3. Choose Project import or Scene import.
  4. Select a supported audio file.
  5. Review any overflow, size, or decode warning.
  6. Choose the existing target track or allow the editor to create a compatible one.
  7. Wait for waveform/source preparation.
  8. Drag or trim the clip to the required range.
  9. Preview from just before its start.

Expected result: a clip appears on the selected scope's track at the intended time and the waveform aligns with the shared playhead.

Track and clip editing

  • Click a track name to rename it.
  • Use mute to silence a track without deleting clips.
  • Adjust gain while monitoring speech clarity and clipping.
  • Drag a clip to change its start time.
  • Trim supported clip edges rather than editing the original source.
  • Drop an audio file directly on a compatible track to target it.
  • Remove a track only after checking for clips and bindings.
  • Audio-specific undo/redo can take precedence immediately after an audio interaction or while focus remains inside the audio surface.

Tutorial 3: record voiceover

  1. Connect and select the intended microphone in system/browser settings.
  2. Use headphones to reduce feedback.
  3. Position the playhead.
  4. Choose project Record VO or scene Rec VO.
  5. Allow microphone permission when the browser or OS asks.
  6. Wait for any count-in.
  7. Record a short test sentence.
  8. Choose the stop action.
  9. Listen to the take.
  10. Keep or insert the recording, or discard and repeat.
  11. Rename the track/clip so the take is identifiable.

Expected result: the accepted recording appears as a Voiceover source and clip in the selected project or scene scope.

If permission was denied, change the site/app microphone setting, close the recording UI, and reopen it. Repeatedly clicking Record does not override an OS-level denial.

Tutorial 4: generate local AI voiceover

Use local synthesis for editable scripts and rapid narration drafts. Availability is provider- and device-dependent.

  1. Choose AI VO in Project Audio or Scene Audio, or Generate Voiceover in the Audio library.
  2. Enter the final or near-final script.
  3. Choose a Provider such as an available Kokoro, Pocket, or Supertonic local provider.
  4. Choose Language.
  5. Choose a compatible Voice.
  6. For supported Supertonic setups, optionally mix two voice styles.
  7. Set Speed, or enable an approximate target duration.
  8. Choose Voice Quality:
    • performance for lower resource use;
    • higher quality for final review when supported;
    • ultra only when the platform capability and memory are suitable.
  9. Choose Placement:
    • Project Audio at playhead;
    • Scene Audio at playhead;
    • Scene Audio at scene start; or
    • Audio Library only.
  10. Review and accept any required consent/disclosure before model acquisition.
  11. Choose Generate Preview.
  12. Wait through runtime loading, model download, warm-up, generation, and WAV encoding.
  13. Play the preview.
  14. Regenerate or change the inputs if needed.
  15. Save/insert the generated result.

Expected result: the generated WAV is previewable and is saved to the library or inserted on the requested Voiceover track.

Local voice controls and constraints

  • Changing provider, language, voice, speed, quality, or script invalidates the old preview.
  • First use can download model assets.
  • Loaded-model controls can unload app-cache references; the browser may release memory later.
  • Target duration is approximate and speed is clamped to the provider's supported range.
  • Ultra quality works best with WebGPU where the UI reports it.
  • Scene insertion can ask whether to replace existing voiceover or use a new track.
  • Audio-budget overflow can require shortening narration, removing other audio, or choosing a supported overflow action.

Voice cloning safety

Where Pocket local cloning is explicitly available:

  1. Use only a voice you own or have permission to use.
  2. Confirm the permission statement.
  3. Upload or record a suitable local sample.
  4. Wait for local processing.
  5. Verify the cloned voice matches the selected language bundle.
  6. Clear the cloned voice when it is no longer needed.

Do not use cloning for impersonation, deception, or a voice without authorization. Follow visible disclosure and consent requirements.

Audio binding

Audio binding aligns one object's authored timing to a narration script segment. It is not audio-reactive animation: Scribe does not read waveform samples, loudness, or spoken words to trigger an effect. Audio and visuals already share the project playhead; a binding additionally stores a relationship and fits or constrains the object's real preset, keyframe, or Draw Step timing.

Desktop authoring, shared runtime result

Create, inspect, rebind, and remove object-to-segment bindings in the Desktop Timeline's Voiceover track. Mobile Lite plays and respects bindings already stored in the project, but it does not currently expose the Script Segment binding controls.

Do not confuse these audio concepts

ConceptWhat it meansDoes it rewrite object timing?
Clip playback syncAn audio clip and the canvas use the same playheadNo
MarkerA manual label at an important beat, word, or cueNo
Script segmentA labelled narration interval with a start and end timeNo, until an object is bound
Object bindingA persistent object-to-segment relationship with a fitting strategyYes, according to the selected action
Scene AudioTracks and clips owned by one sceneNot by itself; Scene Audio is not object binding

An imported or recorded clip does not necessarily create script segments. Generated voiceover script chunks can create them. If the Voiceover track has a waveform but no labelled segment controls, there is nothing to bind yet.

Before binding

  1. Finish the narration script and create the generated script segments.
  2. Put the segments in the correct Project or Scene Audio time scope.
  3. Set scene durations before fitting detailed object timing.
  4. Create the object's intended preset, property keys, and Draw Steps first.
  5. Select exactly one object and read its Timing Source.
  6. Save a .scribe backup before fitting many objects.
Real Scribe Animator editor with a selected mixed-timing vector and three voiceover script segments offering Bind and Fit All
The selected object has keyframes plus Draw Steps, so each real script segment offers Bind & Fit All.
Screenshot callouts
  1. Selected target object
    The segment action is calculated for the currently selected object and its real timing sources.
  2. Timing Source: Mixed
    This object has more than one timing owner, so a combined fitting action is available.
  3. Script segment actions
    The label changes with the selected object: Bind, Fit Draw, Fit Keys, Fit All, Resolve, Bound, or Rebind.
  4. Voiceover clip and shared time
    The waveform is a visual timing reference. Binding uses segment times, not waveform amplitude.

Bind an object step by step

  1. Select the object on the canvas or its object track.
  2. Expand the Scene Audio or Project Audio Voiceover track that contains script segments.
  3. Find the segment that should own the object's timing.
  4. Read the action on that segment. The label is based on the selected object's active timing sources.
  5. Choose the action once. Scribe creates the binding, sets the segment as the object's visible range, and fits only the sources named by that action.
  6. Scrub from just before the segment start through just after its end.
  7. Preview at normal speed with audio enabled.
  8. Choose the segment's bound-count badge to inspect the stored strategy.

What every segment action does

Action shownSelected object's timing stateResult
BindScene/default timing or an ordinary explicit visible rangeUses the full segment as the object's visible range without fitting keys or Draw Steps
Bind & FitAn active Preset Animation without a Draw Step driverFits the preset start and duration to the full segment
Bind & Fit DrawDraw StepsScales all of that object's Draw Steps to the full segment
Bind & Fit KeysProperty keyframesMaps the first and last key times to the segment bounds and scales keys between them
Bind & Fit AllProperty keyframes plus Draw StepsFits both sets to the segment
ResolveAnother mixed combinationOpens a choice of supported timing sources; only the chosen source is fitted, while other sources remain authored
BoundThe selected object is already attached to this segmentNo new action; inspect the existing relationship
RebindThe selected object is bound to a different segmentMoves its single binding to this segment and applies the new fit
1 bound, 2 bound, and so onOne or more objects use this segmentOpens the bound-object inspector, strategy, and unbind action

One object can be bound to at most one script segment at a time. One script segment can own multiple object bindings.

How animation sources behave with a binding

Object before bindingWhat the segment controlsWhat still behaves independently
No preset, keys, or Draw StepsThe outer visible rangeObject properties
Fade In, Scale In, Slide In, Draw In, or another active presetPreset start and duration are fitted inside the segmentUnrelated property keys unless the chosen action also fits them
Draw In + Draw StepsThe steps are fitted and remain authoritative for revealUnrelated transform/opacity keys
Property keyframesKey times are fitted; key values and interpolation remain editablePreset properties that are not replaced by matching keys
Property keys + Draw StepsBoth timing sets are fitted by Bind & Fit AllTheir property/reveal ownership remains separate
Unsupported mixed source resolved to one strategyOnly the source chosen in Resolve is retimedOther sources can still produce a Mixed result

Binding does not resolve a visual conflict between preset, keys, and Draw Steps. It only chooses which existing timing source or sources are retimed. Review Timing-source combinations before binding a complex object.

Real Scribe Animator editor with a drawable vector selected, Timing Source Draw Steps, and Bind and Fit Draw actions over voiceover segments
A drawable object with Draw Steps receives Bind & Fit Draw. The segment will scale its real Draw Step schedule rather than simulate a second animation.
Screenshot callouts
  1. Drawable object selected
    The selected vector is the target whose Draw Step times will be fitted.
  2. Draw Steps own timing
    The inspector points to the DRAW domain instead of pretending preset start and duration are authoritative.
  3. Bind & Fit Draw
    All steps targeting this object are scaled into the chosen script segment.
  4. Segment timing over waveform
    The labelled segment range, not the waveform shape, determines the fit.

Rules after binding

  • The bound segment becomes the object's outer visible range.
  • Later preset start/duration edits are constrained inside that range.
  • Fitted key times cannot be moved outside the segment, but their values remain editable.
  • Fitted Draw Steps must remain inside the segment.
  • Draw Auto-plan respects audio-owned timing. Enable Replan audio-bound objects only when you intentionally want to replace the fitted step schedule.
  • Project-time segments are converted to the active scene's local time and clamped to the part that intersects the scene.
  • A scene-time segment can bind only in its matching active scene.
  • The visible-range end does not create an automatic exit or hide. Add an explicit visibility/exit change when the object must disappear.

Inspect, rebind, unbind, and recover

Real Scribe Animator editor after binding a mixed object, showing Visible Range timing, Rebind, Bound, a bound count, strategy, and Unbind selected object
After Bind & Fit All, the selected object is constrained to 5–8 seconds. The inspector exposes its stored strategy and recovery controls.
Screenshot callouts
  1. Audio-bound visible range
    Preset timing and fitted sources must remain inside this script-segment envelope.
  2. Rebind to another segment
    Rebind moves this object from its current segment and applies the new segment fit.
  3. Bound state and count
    Bound identifies the selected relationship; the count opens every object attached to the segment.
  4. Strategy and unbind action
    Inspect whether Keys, Draw Steps, or both were fitted before removing the relationship.

Use these recovery rules:

  1. Rebind when the same object belongs to another segment. Re-preview every fitted source.
  2. Use Unbind selected object to remove the persistent relationship.
  3. Do not treat Unbind as a full time-travel operation:
    • a previous explicit visible range can be restored when one was recorded;
    • key/composite key times can be scaled back when a prior range exists;
    • preset timing and draw-only/composite Draw Step timing are not guaranteed to return to their exact pre-fit arrangement.
  4. Use Undo immediately after binding or fitting when exact restoration matters.
  5. Save a checkpoint or .scribe package before bulk binding/rebinding.

Retiming, deletion, duplication, and persistence

  • Moving a linked audio clip can shift its script-segment timestamps, but it does not automatically refit an object that was already bound. After a clip/segment timing change, the safest workflow is Unbind, bind again, and preview.
  • Deleting the segment, clip, track, or source removes the binding record. It does not restore every fitted object time.
  • Duplicating a scene copies its Scene Audio tracks and clips, but it does not clone script-segment bindings as a new independent authoring set.
  • .scribe save/load preserves valid script segments, bindings, and fitted timing.
  • Converting bound text to an outline preserves a valid supported binding.
  • Binding is deterministic project state; it does not require cloud playback, account state, or waveform analysis.

Audio Binding troubleshooting

ProblemWhat to check
Waveform exists but no Bind actionConfirm that generated script segments exist; import/record alone may create only a source and clip
Wrong action label appearsRe-select the intended object and read its Timing Source; the label is object-specific
Resolve appearsChoose the timing source you intend to fit, then inspect the other source separately
Object moves correctly but does not drawConfirm the object is path-backed, Draw In is selected, and Draw Steps target that object
Key or Draw Step cannot moveIt may be constrained by the bound segment; inspect the binding range
Object does not disappear at segment endBinding does not author an exit; add a visibility or exit change explicitly
Audio/visual sync changed after moving a clipUnbind and bind again so the object's sources are fitted to the new segment times
Unbind did not restore old timingUndo the bind/fit action or restore a saved checkpoint/package
Binding controls are missing on Mobile LiteUse Desktop to author them; Mobile Lite currently consumes existing bindings only

Tutorial 5: add markers and synchronize scenes

  1. Put the playhead on an important word, beat, or cue.
  2. Choose +Marker.
  3. Enter the marker label/type and optional color.
  4. Use markers as references while adjusting scenes, object timing, draw steps, and camera keys.
  5. Bind narration segments to objects only when the workflow requires it.
  6. Preview across each scene boundary.
  7. Export a short test and confirm the final mix.

For spoken explainers, narration is usually the pacing source. Lengthen scenes to preserve understandable speech rather than speeding every visual action.

Limitations

  • The current file picker accepts browser-recognized audio/*; actual decoding depends on browser/native support.
  • This build enforces a 5 MB audio upload limit.
  • Private cloud audio library items require sign-in; local project work does not always require cloud access.
  • Browser-generated blob URLs need persistence/hydration to survive a full restart.
  • Local AI models require compatible assets, memory, language support, and sometimes WebGPU/native capabilities.
  • Generated duration is approximate.
  • Voice recording requires explicit microphone permission.
  • Overlapping narration clips can reduce intelligibility.
  • Scene Audio is constrained to its scene context; Project Audio uses global time.
  • Static SVG export contains no audio.

Troubleshooting and recovery

ProblemRecovery
Private Audio library is empty while signed outSign in only if you need private cloud sources; use local import for local media
Imported file is ignoredConfirm the browser reports an audio/* MIME type and the file is decodable and within limits
Track exists but is silentAdd a clip, unmute the track, raise gain, and check source hydration
Waveform is missingWait for processing, confirm the source decoded, and reopen the project only after persistence completes
Recording will not startCheck OS/browser permission, input device, secure context, and whether another app owns the microphone
Recording has echoUse headphones and reduce speaker monitoring
AI model will not loadTry a supported provider/quality, free memory, confirm assets/network for first load, or use recorded/imported narration
AI generation failsShorten text, choose a supported language/voice, lower quality, and retry once
Generated clip exceeds sceneExtend the scene, insert at scene start, replace conflicting narration, or use another track intentionally
Audio is out of sync after restoreWait for hydration/reconciliation, verify scope, then compare clip and scene time
Export is silentCheck track mute/gain, source availability, exporter audio support, and final mux
Audio edit cannot be undoneKeep focus in the audio surface and use undo immediately after the audio action