ClipHack
Clip prep for macOS. Process broadcast clips — noise reduction, dynamic leveling, loudness normalization, brick-wall limiting — before dropping them into a mix.
What is ClipHack?
ClipHack is a macOS utility for preparing broadcast audio clips — news stories, promos, inserts — before they go into a podcast, show, or mix. It runs each clip through a configurable FFmpeg pipeline and outputs a 24-bit WAV at your target sample rate.
The typical use case: you have a clip from a broadcast source that's inconsistently leveled, noisy, or peaking hot. Drop it into ClipHack, enable the stages you need, click Process. The output is ready to drop into your DAW.
What ClipHack is not
ClipHack is not a mastering tool or a final delivery step. It's a pre-edit prep tool. If you need EBU R128 delivery normalization or MP3 export for your finished mix, use WaxOff.
First Launch
xattr -cr /Applications/ClipHack.app
After running that command, ClipHack will open normally. You only need to do this once.
Getting Started
- Configure your settings in the right panel — sample rate, ceiling, and any optional processing stages.
- Drag and drop audio files onto the window, or drag them into the file list on the left.
- Click Process.
- Output files are saved alongside the originals, or in your chosen output folder if you've set one.
You can queue up a batch before hitting Process. Files are processed in parallel — a batch of 10 clips takes roughly as long as the longest single clip.
Update Checker
ClipHack checks for new releases on launch and via Help → Check for Updates. If an update is available, you'll see a prompt with a link to the release page.
Interface
File List (left panel)
Drag files here to add them. Each row shows the filename, processing status, and — after analysis — RMS level, peak level, and LUFS. A warning badge appears when the noise floor is high enough to affect level accuracy.
Select a file to see its waveform. For stereo files, L and R channels are displayed separately with independent amplitude scales.
Waveform (center)
Shows the selected file's waveform. Stereo files display both channels stacked with L on top. The amplitude axis is calibrated in dBFS.
Settings Panel (right)
All processing controls live here. Toggle the panel open or closed with the ☰ button in the toolbar. Settings are saved between sessions.
Toolbar
- Process — start processing all queued files
- Remove — remove the selected file from the queue
- Clear — clear all files from the queue
- ☰ — toggle the settings panel
Processing Pipeline
Each stage is optional except the final limiter. Stages run in this order:
-
Resample Resamples to the target sample rate. Skipped if the file is already at the target rate. Preserves the original channel count.
-
Noise Reduction optional RNNoise neural network model via arnndn. Attenuates broadband background noise — hiss, room tone, HVAC. For stereo files, each channel is processed independently, then recombined, so the stereo image is preserved.
-
Channel Extraction For mono output from a stereo source, extracts the selected channel (Left or Right) using an explicit pan filter. Skipped for stereo input when Stereo Output is on.
-
Level Audio optional Dynamic leveling via FFmpeg's dynaudnorm. Evens out level variation across the clip. Three parameters — frame size, Gaussian smoothing, and max gain — scale together from Gentle to Aggressive.
-
Loudness Norm optional Two-pass EBU R128 loudness normalization. First pass measures integrated loudness; second pass applies a linear gain to hit the target LUFS. Runs before the limiter.
-
Brick-Wall Limiter 2× oversampled true peak limiting at the configured ceiling. Always applied as the final stage. Output format: 24-bit WAV.
Settings Reference
Output
| Setting | Range | Description |
|---|---|---|
| Sample Rate | 44.1 kHz / 48 kHz | Output sample rate. 44.1 kHz for most podcast use; 48 kHz for broadcast and video. |
| Stereo Output | on / off | Force stereo output. Upmixes mono sources to dual-mono stereo. When off, all output is mono. |
| Channel | Left / Right | For mono output from a stereo source, selects which channel to use. Disabled when Stereo Output is on. Uses an explicit pan filter — not a downmix average. |
| Ceiling | −6 to −1 dB | Brick-wall limiter ceiling. Sets the maximum true peak level of the output. −1 dBTP is standard for podcast insertion. |
Noise Reduction
| Setting | Range | Description |
|---|---|---|
| Noise Reduction | on / off | Enables RNNoise ML noise suppression. Best for clips with consistent background noise (HVAC, room hiss). Not designed for music. |
Level Audio
| Setting | Range | Description |
|---|---|---|
| Level Audio | on / off | Enables dynaudnorm dynamic leveling. Evens out level variation within a clip. Best for broadcast sources with varying levels — not recommended for dialog or music. |
| Aggressiveness | Gentle → Aggressive | Controls how quickly the leveler responds to level changes. See the table below. |
Aggressiveness Parameters
Three dynaudnorm parameters scale together as you move the slider:
| Level | Frame Size | Gaussian (g) | Max Gain |
|---|---|---|---|
| Gentle | 750 ms | 31 | 8× |
| Low | 600 ms | 25 | 11× |
| Medium | 450 ms | 19 | 14× |
| High | 300 ms | 13 | 17× |
| Aggressive | 150 ms | 7 | 20× |
Three parameters are always fixed: RMS-based measurement (responds to perceived loudness, not transient peaks), channel-coupled (L and R get the same gain, preserving the stereo image), and boundary extension (gain holds steady at the start and end of the file rather than tapering to zero).
Loudness Normalization
| Setting | Range | Description |
|---|---|---|
| Loudness Norm | on / off | Enables two-pass EBU R128 loudness normalization. Linear gain only — no dynamic processing. |
| Target | −30 to −14 LUFS | Normalization target. −16 LUFS is a common podcast insertion target. Use a lower target (e.g. −23 LUFS) for broadcast compliance. |
Output Directory
By default, processed files are saved in the same directory as the source file. Use Choose… to set a custom output folder. Click Reset to return to the default behavior.
Output Naming
Output filenames encode what processing was applied:
{original-name}-{rate}{nr-}{leveled-}{norm-}clipped-{limit}dB.wav
Tokens
| Token | When Present | Example |
|---|---|---|
{rate} |
Always | 44k or 48k |
nr- |
Noise Reduction was applied | nr- |
leveled- |
Level Audio was applied | leveled- |
norm- |
Loudness Norm was applied | norm- |
{limit}dB |
Always | 1dB, 3dB, etc. |
Examples
clip-44kclipped-1dB.wav
clip-44knr-clipped-1dB.wav
clip-48knr-leveled-norm-clipped-3dB.wav
Supported Formats
ClipHack bundles FFmpeg and accepts any format it can decode:
WAV, AIFF, AIF, MP3, FLAC, M4A, OGG, Opus, CAF, WMA, AAC, MP4, MOV
All output is 24-bit WAV at the configured sample rate.