A demonstration of how any website or app could consume the dataset. Bhai Jaspal Singh Ji's parampara. · Home · Vision · Schema
shabadIds model clean, or awkward?Notation is stored once as a canonical ASCII string; the script is a display choice. Case carries meaning — uppercase S R G M P D N is the shuddh (natural) scale; lowercase is the altered note (r g d n komal, m teevra madhyam) — so it is never case-folded.
The dataset is plain JSON. A consumer fetches it and groups notation records by shabadIds:
const notations = await (await fetch('data/notations.json')).json();
const raags = await (await fetch('data/raags.json')).json();
// All compositions available for a given shabad:
const forShabad = notations.filter(n => n.shabadIds.includes('DEMO-TMP'));
// Show only Ustaad ji-approved data; mark the rest as unverified:
const approved = forShabad.filter(n => n.status === 'approved');