← All work
Case study · Labs tool

Raga Explorer

A reference for 157 Carnatic ragas that teaches the system, not just the list.

Role
Data model, design, and build
Built
Rebuilt in phases, August 2026
Stack
Structured raga corpus · Tone.js sampled instruments · React · PWA · WCAG AA palette

The problem

Raga references online are lists: a name, an arohana, an avarohana. Students memorise 72 facts instead of understanding the two choices that generate them, and every chart uses one naming system while their teacher uses another.

Constraints

  • Two naming systems are in daily use; the tool had to show a teacher’s “ga2” and the chart’s G3 without making the student translate.
  • It had to be searchable by whatever a student already knows — a name spelled any way, a mela number, a chakra, or a handful of notes.
  • Desktop and phone are different reading situations; one layout would not do.
  • Accessibility mattered: the palette was audited to WCAG AA contrast.

The approach, in order

  1. /01

    Built the data layer first: 157 ragas with parents, families, and the katapayadi number, verified by a script so the corpus cannot drift.

  2. /02

    Labelled every swara three ways at once — melakarta name, class shorthand, Western pitch.

  3. /03

    Designed search to accept names however they are spelled, “#29”, “janyas of 22”, or a swara set like “S R2 G3 P D2”.

  4. /04

    Rendered arohana and avarohana with sampled instruments over a tanpura drone, with single-swara playback for close listening.

  5. /05

    Added a Patterns view that teaches the melakarta system as two ladders of six and a 6×6 grid, with the number hidden in every name decoded.

  6. /06

    Shipped separate desktop and mobile shells over one shared state, then audited contrast and keyboard access.

What it does now

A student can arrive with a half-remembered name or a few notes and leave understanding where the raga sits, what it is related to, and why the system is shaped the way it is.