Shruti
Live tuner
Sing or play a steady note. The default needle uses the nearest keyboard semitone as a quick landmark; rāga-aware practice compares you to Karunattu's 22-śruti target for the selected swara. Within ±5¢ is performance-ready; ±15¢ is workable.
Tampura drone
Sa = C4 (261.63 Hz)
Four-string tampura — Pa / Ṡa / Sa / Sa (octave below). The audio is server-rendered then looped seamlessly in your browser.
Pitch (server-detected via YIN)
—
Quick cents from keyboard landmark
—
Pick a rāga in practice to grade against its 22-śruti swara.
How this works
Your microphone captures ~93 ms frames at 44.1 kHz. Each frame is posted to /api/pitch-detect, which runs YIN (difference function + CMNDF + parabolic interpolation) on the server and returns the fundamental in Hz plus a cents offset. Without a selected rāga, that offset is from the nearest keyboard semitone so you can orient quickly. When a rāga context is present, the tuner reports drift from the swara's 22-śruti position instead.
The pitch-detection algorithm itself lives behind the server boundary — only the result rides the network. The same approach gates the raga grammar and synthesis engines.