Skip to content
Story AI ✦ Features Pricing Blog Try Demo — free →

Audio Controls — Per-Clip Volume, Fades, Channel Routing and Auto-Duck

Tomislav Brdjanović
Published date:

An editorial tool is not a full NLE — but that is not an excuse for ignoring audio. A documentary interview with a mic that recorded 6 dB hot, ambient music that drowns out every sentence, or a sync clip with only one usable channel: these are real problems that belong in the edit session, not in a separate pass after export.

AVScript’s per-clip audio panel addresses them without requiring you to leave the editor. Volume, fades, channel routing, automatic music ducking, and one-click loudness normalisation — all in the browser, all exportable to Final Cut Pro as native FCPXML audio metadata.


Opening the audio panel

Every clip row in the Clip List has a small 🔊 button on the right side. Click it to open the Audio Controls panel for that clip. The panel appears inline beneath the clip row and stays open until you click the 🔊 button again.

You can have multiple clip audio panels open at the same time — useful when comparing levels across adjacent clips.


The panel

🔊 Audio Controls
interview_ceo_a.mp4
Volume
150%
🔇
Peak
−∞−18−12−60 dBFS
Channel
L
L+R
R
Fade In
1.0s
Fade Out
1.5s

Auto-Duck Lower this clip to −12 dB when speech is detected from Whisper transcripts

Normalize All Measure peak across all clips and equalise loudness with one click

⊙ Normalize All

Volume and Mute

The Volume slider runs from 0% (silent) to 200% (double the original gain). The default is 100%. Drag left to pull back a hot microphone; drag right to boost a distant or ambient source.

The Mute toggle (🔇) silences the clip entirely without changing the slider position — useful when you want to audition the picture cut without hearing a particular clip.


Peak meter

The Peak meter shows two bars — one per channel (L and R). The meter is live during playback: press L or Space while the audio panel is open and watch the bars move. The colour ramp goes from green (safe) through yellow (−6 to −3 dBFS) to orange-red (near 0 dBFS clipping). The meter uses a AnalyserNode from the Web Audio API — no server processing, no latency.


Channel routing

Three pills let you choose which channel of a stereo file is heard during playback and retained on export:

Field recording tip: Many camera operators record boom on the left channel and a reference mix on the right. Set your interview clips to L before you start editing — you get clean boom audio in every clip without touching the source files.


Fade In / Fade Out

Both sliders run from 0.0 s to 5.0 s. The fade shape is an exponential ramp — the same algorithm Final Cut Pro uses for audio transitions — implemented via the Web Audio API setTargetAtTime method. This means fades that preview in the browser will match exactly when the FCPXML is opened in FCP.

A 0.5 s fade in and a 1.0 s fade out is usually enough to remove hard audio cuts without noticeably shortening the perceptual duration of the clip.


Auto-Duck

Enable Auto-Duck on any ambient or music clip. When active, AVScript reads the Whisper transcription data from every other clip in the project and automatically lowers this clip’s level to −12 dB whenever a speaker is detected talking. When the speech segment ends, the level fades back up.

The dip and recovery are both short fades — typically 0.3 s — to avoid abrupt level jumps. The whole process is calculated from timecodes already in the project; no re-processing is needed.

Requires transcription: Auto-Duck reads speech segment timecodes from Whisper transcripts. If a clip in the project has not been transcribed yet, Auto-Duck treats it as silence — the music will not duck under that clip’s dialogue. Run Transcription first on all interview clips for best results.


Normalize All

Click ⊙ Normalize All to measure the peak of every clip in the project during a short silent analysis pass, then calculate a gain adjustment for each clip that brings all of them to the same target loudness (−14 LUFS integrated). Each clip’s Volume slider updates to reflect the new gain. The source files are never modified.

Use this before exporting a first assembly cut to send to a director — it removes the obvious loudness imbalances so the cut feels like a real edit rather than a collection of raw clips.


FCPXML export

All audio settings round-trip to Final Cut Pro through FCPXML metadata:

AVScript settingFCPXML element
Volume %<adjust-volume amount="...dB">
Mute<adjust-volume amount="-∞dB">
Fade In<fade-in duration="...s" type="easeIn">
Fade Out<fade-out duration="...s" type="easeOut">
Channel routing<channel-mapping> per clip

When you import the FCPXML into Final Cut Pro, every clip arrives with its audio settings already applied — you do not need to redo them in the NLE.


Technical note

Everything in the audio panel runs locally in the browser via the Web Audio API. AVScript creates a GainNode chain for each clip — volume → channel splitter/merger → fade envelope — and connects them to the HTML5 <video> element’s audio source. No audio data is ever sent to a server. Playback processing happens entirely on your machine, in real time, at whatever sample rate the browser negotiates with your audio hardware.

Browser compatibility: The Web Audio API is available in all modern browsers. If you are on a very old machine and notice audio glitches during playback, try reducing the number of simultaneously open audio panels or closing other browser tabs that play media.

Previous
CoWork — Real-Time Video Collaboration Inside the Editor
Next
Motion Graphics Generator — Titles, Lower Thirds and Countdowns Inside the Editor