Skip to content

dqev/harmoniumweb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

11 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Web Harmonium ๐ŸŽต

Play a real sampled Indian classical harmonium directly in your browser. No plugins, no installation. Use your keyboard or MIDI device to learn ragas, explore Sargam notation, and add reverb effects. Built with Web Audio API.

Live Demo GitHub Stars GitHub License GitHub Issues

Web Harmonium


โœจ Features

  • ๐ŸŽน Keyboard Playing - Use your computer keyboard to play Indian classical ragas
  • ๐ŸŽ›๏ธ MIDI Support - Connect any MIDI device (keyboards, controllers) for authentic control
  • ๐Ÿ“ Sargam Notation - Real-time Sargam notation logging as you play
  • ๐Ÿ”Š Reverb Effects - Add realistic acoustic space and depth
  • ๐ŸŽผ Multi-Octave - Explore 7 different octaves
  • ๐ŸŽต Extra Reeds - Layer harmonics (0-6 stacked notes)
  • ๐Ÿ“ฑ Mobile Ready - Fully responsive design with landscape support
  • โšก No Installation - Pure browser-based, no plugins needed
  • ๐Ÿ”’ Secure - HTTPS ready with security headers
  • ๐Ÿ“ฒ PWA Ready - Installable as a progressive web app

๐Ÿš€ Quick Start

# 1. Clone the repository
git clone https://github.com/devchauhann/harmoniumweb.git
cd harmoniumweb

# 2. Open in browser (no build required!)
# Option A: Open index.html directly
open index.html

# Option B: Use a local server (recommended)
python3 -m http.server 8000
# Then visit http://localhost:8000

Live Demo: harmoniumweb.vercel.app


๐ŸŽฎ How to Play

Keyboard Mapping

White Keys (Natural Notes):

` q w e r t y u i o p [ ] \

Black Keys (Sharp Notes):

1 2 4 5 7 8 9 - =

Notation Controls

  • Tab - Add comma (rest) to notation
  • Backspace - Delete last character
  • Delete - Clear entire notation

Controls Panel

Control Function Range
Volume Adjust sound level 0-100%
Reverb Toggle acoustic effect On/Off
Transpose Change root note -11 to +11 semitones
Octave Select octave 0-6
Extra Reeds Layer harmonics 0-6 notes
MIDI Device Connect MIDI hardware Auto-detect

๐Ÿ—๏ธ Project Structure

harmoniumweb/
โ”œโ”€โ”€ index.html              # Main application (single file)
โ”œโ”€โ”€ manifest.json           # PWA configuration
โ”œโ”€โ”€ robots.txt              # SEO crawler directives
โ”œโ”€โ”€ sitemap.xml             # Desktop sitemap
โ”œโ”€โ”€ sitemap-mobile.xml      # Mobile sitemap
โ”œโ”€โ”€ README.md               # This file
โ”œโ”€โ”€ og-image.png            # Social media preview (1200x630)
โ”œโ”€โ”€ harmonium.wav           # Harmonium audio sample
โ”œโ”€โ”€ reverb.wav              # Reverb impulse response
โ”œโ”€โ”€ .htaccess               # Server configuration
โ””โ”€โ”€ favicon/                # App icons (all formats)
    โ”œโ”€โ”€ favicon.ico
    โ”œโ”€โ”€ favicon.svg
    โ”œโ”€โ”€ favicon-16x16.png
    โ”œโ”€โ”€ favicon-32x32.png
    โ”œโ”€โ”€ favicon-96x96.png
    โ”œโ”€โ”€ apple-touch-icon.png
    โ”œโ”€โ”€ browserconfig.xml
    โ””โ”€โ”€ manifest.webmanifest

๐Ÿ” SEO & Discoverability

โœ… Comprehensive Meta Tags - Title, description, keywords, author
โœ… Open Graph Tags - Optimized for social media sharing
โœ… Twitter Card - Special formatting for Twitter/X
โœ… Schema Markup - JSON-LD for Google Rich Snippets
โœ… Sitemaps - Desktop & mobile sitemaps for crawlers
โœ… Favicon - Multi-format icons for all platforms
โœ… PWA Manifest - Progressive Web App configuration
โœ… Mobile Optimized - Responsive design with media queries
โœ… Performance - Gzip compression, browser caching, HTTP/2
โœ… Security - HSTS, CSP, X-Frame-Options headers

Ranking Keywords

  • "web harmonium"
  • "online harmonium"
  • "Indian classical music"
  • "Sargam notation"
  • "harmonium player"
  • "MIDI harmonium"
  • "music education"

๐ŸŒ Browser Support

Browser Min Version Status
Chrome 90+ โœ… Fully Supported
Firefox 88+ โœ… Fully Supported
Safari 14+ โœ… Fully Supported
Edge 90+ โœ… Fully Supported
Mobile Safari 14+ โœ… Landscape Mode
Chrome Mobile 90+ โœ… Landscape Mode

๐Ÿ’ป Tech Stack

  • Frontend - HTML5, CSS3 (variables, media queries, animations)
  • Audio - Web Audio API, MIDI API, Sampled harmonium sounds
  • State - localStorage for persistence
  • PWA - Service Worker, Manifest, Installable
  • Performance - Gzip, browser caching, resource preconnection
  • Deployment - Vercel (free tier)

๐ŸŽ“ Learning Resources

Understanding Indian Classical Music

Web Audio API

MIDI API


๐Ÿ“Š Performance Metrics

  • Load Time - < 1 second (optimized assets)
  • FCP - First Contentful Paint < 800ms
  • LCP - Largest Contentful Paint < 1.2s
  • CLS - Cumulative Layout Shift < 0.1
  • Performance Score - 95+/100 (Lighthouse)

๐Ÿ› ๏ธ Development

Building Locally

# No build step required! Just serve the files
python3 -m http.server 8000

# Or with Node.js
npx http-server

# Or with Live Server (VS Code extension)
# Install: "Live Server" by Ritwick Dey
# Right-click index.html > Open with Live Server

Customization

The entire app is in a single index.html file for simplicity:

  • CSS variables are at the top for easy theming
  • Audio parameters are easily adjustable
  • Keyboard mapping can be modified
  • Add your own effects or samples

๐Ÿค Contributing

Contributions are welcome! Here's how:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Make your changes
  4. Test in multiple browsers
  5. Commit with clear messages (git commit -m 'Add amazing feature')
  6. Push to your branch (git push origin feature/amazing-feature)
  7. Open a Pull Request

Issues & Suggestions


๐Ÿ“œ License

This project is licensed under the MIT License - see the LICENSE file for details.


๐Ÿ‘จโ€๐Ÿ’ป Author

Dev Chauhan


๐ŸŒŸ Support

If you find this project useful:

  • โญ Star the repository
  • ๐Ÿ› Report bugs
  • ๐Ÿ’ก Suggest features
  • ๐Ÿ”„ Share with friends
  • ๐Ÿ“ข Follow on social media

๐Ÿ“ˆ Stats & Analytics

GitHub followers Twitter followers


๐ŸŽต Special Thanks


Last Updated: April 1, 2026
Current Version: 1.0.0
Status: โœ… Production Ready

About

Play a real sampled Indian classical harmonium directly in your browser. No plugins, no installation. Use your keyboard or MIDI device to learn ragas, explore Sargam notation, and add reverb effects

Resources

Contributing

Security policy

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages