A full-stack web application to analyze, generate, and explore the world of Indian classical music, blending the richness of tradition with the power of modern technology.
This project is a heartfelt tribute to the timeless legacy of Indian classical music, born out of our passion to revive, preserve, and celebrate its traditional roots.
We aim to bridge the gap between cultural heritage and modern innovation—bringing the soulful rhythms and intricate melodies of this ancient art form to the digital age.
🚀 Version 2 coming soon with expanded features, richer insights, and a deeper experience.
- Integrated with Clerk for secure authentication.
- Role-based access:
- Admin
- Creator
- Listener
- Upload audio files to analyze:
- 🎼 Genre classification
- 🎻 Instrument detection
- Uses Librosa to extract tempo, pitch, chroma, etc.
- Powered by custom machine learning models.
- Generate new Indian classical music samples.
- Built using a custom-trained generation model that understands ragas and rhythmic patterns.
- Browse curated tracks, explore ragas, thaats, instruments, and artist profiles.
- Rich metadata and easy-to-understand insights.
| Layer | Tech Stack |
|---|---|
| Frontend | Next.js, Tailwind CSS, Clerk Authentication |
| Backend | Flask, MongoDB |
| ML Models | Custom genre/instrument classifiers, MusicGen |
| Audio | Librosa (Python) for feature extraction |
- Sign Up/Login via Clerk.
- Roles assigned (default: listener).
- Based on role:
- 🎧 Analyze uploaded music.
- 🎼 Generate new compositions.
- 🔍 Explore musical content.
- 🛠️ Admins/Creators can upload data and retrain models.
📺 Click to watch the walkthrough on YouTube
- Python
3.10+ - Node.js
18+ - MongoDB (local or via MongoDB Atlas)
git clone https://github.com/Omesh2004/GDGMusic.git
cd GDGMusic
🔌 Backend Setup (Flask)
bash
Copy
Edit
cd server
python -m venv venv
# Activate virtual environment
# On Windows:
venv\Scripts\activate
# On macOS/Linux:
source venv/bin/activate
pip install -r requirements.txt
python app.py
💻 Frontend Setup (Next.js)
bash
Copy
Edit
cd ../client
npm install
npm run dev
🔐 Environment Variables
In the /client folder, create a .env.local file:
env
Copy
Edit
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=your_key
CLERK_SECRET_KEY=your_key
NEXT_PUBLIC_API_URL=http://127.0.0.1:5000
🙌 Join the Journey
Let’s rediscover the soul of Indian classical music, together.
Help us reimagine, revive, and celebrate its legacy in the modern world.
🎉 Stay tuned for Version 2 — with more ragas, deeper insights, and magical melodies.

