You're reading an old version of this documentation. If you want up-to-date information, please have a look at 0.10.2.


librosa.midi_to_svara_h(midi, *, Sa, abbr=True, octave=True, unicode=True)[source]

Convert MIDI numbers to Hindustani svara

midinumeric or np.ndarray

The MIDI number or numbers to convert

Sanumber > 0

MIDI number of the reference Sa.


If True (default) return abbreviated names (‘S’, ‘r’, ‘R’, ‘g’, ‘G’, …)

If False, return long-form names (‘Sa’, ‘re’, ‘Re’, ‘ga’, ‘Ga’, …)


If True, decorate svara in neighboring octaves with over- or under-dots.

If False, ignore octave height information.


If True, use unicode symbols to decorate octave information.

If False, use low-order ASCII (’ and ,) for octave decorations.

This only takes effect if octave=True.

svarastr or np.ndarray of str

The svara corresponding to the given MIDI number(s)


Convert a single midi number:

>>> librosa.midi_to_svara_h(65, Sa=60)

The first three svara with Sa at midi number 60:

>>> librosa.midi_to_svara_h([60, 61, 62], Sa=60)
array(['S', 'r', 'R'], dtype='<U1')

With Sa=67, midi 60-62 are in the octave below:

>>> librosa.midi_to_svara_h([60, 61, 62], Sa=67)
array(['ṃ', 'Ṃ', 'P̣'], dtype='<U2')

Or without unicode decoration:

>>> librosa.midi_to_svara_h([60, 61, 62], Sa=67, unicode=False)
array(['m,', 'M,', 'P,'], dtype='<U2')

Or going up an octave, with Sa=60, and using unabbreviated notes

>>> librosa.midi_to_svara_h([72, 73, 74], Sa=60, abbr=False)
array(['Ṡa', 'ṙe', 'Ṙe'], dtype='<U3')