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.
I'll try to cover the following:
- 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
- The 10 kinds of gamakams and their notations. Here's a list of gamakas and their notation as they appear in SSP [2]: https://gist.github.com/ssrihari/cd7c0f988652e22bf7c6#file-gamakas-png
- Their representations as waveforms as in [TMK]. Here are a couple of examples: https://gist.github.com/ssrihari/cd7c0f988652e22bf7c6#file-janta-jaru-odukkal-png, https://gist.github.com/ssrihari/cd7c0f988652e22bf7c6#file-orikai-kandippu-sphuritam-png
- Quick demo of what each of them sounds like both in voice and synth.
- Why supercollider envelops cannot be used as-is, and the additions needed to make gamakams.
- What PASR and Dual-PASR transcriptions are (as in [SPS]). See https://gist.github.com/ssrihari/cd7c0f988652e22bf7c6#file-dpasr-transcriptions-png
- Implemtation of these new envelops in the library.
- Using these envelops in the context of 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.
-
My work so far: https://github.com/ssrihari/ragavardhini
-
SSP - 1905 - Sangita Sampradaya Pradarshini http://ibiblio.org/guruguha/ssp_cakram1-4.pdf
-
TMK - 2012 - Svara, Gamaka, Phraseology and Raga identity http://compmusic.upf.edu/system/files/static_files/03-T-M-Krishna-2nd-CompMusic-Workshop-2012_0.pdf
-
SPS - 2013 - Modeling Gamakas of Carnatic Music as a Synthesizer for Sparse Prescriptive Notation http://sriku.org/thesis/srikumar-phd-thesis-cnm-modeling-gamakas-6aug2013.pdf http://sitardivin.globat.com/seminar2013/047SrikumarS.pdf
-
Gayaka, - the software. Runs on windows, written in javascript by SPS. http://carnatic2000.tripod.com/gaayaka6.htm
-
Example of the synthetic carnatic music produced by gayaka: http://gamakam.tripod.com/KamakshiPart.mp3
-
SPS A Composition Based Method for Modeling Carnatic Music Rāgas and Style http://sitardivin.globat.com/seminar2013/047SrikumarS.pdf
-
Recent work on digitizing some carnatic music notation http://devagitam.in