AI-Powered Audio Engine for Studio-Quality Vocals
Transform phone-recorded vocals into professional, studio-quality songs — no mixing or mastering knowledge required.
Features • What's Different • Quick Start • Architecture • Contributing
AutoMix is a web-based AI audio engine designed specifically for beginners who want to create professional-sounding music without years of audio engineering experience. Upload your phone-recorded vocals, and our AI handles everything — from noise reduction to pitch correction to professional mastering.
| Feature | Traditional DAWs | AutoMix |
|---|---|---|
| Learning Curve | Months to years | Minutes |
| Plugin Knowledge | 50+ plugins to master | Zero plugins to learn |
| Mixing Expertise | Required | AI handles it |
| Price | $200-$600+ | Free/Affordable |
| Platform | Desktop only | Web-based, any device |
| Feature | Auto-Tune Apps | AutoMix |
|---|---|---|
| Processing | Pitch only | Full vocal chain |
| Quality | Basic | Studio-grade |
| Intelligence | Rule-based | AI-adaptive |
| Output | Processed vocals | Complete mixed song |
-
🧠 AI-Powered Smart Mixing
Unlike simple auto-tune apps, AutoMix analyzes your vocal characteristics and automatically applies a complete professional mixing chain — EQ, compression, de-essing, reverb, and more — optimized for YOUR voice. -
📱 Phone Recording Specialist
Built specifically to rescue phone recordings. Our AI detects and fixes common phone recording issues: room noise, harsh frequencies, inconsistent levels, and more. -
🎚️ Simplified Macro Controls
Instead of 100+ confusing parameters, users get just 4 intuitive sliders:- AutoTune Strength — Natural to T-Pain
- Reverb Amount — Dry to ambient
- Polish Level — Raw to studio sheen
- Vocal Loudness — Quiet to punchy
-
🔬 Reference Track Matching
Upload a reference song you love, and AutoMix will analyze its vocal tone and match your mix to that professional sound. -
⚡ Real-Time Preview + Cloud Render
Hear changes instantly in your browser, then render final high-quality audio in the cloud with zero compression.
- ✅ Intelligent Gain Staging — Auto-normalize to optimal levels
- ✅ Noise Reduction — Neural network-powered (RNNoise)
- ✅ Dynamic EQ — Subtractive (mud/harshness removal) and additive (presence/air)
- ✅ Multi-stage Compression — Leveling + Control compression
- ✅ Professional De-Esser — Dynamic sibilance control
- ✅ AutoTune — Key-aware pitch correction with humanization
- ✅ Saturation — Tube harmonics for warmth
- ✅ Reverb & Delay — Space and dimension
- ✅ Mastering Chain — Multiband compression + true-peak limiting
- 🎵 Automatic key and scale detection
- 👤 Gender-aware processing (different EQ curves)
- 🎤 Phone recording quality detection
- 📊 Reference track tonal matching
- 🎛️ Smart parameter optimization
┌────────────────────────────────────────────────────────┐
│ CLIENT (PWA) │
│ React Frontend + Web Audio API + AudioWorklet │
├────────────────────────────────────────────────────────┤
│ ↓ │
├────────────────────────────────────────────────────────┤
│ BACKEND API │
│ Supabase (Auth + DB + Storage + Edge Functions) │
├────────────────────────────────────────────────────────┤
│ ↓ │
├────────────────────────────────────────────────────────┤
│ WORKER (Cloud Render) │
│ Docker container for offline high-quality rendering │
└────────────────────────────────────────────────────────┘
| Component | Technology |
|---|---|
| Frontend | React 18, TypeScript, Vite |
| Audio Engine | Web Audio API, AudioWorklet |
| Backend | Supabase (Postgres, Auth, Storage, Edge Functions) |
| Workers | Docker, Node.js |
| Pitch Detection | Essentia.js / Custom algorithms |
| Noise Reduction | RNNoise (WASM) |
- Node.js 18+
- npm or yarn
- Supabase account (free tier works)
# Clone the repository
git clone https://github.com/gajanansr/audioEngine.git
cd audioEngine
# Install dependencies
npm install
# Copy environment template
cp .env.example .env
# Fill in your Supabase credentials in .env
# Build the audio engine
npm run build
# Start the web app
cd web
npm install
npm run devThe app will be available at http://localhost:5173
# Supabase
SUPABASE_URL=https://your-project.supabase.co
SUPABASE_ANON_KEY=your-anon-key
SUPABASE_SERVICE_KEY=your-service-key
# Worker (optional, for cloud rendering)
POLL_INTERVAL_MS=5000
WORKER_ID=worker-1audioEngine/
├── src/ # Core audio engine (TypeScript)
│ ├── core/ # Audio graph management
│ ├── plugins/ # DSP plugins (EQ, Compressor, etc.)
│ │ ├── dynamics/ # Compressor, Limiter, De-Esser
│ │ ├── eq/ # Parametric EQ
│ │ ├── effects/ # Reverb, Delay, Saturation
│ │ └── pitch/ # AutoTune, Pitch Detection
│ ├── ai/ # AI analyzers & optimizers
│ ├── chains/ # Vocal chain configurations
│ └── macros/ # User-facing macro controls
├── web/ # React frontend
│ └── src/
│ ├── components/ # UI components
│ ├── pages/ # Route pages
│ └── hooks/ # Custom React hooks
├── worker/ # Cloud rendering worker
├── supabase/ # Database schema & types
└── docs/ # Documentation
We welcome contributions from developers of all skill levels! Here's how you can help:
| Type | Description |
|---|---|
| 🐛 Bug Reports | Found a bug? Open an issue with steps to reproduce |
| 💡 Feature Requests | Have an idea? Open a discussion or issue |
| 📝 Documentation | Improve README, add examples, write tutorials |
| 🔧 Code | Pick an issue and submit a PR |
| 🧪 Testing | Write tests, find edge cases |
| 🎨 Design | UI/UX improvements |
-
Fork the repository
-
Clone your fork
git clone https://github.com/YOUR_USERNAME/audioEngine.git cd audioEngine -
Create a branch
git checkout -b feature/your-feature-name
-
Install dependencies
npm install cd web && npm install
-
Make your changes
- Follow the existing code style
- Add tests for new features
- Update documentation as needed
-
Run tests
npm run test npm run lint -
Commit your changes
git add . git commit -m "feat: add your feature description"
We follow Conventional Commits:
feat:New featurefix:Bug fixdocs:Documentationrefactor:Code refactoringtest:Adding testschore:Maintenance
-
Push and create PR
git push origin feature/your-feature-name
Then open a Pull Request on GitHub.
Look for issues labeled good first issue — these are great for newcomers:
- 📚 Documentation improvements
- 🧪 Adding unit tests
- 🎨 UI polish
- 🐛 Small bug fixes
- TypeScript for all code
- ESLint for linting
- Prettier for formatting (coming soon)
- Meaningful variable/function names
- Comments for complex DSP algorithms
Want to add a new audio plugin? Here's the interface to implement:
interface AudioPlugin {
id: string;
name: string;
type: 'insert' | 'send';
bypass: boolean;
process(input: Float32Array, output: Float32Array): void;
setParameter(name: string, value: number): void;
getParameter(name: string): number;
getParameterDescriptors(): ParameterDescriptor[];
}See src/plugins/base/BasePlugin.ts for the base class, and check existing plugins for examples.
- Core audio graph manager
- Basic plugins (EQ, Compressor, Limiter)
- AutoTune module
- AI parameter optimizer
- Macro control system
- WASM pitch correction (higher quality)
- RNNoise integration
- Reference track matching
- Cloud rendering pipeline
- Mobile-optimized UI
- Preset system
This project is licensed under the MIT License — see the LICENSE file for details.
- RNNoise — Neural network noise suppression
- Essentia.js — Audio analysis library
- Supabase — Backend infrastructure
Have questions? Open an issue or reach out!
Made with ❤️ for musicians who just want to sound good