An open schema for Hindustani music as data

RagaJSON is a family of JSON Schemas (draft 2020-12) — a precise, machine-readable, validatable way to describe ragas and talas, and a common language anyone can build on.

The format

RagaJSON Alpha

Each raga or tala is a single JSON document with a defined shape — scale movement, prominent notes, identity — written once, read by people and machines alike, and checkable against the schema.

bhairav.json
{
  "name": "Bhairav",
  "name_devanagari": "भैरव",
  "system": "Hindustani",
  "thaat": "Bhairav",
  "structure": {
    "aroha": ["SA", "RE_KOMAL", "GA", "MA", "PA", "DHA_KOMAL", "NI", "SA_TAR"],
    "avaroha": ["SA_TAR", "NI", "DHA_KOMAL", "PA", "MA", "GA", "RE_KOMAL", "SA"],
    "vadi": "DHA_KOMAL",
    "samvadi": "RE_KOMAL"
  },
  "performance": {
    "time_of_day": ["Pratah"],
    "rasa": ["Bhakti", "Shanta"]
  }
}

Why a schema

Precise, and deliberately small

Machine-readable

  • Validatable. Every document checks against a JSON Schema (draft 2020-12) — an invalid note token, thaat or bol is simply rejected.
  • Symbolic level. Notes, movement and identity are captured as tokens; ornaments and intonation stay in prose, outside the structured data.

Kept lean

  • Nothing derivable is stored. Jati, varjit svaras and pitch-class sets are computed, never duplicated in the document.
  • Evidence-driven. New fields need attestation across independent sources; the schema grows slowly and on purpose.

Examples

See the schema in use

A small, illustrative set of documents that conform to the schemas — worked examples, not an authoritative reference.

Contribute

Shape the format

Improve the schemas or add an example through a pull request. The repository README covers the data policy, licensing and validation.