Konnakkol is the vocal percussion art of South Indian classical music (Carnatic Music). This tool will turn written Konnakkol into audio.

It was developed as part of my internship at the Flex Group at HARC. After learning more about their Ohm project, I quickly realised that combined with the WebAudio API I could quickly build a web based Konnakkol player, to turn written Konnakkol into audio.

This work actually lead on from my undergraduate dissertation, a generative music system for Carnatic rhythms. After which I spent six months studying in Chennai, India with Vina player Dr. Karaikudi S. Subramanian and Mrudangam Artiste Erode Nagaraj.

Saketh Kasibatla helped out a lot to get me up to speed with writing an Ohm Grammar, and Alex Warth was on hand to answer any tricky questions.

As a means of transmitting Konnakkol it provides both an unambiguous notation, and real audio, both of which have real, differing benefits when learning. It is also much lower bandwidth than full video, which is an important consideration with the cost of phone data plans in India.

The Future

Browser integration

With a browser extension, it would be possible to select Konnakkol on any web page (forums, your email, Facebook…) and play it as audio. It’s in the works….

Multiple outputs

The most exciting feature (for me) of Ohm, that I have yet to take advantage of, is the complete separation of front end (grammar) and back end (semantics), this means that you can have one front end with multiple backends! This means you could write Konnakkol and as well as outputting audio, also generate MIDI, and western score (probably via LilyPond). If anyone wants to take a crack at it let me know!

Demo

Below you can try it out, it will guide you through the various features of the Konnakkol grammar.

Play button

Syllables and phrases can be written and played with the play button

Keyboard shortcut

You can also use a keyboard shortcut:
  1. Click on the textbox
  2. Press
    • Mac: cmd return
    • Windows / Linux: ctrl return
    • Universal: ctrl space

Selection playback

You can play just a part of the text by selecting it

Whitespace

Spaces and new lines are ignored, so you can format as you like

Syllables

You can make up your own syllables!
  • They must start with a consonant
  • There must be one vowel
  • You can have multiple vowels or consonants, e.g. tha or taa
  • Consonants at the end are also ok, as long as there is no vowel after them

Tala

If you want to hear the pulse clapped, just type tala at the start of the example

Rests/extensions

You can extend a syllable by one akshara with - or ,
Rests can also go at the start of a phrase

Stresses

Stresses can be added by capitalising the consonant of a syllable

Double speed

Use { and } around your konnakkol to double the speed
You can double as many times as you like
Or have nested doubling (doubles inside doubles)

Half speed

For half speed use [ and ], it works just like doubling

Mixed speed

You can even mix double and half speed

Gati

The gati can be changed with gN where N is the number of aksharas per beat
By default the gati is chatusra (4)

Tempo / Kala

Set the tempo with either tempo N or kala N

Repeats

Phrases can be repeated by using x N (spaces don't matter, x3 and x 3 are both ok

Brackets

Round brackets can be used to disambiguate repeats
without the brackets this would be: (taka x2) (takita x2)
This makes it easy to write out exercises like this classic

Go wild!

Write your own! All of the examples on this page are editable, so feel free to edit and play with them too.

Syllables start with a consonant, must have a vowel ta tha tham
Rest/extension - or ,
Stresses Upper case TakaTakita
Double Speed { takadimi } {{takadimi}}
Half Speed [ takadimi ] [[ takadimi ]]
Gati g3 g4 g5 etc...
Repeats takadimi x2 use brackets if necessary (takadimi x 2)