Skip to content

MrAkbari91/web-harmonium

Repository files navigation


🎹 Web Harmonium

A Modern Digital Indian Classical Music Experience

Experience the magic of the traditional Indian harmonium in your browser! A responsive, feature-rich implementation with authentic sounds, modern UI, and mobile-first design.

Web Harmonium Next.js TypeScript Tailwind CSS


✨ Key Features

🎵 Authentic Musical Experience

  • 🎶 High-quality audio samples – professional harmonium recordings
  • 🎼 Dual notation system – Indian Sargam (Sa Re Ga Ma) + Western notes
  • Real-time audio processing – ultra-low latency via Web Audio API
  • 🎹 Triple notation – keyboard shortcuts, Sargam, and Western notes
  • 🌟 Animated loader – harmonium-themed loading experience

🎨 Modern UI/UX

  • 🧭 Compact header with logo, status badges & theme toggle
  • 🎨 Music-inspired gradients & glassmorphism throughout
  • 📱 Fully responsive – desktop, tablet & mobile
  • Smooth animations and interactive hover effects
  • 📝 Interactive guide system – with local storage memory

🎹 Professional Harmonium Interface

  • 🖥️ Non-scrollable layout – perfect desktop fit
  • 📏 Authentic proportions for realistic digital feel
  • 🪕 Clean key design – focus on readability and playing
  • 🎼 Triple notation system for easy learning

🎛️ Advanced Controls

  • 🔊 Gradient volume control with live feedback
  • 🌌 Concert-hall quality reverb with instant toggle
  • 🎵 Smart transpose system with semitone counter
  • 🎚️ Full 7-octave range (0–6) with register descriptions
  • 🎶 Reed layering system for rich harmonium sound
  • 🎹 Full MIDI support – device selection, velocity sensitivity

📚 Learning & Education

  • 📖 Popup guide on first visit + always accessible button
  • 🎼 Detailed Sargam system + Western scale theory
  • 🎶 Popular Ragas guide (Yaman, Bhairav, Kafi, Malkauns)
  • 🎹 Advanced techniques – Meend, Gamak, Kan, Andolan
  • 🎛️ MIDI & setup tips for learners and professionals

🚀 Quick Start

Prerequisites

  • Node.js 18+
  • Browser with Web Audio API
  • (Optional) MIDI keyboard

Installation

# 1. Clone
git clone https://github.com/mrakbari91/web-harmonium.git
cd web-harmonium

# 2. Install
npm install
# or yarn install
# or bun install
# or pnpm install

# 3. Start dev server
npm run dev
# or yarn dev
# or bun run dev
# or pnpm dev

Open 👉 http://localhost:3000

Production Build

npm run build
npm start
# bun run build
# bun run start

🎼 Play the Harmonium

Keyboard Layout

Black Keys:  1  2     4  5     7  8  9     -  =
White Keys: ` q w e r t y u i o p [ ] \

Indian Notation (Sargam)

  • Sa (S) → Foundation / Tonic
  • Re (R) → Movement / Emotion
  • Ga (G) → Harmonic Color
  • Ma (M) → Bridge to upper tetrachord
  • Pa (P) → Dominant & stable
  • Dha (D) → Subdominant depth
  • Ni (N) → Leading tone → Sa

🛠️ Technical Architecture

├── app/
│   ├── page.tsx              # Main harmonium interface
│   ├── layout.tsx            # App layout & theme
│   └── globals.css           # Global styles & animations
├── components/
│   ├── ui/                   # Shadcn UI components
│   └── theme-provider.tsx    # Theme management
├── public/
│   ├── harmonium.wav         # HQ harmonium sample
│   └── reverb.wav            # Convolution reverb sample
└── README.md                 # Documentation

Tech Stack

  • Next.js 15 (App Router + server components)
  • 🟦 TypeScript (strict mode)
  • 🎨 Tailwind CSS (animations, gradients, responsive UI)
  • 🎵 Web Audio API – low-latency sound engine
  • 🎹 WebMIDI API – full MIDI controller support

🌐 Browser Support

✅ Chrome 66+ ✅ Firefox 60+ ✅ Safari 14+ ✅ Edge 79+


🙏 Acknowledgments

  • 🎶 Traditional musicians preserving harmonium art
  • 🎛️ Audio engineers for HQ sample recordings
  • 🌐 Open-source community for tools & libraries
  • 👨‍🏫 Music teachers & cultural preservationists

🎵 Support the Project

If you enjoy Web Harmonium: ⭐ Star the repo • 🐛 Report bugs • 💡 Suggest features • 🔄 Share with friends • 💻 Contribute code


👨‍💻 Developer

Dhruv Akbari Full Stack Developer & Music Tech Enthusiast

🌍 GitHubCodepenLinkedInInstagramFacebookX

💌 Email: dhruvakbari303@gmail.com


© 2025 Web Harmonium Bridging Tradition with Technology, Built with ❤️ for Music Lovers


About

A browser-based harmonium built with JavaScript and Web Audio API. Supports keyboard and MIDI input, realistic sound playback, and touch interaction—ideal for Indian classical music practice.

Topics

Resources

Stars

Watchers

Forks