Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Swaram Trainer

A browser-based practice trainer for Carnatic sarali varisai. Pick a shruti, a ragam, and a varisai exercise, then sing along with the metronome — the app listens through your microphone in real time and tells you which notes you nailed and which drifted off.

Live demo: https://subashini7.github.io/swaram-trainer/

Features

  • Shruti, ragam, and varisai (1–9) selection, with adjustable BPM and a reaction-delay setting to account for the natural lag between hearing a beat and singing it
  • Real-time pitch detection (autocorrelation-based) that anchors to your own sung register rather than a fixed reference
  • Pass / fail / "timing" (likely a window-alignment miss rather than a wrong note) verdict per beat, with a toggle to hide the color coding entirely
  • A tap-to-hear reference keyboard for the current ragam
  • A live scrolling spectrogram of your pitch against horizontal guide lines for each swara
  • A running mistakes log with inline playback of what was actually sung, plus a full session recording download (WAV)

Usage notes

  • Needs microphone permission — works over HTTPS (like this GitHub Pages deployment) or localhost.
  • Headphones are recommended: the metronome click can otherwise bleed into the mic and occasionally confuse the pitch detector.
  • Works on both desktop and mobile browsers; the reference keyboard and spectrogram scroll horizontally on narrow screens.

Running locally

No build step — it's plain HTML/CSS/JS. Serve the folder with any static file server, e.g.:

python3 -m http.server 8000

Then open http://localhost:8000.

About

Browser-based real-time pitch trainer for Carnatic sarali varisai practice — live pitch detection, a scrolling spectrogram, and mistake tracking, no install required

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages