Skip to content

JustinPMoran/Vocal-Mixer-Pro

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎓 Vocal Mixer Pro

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.

Design Philosophy

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.

Installation

npm install tone lucide-react

Make sure you have a Vite + React project with Tailwind CSS configured.

Quick Start

1. Set up Vite + React + Tailwind (if starting fresh)

npm create vite@latest my-vocal-mixer -- --template react
cd my-vocal-mixer
npm install
npm install -D tailwindcss postcss autoprefixer
npx tailwindcss init -p

2. Configure Tailwind

Update 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;

3. Install dependencies

npm install tone lucide-react

4. Use the component

Replace your src/App.jsx with:

import VocalMixer from './VocalMixer'

function App() {
  return <VocalMixer />
}

export default App

5. Run the app

npm run dev

Audio Processing Chain

The component implements a professional audio processing chain:

  1. High-Pass Filter (30Hz @ -24dB/oct)
    Removes imperceptible sub-bass rumble that wastes headroom

  2. 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
  3. Safety Limiter (-0.5dB ceiling)
    Catches peaks and prevents clipping

  4. 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

Features

🎚️ Audio Processing

  • ✅ 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

🎨 Academia/Classical Design System

  • 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

Technical Details

  • 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

🎨 Design System

This application uses the Academia/Classical design system, which transforms the interface into a scholarly, prestigious experience. Key design elements include:

Color Palette (Library at Night)

  • 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

Typography Hierarchy

  1. Cormorant Garamond - Headings and titles (high-contrast serif)
  2. Crimson Pro - Body text and descriptions (reading-optimized serif)
  3. Cinzel - Labels, buttons, Roman numerals (engraved display font)

Signature Elements

  • 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.

Browser Compatibility

Works in all modern browsers that support the Web Audio API:

  • Chrome/Edge 90+
  • Firefox 88+
  • Safari 14+

Performance

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.

License

MIT

About

Vocal Mixer Pro is a browser-based audio processing tool that transforms raw recordings into broadcast-ready content. Using professional DSP algorithms (filtering, compression, limiting, normalization), it optimizes vocal audio for social media; all client-side for privacy. Features a classical academia design inspired by university libraries.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors