Skip to content

gajanansr/audioEngine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

13 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸŽ™οΈ AutoMix

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


πŸš€ What is AutoMix?

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.


✨ What Makes AutoMix Different?

Vs. Traditional DAWs (Logic, Ableton, FL Studio)

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

Vs. Auto-Tune Apps (Voloco, StarMaker)

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

🎯 Key Differentiators

  1. 🧠 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.

  2. πŸ“± 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.

  3. 🎚️ 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
  4. πŸ”¬ Reference Track Matching
    Upload a reference song you love, and AutoMix will analyze its vocal tone and match your mix to that professional sound.

  5. ⚑ Real-Time Preview + Cloud Render
    Hear changes instantly in your browser, then render final high-quality audio in the cloud with zero compression.


πŸ”§ Features

Core Audio Processing

  • βœ… 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

AI Features

  • 🎡 Automatic key and scale detection
  • πŸ‘€ Gender-aware processing (different EQ curves)
  • 🎀 Phone recording quality detection
  • πŸ“Š Reference track tonal matching
  • πŸŽ›οΈ Smart parameter optimization

πŸ—οΈ Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    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   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Tech Stack

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)

πŸš€ Quick Start

Prerequisites

  • Node.js 18+
  • npm or yarn
  • Supabase account (free tier works)

Installation

# 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 dev

The app will be available at http://localhost:5173

Environment Variables

# 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-1

πŸ“ Project Structure

audioEngine/
β”œβ”€β”€ 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

🀝 Contributing

We welcome contributions from developers of all skill levels! Here's how you can help:

Ways to Contribute

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

Development Setup

  1. Fork the repository

  2. Clone your fork

    git clone https://github.com/YOUR_USERNAME/audioEngine.git
    cd audioEngine
  3. Create a branch

    git checkout -b feature/your-feature-name
  4. Install dependencies

    npm install
    cd web && npm install
  5. Make your changes

    • Follow the existing code style
    • Add tests for new features
    • Update documentation as needed
  6. Run tests

    npm run test
    npm run lint
  7. Commit your changes

    git add .
    git commit -m "feat: add your feature description"

    We follow Conventional Commits:

    • feat: New feature
    • fix: Bug fix
    • docs: Documentation
    • refactor: Code refactoring
    • test: Adding tests
    • chore: Maintenance
  8. Push and create PR

    git push origin feature/your-feature-name

    Then open a Pull Request on GitHub.

Good First Issues

Look for issues labeled good first issue β€” these are great for newcomers:

  • πŸ“š Documentation improvements
  • πŸ§ͺ Adding unit tests
  • 🎨 UI polish
  • πŸ› Small bug fixes

Code Style

  • TypeScript for all code
  • ESLint for linting
  • Prettier for formatting (coming soon)
  • Meaningful variable/function names
  • Comments for complex DSP algorithms

Plugin Development

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.


πŸ—ΊοΈ Roadmap

  • 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

πŸ“„ License

This project is licensed under the MIT License β€” see the LICENSE file for details.


πŸ™ Acknowledgments

  • RNNoise β€” Neural network noise suppression
  • Essentia.js β€” Audio analysis library
  • Supabase β€” Backend infrastructure

πŸ“¬ Contact

Have questions? Open an issue or reach out!


Made with ❀️ for musicians who just want to sound good

About

AutoMix is an AI-powered web-based audio engine that helps beginners turn raw, phone-recorded vocals into professional, studio-quality songs - without needing mixing or mastering knowledge.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors