Notation editor for transcribing Hindustani classical music Bandish

Authors: Karkera, Kiran Ramakant

Date: Thursday, 7 September 2023, 2:15pm to 3:45pm

Location: Main Campus, L 2.202 <campus:measure>


In this paper we present the Bhatkhande Bandish editor, a notation editor for transcribing Hindustani (North Indian classical music) compositions known as Bandish in a traditional notation system known as Bhatkhande notation.


Hindustani classical music (HCM) is a traditional form of music practiced in the Indian subcontinent. One of the presentation forms in HCM is called Bandish (Ranade n.d.), which can be described as a composition based on a set of notes (called a Raga1), in a musical meter (called Taal2). In this paper, we describe a web-based notation editor capable of transcribing and rendering a Bandish in a traditional notation system, named the Bhatkhande notation system (Schooling n.d.) after its author V N Bhatkhande3.

This editor is an open-source alternative to proprietary notation editors (Sawant n.d.) (SwarClassical n.d.). It offers two artifacts:

  • An open file format specification to store a Bandish document.
  • An open-source engine to render a Bandish on a web page.

Additionally, making the project open source allows community contributions for Raga and Taal metadata which makes it easier to support new Ragas and Taals. It also makes it possible to support new Indic languages to display the notations in.

Notation Schema

Fig. 1: Top level elements in 
    Bandish document
Fig. 1: Top level elements in Bandish document

The notation schema consists of three top level elements:

  • A sequence of notes
  • Rhythm information
  • Metadata such as title.

Each element in the sequence of notes represents musical artifacts that must be played in one beat. This includes:

  • One or more notes (called Svaras4 in HCM)
  • One or more note ornamentations (such as trills or glissando)
  • The lyrics to be sung in the duration of one beat.
Fig. 2: Information per beat
Fig. 2: Information per beat

Each Svara is represented so:

Since HCM uses relative note positions called Svaras (as opposed to notes defined by a particular frequency), we denote the 12 note positions by the first character of its name (e.g., s r g m, like solfege).

Raga music is largely (Indian Oral Tradition n.d.)and most compositions are restricted to 3 octaves. Therefore, it is sufficient to restrict the number of octaves to three.

We can thus indicate each note as a vector of two elements.

  • The first element indicates the low / medium / high octaves.
  • The second indicates the Svara or note position.

Each of the Svaras is defined thus:

Fig. 3: Svara definition
Fig. 3: Svara definition

The Bandish document format is defined using Clojure Spec5 and can serialized as Transit6 or JSON files. The detailed schema description can be found at the GitHub page for sargam-spec7.

Rendering Engine

Fig. 4:  Vertical orientation of 
    symbols in a sequence of *Svaras* (notes)
Fig. 4: Vertical orientation of symbols in a sequence of Svaras (notes)

Displaying a Svara (note) requires the presentation of the following visual elements for the notes:

  • The base note or Svara as a character in an Indic language.
  • Indicating if a note is sharp (Tivra) or flat (Komal).
  • Octave information

The following visual elements indicate the rhythm and timing.

  • The number of notes in a single beat
  • The position of the note in a rhythmic cycle

Lastly, the lyrics to be sung on the beat are also displayed.

Ideally, a Svara (note) should be rendered with a Unicode character. Due to difficulties in combining multiple diacritics in Unicode, the authors chose to use images to render Svaras, requiring 36 images per Indic script.

Transcribing notations

The mobile viewport was selected as the primary interface to the notation editor. The interface design mimics the look and feel of a messaging application because users may find the interface familiar in order to transcribe notations.

Fig. 5: Interface design that mimics 
    mobile messaging application UI.
Fig. 5: Interface design that mimics mobile messaging application UI.

Comparing the rendering to traditional typesetting

Fig. 6: Excerpt of the Bandish 
    Piyarava from the book **AnoopRagaVilas**
Fig. 6: Excerpt of the Bandish Piyarava from the book AnoopRagaVilas
Fig. 7: Reproduction of ‘Piyarava’ 
    in Bandish editor’s rendering engine
Fig. 7: Reproduction of ‘Piyarava’ in Bandish editor’s rendering engine

Fig 6 shows a Bandish that is typeset in the book AnoopRagaVilas Vol one (Gandharva 1965) . Fig 7 shows the same Bandish rendered using the notation editor (Karkera n.d.). Observe that the Bandish editor closely mimics the typeset conventions used for publishing Bhatkhande notations.


In this paper we demonstrated a Bandish editor capable of editing and rendering notations for HCM known as Bhatkhande notation. We also presented a file format to store Bandish notation documents.


I would like to acknowledge the Clojure8 community for their generous contribution to the Clojure language in which the Bandish editor application is implemented. I am also grateful to the authors of Re-frame9 and other Clojure libraries which the Bandish editor application makes extensive use of.


Courtney, D. n.d. “North Indian musical notation: an overview.” Accessed 12 13, 2022.

Gandharva, K. 1965. Anoop Raga Vilas vol one. Mauj Prakashan Gruh.

n.d. “Indian Oral Tradition.” Accessed 12 13, 2022.

Karkera, Kiran. n.d. “Piyarava Bandish in Raga Yaman.” Swaranotebook. Accessed July 28, 2023.

Ranade, Ashok Damodar. n.d. “Music Contexts: A concise dictionary of Hindustani Music.” 73. Bibliophile South Asia Page.

Sawant, Shivraj. n.d. Vishwamohini Melody Player. Accessed 07 28, 2023.

Schooling, Unknown - National Institute of Open. n.d. “Notation system of Hindustani Music.” Accessed 07 28, 2023.

SwarClassical. n.d. SwarShala . Accessed 2023.


Contribution Type