Real-time podcast audio normalizer for iOS. Normalizes audio to -14 LUFS with true-peak limiting, optimized for streaming playback.
- Real-time processing — Works with streaming URLs, not just local files
- ITU BS.1770-4 compliant — Industry-standard LUFS measurement
- Low CPU usage — Optimized with Apple Accelerate/vDSP
- Complete processing chain:
- Adaptive LUFS-based gain
- 80Hz high-pass filter (removes rumble)
- 2:1 compression (tames loud peaks)
- True-peak limiter (-2 dBTP ceiling)
Input → LUFS Measurement → Gain → High-Pass → Compressor → Limiter → Output (-14 LUFS)
| Stage | Parameters | Purpose |
|---|---|---|
| LUFS Gain | Target: -14 LUFS | Normalize loudness |
| High-Pass | 80 Hz, Q=0.707 | Remove rumble/hum |
| Compressor | -8 dB threshold, 2:1 ratio | Reduce dynamic range |
| Limiter | -2 dBTP ceiling, 5ms lookahead | Prevent clipping |
Normalizer/
├── VoiceBoostN/ # Core C library
│ ├── VoiceBoostN.c # Processing algorithms
│ ├── VoiceBoostN.h # Public API
│ └── VoiceBoostNAnalysis.c # Stats/analysis (optional)
├── AudioPlayer.swift # Local files (AVAudioEngine)
├── StreamingAudioPlayer.swift # Streaming (AVPlayer + MTAudioProcessingTap)
├── VoiceBoostNProcessorC.swift # Swift wrapper for C code
└── ContentView.swift # SwiftUI interface
scripts/
├── analyze_podcast.sh # Process + quality report
├── process_podcast.sh # Process audio file
└── audio_quality_test.sh # Artifact detection
- Open
Normalizer.xcodeprojin Xcode - Build and run (Cmd+R)
- Add audio files to
Normalizer/Files/or use streaming URLs - Toggle VoiceBoostN on/off to compare
- Use "Validate" for instant quality check
# Process a podcast
./scripts/process_podcast.sh input.mp3 output.wav
# Process with full quality report
./scripts/analyze_podcast.sh input.mp3
# Test processed file for artifacts
./scripts/audio_quality_test.sh output.wav input.mp3iOS App:
- Xcode 14+
- iOS 15+ / macOS 12+
Command Line:
- ffmpeg / ffprobe
- python3, bc
See CLAUDE.md for detailed technical documentation of the algorithm, AVPlayer integration, and optimization strategies.