Skip to content

Instantly share code, notes, and snippets.

Last active Aug 29, 2015
What would you like to do?
Fuctional Conf talk proposal - Carnatic music synthesis

Carnatic music synthesis in Clojure


I'm building a carnatic music (south indian classical music) synthesizer using Clojure and Overtone. There's a gaping hole in what can be done in carnatic music with technology and the library I'm building is a step in filling that space.

Right now, it can parse carnatic music notation as you'll see in a traditional book, build finer abstractions from that, and play back a not-so-terrible synth version.

The concept of 'Gamakam' (the transitions between notes) is central, so I'll go into it's guts and show how the library piggybacks on recent work on PASR (pitch-attack-sustain-release) and Dual-PASR ('stage' and 'dance' PASR components) transcriptions. I'll also put forth a path I see for fully synthetic carnatic music based on machine learning 'Ragams' (melodic modes).

I'll give a detailed demo of the synthetic music on the repl through the talk, and do a live voice vs synth comparison in the end.

What will the attendeee learn?

I'll try to cover the following:

Representation of basic carnatic music concepts in Clojure.

  • The basics concepts of 'Shruthi', 'Layam', 'Swaram', 'Sthayi', 'Ragam', 'Talam', 'Jathi', and 'Kaalam', and their equivalents in western classical music. Those that do not have analogous concepts will need more explanation.
  • The abstractions in the library that represent these concepts.
  • Looking up a raga with a fuzzy search, playing it.
  • Finding similar ragas

Gamakams in depth

Using overtone to build Gamakams

Machine learning a ragam

  • I'll lay down the path I see for machines to learn from thousands of renditions, compose, and render carnatic music.
  • The various sources of training data for this.
  • Why and how carnatic music is more machine learnable than other forms of music.
  • The related undergoing research work that will take this forward.


  1. My work so far:

  2. SSP - 1905 - Sangita Sampradaya Pradarshini

  3. TMK - 2012 - Svara, Gamaka, Phraseology and Raga identity

  4. SPS - 2013 - Modeling Gamakas of Carnatic Music as a Synthesizer for Sparse Prescriptive Notation

  5. Gayaka, - the software. Runs on windows, written in javascript by SPS.

  6. Example of the synthetic carnatic music produced by gayaka:

  7. SPS A Composition Based Method for Modeling Carnatic Music Rāgas and Style

  8. Recent work on digitizing some carnatic music notation

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment