Audio Editor
WAV audio editor with DSP effects, visualization and real-time processing via XAudio2
C++ · XAudio2 · DSP · Audio · WAV
Desktop audio editor for WAV files with DSP effects, waveform visualization and real-time processing.
Context
School project GTech3, 6 weeks. Team of 3, role: DSP and audio engine developer.
Exploring digital signal processing fundamentals through a practical audio editing application.
School Requirements
- Parse and play WAV files
- Waveform display
- Implement at least 2 DSP effects
- Windows audio API, latency < 50ms
Our Implementation
Beyond the requirements (2 effects required):
- 4 complete DSP effects: EQ, compression, reverb, delay
- Non-destructive editing: preview before applying
- Advanced selection tools: sample-accurate cut/copy/paste
- Extended format support: 8/16/24-bit, mono/stereo
Links
- Private repository (school).
Architecture
Audio pipeline with chainable effects:
WAV File → Parser → [Effect Chain] → XAudio2 → Output
│
┌──────────────────┼──────────────────┐
│ │ │
EQ Compressor Reverb
(Biquad) (RMS) (Convolution)
Tech Stack
| Tech | Version | Role |
|---|---|---|
| C++ | 17 | Core language |
| XAudio2 | Windows API | Real-time audio engine |
| Win32/ImGui | - | User interface |
| WAV Parser | Custom | Audio file reading |
Custom WAV Parser
- RIFF header parsing
- Formats: 8/16/24-bit, mono/stereo
- Chunk navigation and metadata
- Beyond the required 16-bit
DSP Effects Implemented
- Parametric EQ: Biquad filters per band
- Compressor: RMS detection with attack/release
- Reverb: Convolution basics
- Delay: Delay lines with feedback
Specifications
- Latency: < 50ms (Windows audio API)
- Non-destructive editing with preview
- Sample-accurate selection: cut/copy/paste