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.
- raga schemav0.2
- tala schemav0.1
{
"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.