A professional automatic vocal processing tool built with React and the Web Audio API, presented in a prestigious Academia/Classical design system. Upload an audio file, click process, and get broadcast-ready audio optimized for social media—all within an interface that evokes the gravitas of a classical university library.
This application combines cutting-edge audio processing with a timeless aesthetic inspired by:
- Centuries-old university libraries
- Victorian study halls and reading rooms
- Renaissance manuscripts and illuminated texts
- Classical typography and ornate craftsmanship
Every element—from the polished brass accents to the Roman numeral section labels—has been carefully designed to create an atmosphere of scholarly gravitas and prestige.
npm install tone lucide-reactMake sure you have a Vite + React project with Tailwind CSS configured.
npm create vite@latest my-vocal-mixer -- --template react
cd my-vocal-mixer
npm install
npm install -D tailwindcss postcss autoprefixer
npx tailwindcss init -pUpdate tailwind.config.js:
export default {
content: [
"./index.html",
"./src/**/*.{js,ts,jsx,tsx}",
],
theme: {
extend: {},
},
plugins: [],
}Update src/index.css:
@tailwind base;
@tailwind components;
@tailwind utilities;npm install tone lucide-reactReplace your src/App.jsx with:
import VocalMixer from './VocalMixer'
function App() {
return <VocalMixer />
}
export default Appnpm run devThe component implements a professional audio processing chain:
-
High-Pass Filter (30Hz @ -24dB/oct)
Removes imperceptible sub-bass rumble that wastes headroom -
Dynamic Rumble Control (Multiband Compression)
- Low band (below 60Hz): 4:1 ratio, -24dB threshold
- Dynamically tames rumble only when it gets too loud
- Leaves vocal frequencies untouched
-
Safety Limiter (-0.5dB ceiling)
Catches peaks and prevents clipping -
Auto-Leveling (Normalization to -1.0dB)
- Analyzes the entire processed file
- Finds the highest peak
- Scales all samples to reach -1.0dB (0.89 amplitude)
- Ensures consistent loudness for social media
- ✅ Professional DSP chain (high-pass, multiband compression, limiting, normalization)
- ✅ Faster-than-real-time processing using
Tone.Offline(2-3x speed) - ✅ Support for WAV and MP3 files
- ✅ In-browser audio preview
- ✅ Download as 16-bit WAV file
- ✅ Automatic loudness normalization to -1.0dB (social media optimized)
- ✅ Real-time processing progress indicator
- ✅ Brass interactive elements - Polished brass (#C9A962) for all buttons, icons, and hover states
- ✅ Classical typography - Three distinct serif fonts (Cormorant Garamond, Crimson Pro, Cinzel)
- ✅ Roman numeral section labels - "Volume I", "Volume II" with ornate styling
- ✅ Corner flourishes - Brass brackets framing the main interface like a certificate
- ✅ Ornate dividers - Gradient lines with centered decorative glyphs (✶)
- ✅ Engraved text effects - Pressed-into-metal appearance on buttons
- ✅ Atmospheric vignette - Radial gradient creating library lighting effect
- ✅ Warm color palette - Deep mahogany, aged oak, antique parchment tones
- ✅ Accessible design - 8.5:1 contrast ratios, visible focus states, semantic HTML
- Frontend: React 18+ with Hooks
- Audio Engine: Native Web Audio API (OfflineAudioContext for fast rendering)
- Styling: Tailwind CSS + Custom Academia/Classical Design System
- Typography: Google Fonts (Cormorant Garamond, Crimson Pro, Cinzel)
- Icons: Lucide React (1.5 stroke width for elegant appearance)
- Output Format: 16-bit WAV
This application uses the Academia/Classical design system, which transforms the interface into a scholarly, prestigious experience. Key design elements include:
- Deep Mahogany (#1C1714) - Main background
- Aged Oak (#251E19) - Elevated surfaces (cards)
- Antique Parchment (#E8DFD4) - Primary text
- Polished Brass (#C9A962) - All interactive elements
- Faded Ink (#9C8B7A) - Secondary text
- Wood Grain (#4A3F35) - Borders
- Cormorant Garamond - Headings and titles (high-contrast serif)
- Crimson Pro - Body text and descriptions (reading-optimized serif)
- Cinzel - Labels, buttons, Roman numerals (engraved display font)
- Corner Flourishes: Brass brackets on main card
- Roman Numerals: "Volume I", "Volume II" section labels
- Ornate Dividers: Gradient lines with centered glyphs (✶)
- Brass Gradient: Dimensional metallic buttons
- Engraved Text: Pressed-into-metal effect on buttons
For complete design system documentation, see DESIGN_SYSTEM.md.
Works in all modern browsers that support the Web Audio API:
- Chrome/Edge 90+
- Firefox 88+
- Safari 14+
Processing time is typically 30-50% of the audio duration thanks to Tone.Offline rendering. A 3-minute song processes in ~60-90 seconds on average hardware.
MIT