Skip to content

Guitariz/Guitariz

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

244 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Guitariz Studio

🎸 Guitariz Studio

The Open-Source Digital Workbench for Modern Musicians

AI-powered chord detection · Stem isolation · Interactive theory tools · All in one place.


Release License CI Live

React TypeScript Vite Python FastAPI PyTorch

🌐 Live Demo · 🐛 Report Bug · ✨ Request Feature



📖 About

Guitariz Studio is a full-stack, professional-grade music platform that bridges the gap between traditional music theory and modern AI. It brings together AI-powered source separation, real-time chord recognition, interactive instrument simulations, and gamified ear training—all within a single, beautifully crafted web application.

Whether you're a songwriter dissecting harmonies, a student mastering intervals, a producer isolating stems, or a developer pushing the boundaries of music tech—Guitariz is built for you.

🎯 Try it now → guitariz.studio


✨ Features

🤖 Audio Intelligence

Feature Description
Chord AI Upload any audio file and get real-time chord recognition powered by Hidden Markov Models via Madmom.
Stem Separator Isolate vocals, drums, bass, and other instruments using Meta's state-of-the-art Demucs deep learning model.
Vocal Splitter One-click vocal extraction for creating instrumentals or acapellas from any track.
Precision Tuner Advanced chromatic tuner with cent-level accuracy for guitar, bass, ukulele, and vocals.

🎮 Interactive Learning

Feature Description
Ear Training Arcade Gamified modules for interval recognition, chord identification, and perfect pitch training with streak tracking.
Scale Explorer Visualize 50+ Western and Eastern scales across the Circle of Fifths, with modal breakdowns and theory context.
Virtual Fretboard Fully interactive 24-fret guitar simulation with real-time interval mapping, note highlighting, and 3D view.
Virtual Piano 88-key piano with chord/scale overlays and keyboard shortcut support.

🛠️ Platform & DX

Feature Description
Progressive Web App Fully installable on desktop and mobile with offline-ready service worker support.
Dark-Mode-First UI Sleek glassmorphism aesthetic with Framer Motion micro-animations, designed for creative environments.
Configurable Navbar Switch between horizontal and vertical navigation layouts to match your workflow.
Metronome Professional metronome with adjustable BPM, time signatures, and visual beat indicator.
CI/CD Pipeline Automated linting, testing, and build validation via GitHub Actions.

⚡ Architecture

Guitariz uses a hybrid architecture to balance interactive client-side performance with heavy server-side AI computation.

graph TD
    subgraph Client ["🖥️ Client — React / Vite"]
        UI["Glassmorphism UI<br/>(Tailwind + Framer Motion)"]
        State["TanStack Query + Context API"]
        AudioEngine["Web Audio API Engine"]
        Proxy["Vite CORS Proxy Middleware"]

        UI --> State --> AudioEngine
        AudioEngine --> Proxy
    end

    subgraph Server ["🧠 AI Service — Python / FastAPI"]
        API["FastAPI + WebSocket Server"]
        Demucs["Meta Demucs<br/>(Source Separation)"]
        Madmom["Madmom HMM<br/>(Chord Recognition)"]
        Librosa["Librosa<br/>(Feature Extraction)"]

        API --> Demucs
        API --> Madmom
        API --> Librosa
    end

    UI <-->|"REST / WebSocket<br/>(JSON + Audio Blobs)"| API
    Proxy <-->|"Fetch"| External["External APIs"]

    style Client fill:#0d1117,stroke:#30363d,color:#c9d1d9
    style Server fill:#0d1117,stroke:#30363d,color:#c9d1d9
Loading

📂 Project Structure

guitariz/
├── src/
│   ├── components/          # Reusable UI components (Fretboard, Piano, Tuner, etc.)
│   │   ├── ui/              # shadcn/ui primitives (Button, Dialog, Toast, etc.)
│   │   ├── chord-ai/        # Chord AI feature components
│   │   ├── ear-training/    # Ear Training game components
│   │   ├── fretboard/       # Fretboard + 3D view components
│   │   └── piano/           # Virtual Piano components
│   ├── hooks/               # Custom React hooks (audio, WebSocket, PWA, etc.)
│   ├── lib/                 # Core logic — harmonic analysis, audio processing
│   ├── pages/               # Route-level page components
│   └── main.tsx             # Application entrypoint
├── backend/
│   ├── main.py              # FastAPI server + REST endpoints
│   ├── analysis.py          # Audio feature extraction pipeline
│   ├── chord_madmom.py      # Madmom-based chord recognition
│   ├── websocket_chords.py  # Real-time WebSocket chord streaming
│   ├── youtube.py           # YouTube audio download utilities
│   ├── Dockerfile           # Container build for AI service
│   └── requirements.txt     # Python dependencies
├── .github/
│   ├── workflows/ci.yml     # GitHub Actions CI pipeline
│   └── ISSUE_TEMPLATE/      # Bug report & feature request templates
├── public/                  # Static assets, PWA manifest, sitemap
├── vite.config.ts           # Vite config with custom CORS proxy
├── tailwind.config.ts       # Tailwind CSS theme configuration
└── package.json             # Project metadata & scripts

🛠️ Tech Stack

Layer Technology
Frontend React 18 · TypeScript 5.8 · Vite 5 · React Router 6
UI Tailwind CSS · shadcn/ui · Radix Primitives · Framer Motion · Lucide Icons
3D Three.js · React Three Fiber · Drei
State TanStack Query (React Query) · React Context
Audio Web Audio API · FFT.js (Client) · Librosa (Server)
AI / ML Python · PyTorch · Meta Demucs · Madmom · FastAPI
Music Theory Tonal.js — harmonic matrix, intervals, scales, chords
Testing Vitest · React Testing Library · Ruff (Python linting)
Infra Vercel (Frontend) · Docker (Backend) · GitHub Actions CI · Husky + lint-staged

🚀 Getting Started

Prerequisites

Tool Version
Node.js >= 18.0
npm >= 9.0
Python (optional — for AI features) >= 3.10

1. Clone & Install

git clone https://github.com/Guitariz/Guitariz.git
cd guitariz
npm install

2. Configure Environment

cp .env.example .env.local

Edit .env.local with your backend URL if running AI features locally.

3. Run the Dev Server

npm run dev

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

4. Backend Setup (Optional)

Required only for Chord AI, Stem Separator, and Vocal Splitter features.

cd backend

# Create and activate a virtual environment
python -m venv .venv

# Windows
.venv\Scripts\activate
# macOS / Linux
source .venv/bin/activate

# Install dependencies
pip install -r requirements.txt

# Start the FastAPI server
python main.py

Note: First launch will download the Demucs model (~300 MB). Subsequent starts are instant.

Available Scripts

Command Description
npm run dev Start Vite dev server with HMR
npm run build Production build
npm run build:prerender Build + SEO pre-rendering
npm run lint Run ESLint across the codebase
npm run test Run Vitest test suite
npm run test:ui Run tests with Vitest UI
npm run preview Preview the production build locally

🤝 Contributing

Contributions are what make the open-source community such an incredible place to learn, inspire, and create. Any contributions you make are greatly appreciated.

Please read the Contributing Guide and our Code of Conduct before getting started.

1. Fork the repository
2. Create your feature branch    →  git checkout -b feature/amazing-feature
3. Commit your changes           →  git commit -m 'feat: add amazing feature'
4. Push to the branch            →  git push origin feature/amazing-feature
5. Open a Pull Request

Looking for a place to start? Check out issues tagged good first issue or help wanted.


🗺️ Roadmap

  • Real-time YouTube audio chord analysis
  • MIDI export from Chord AI detections
  • Collaborative jam rooms via WebRTC
  • Mobile-native app (React Native / Capacitor)
  • Additional instrument support (Ukulele, Bass tablature)
  • User accounts with progress tracking

See the open issues for a full list of proposed features and known issues.


🎖️ Acknowledgements

Guitariz Studio stands on the shoulders of giants in the Music Information Retrieval (MIR) community. Special thanks to the authors of these pivotal libraries:

  • Meta Demucs — State-of-the-art deep learning source separation powering our Stem Separator.
  • Madmom — High-performance Hidden Markov Model implementations for chord recognition.
  • Librosa — The backbone of server-side audio analysis and feature extraction.
  • Tonal.js — Comprehensive music theory library for client-side harmonic analysis.
  • shadcn/ui — Beautiful, accessible component primitives built on Radix UI.

📜 License

Distributed under the MIT License. See LICENSE for more information.


Guitariz Studio — Harmonizing Technology & Music.


Website · GitHub · Twitter · Contact



Built with ❤️ by Abhinav Vaidya


Back to Top

About

Full-stack music learning web app featuring interactive guitar/piano tools and AI-assisted audio analysis (chord detection + vocal/instrumental separation)

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors