Topic: Plan Overview with a brief history

In 1988, before I left India for grad school, I had, using Microsoft C, written a PC software package called "The Composer's Apprentice" and "The Digital Musician".  Together, the programs allowed users to write music in standard carnatic notation copied from text books such as the classics "Ganamrtha Bodhini" and "Varna Manjari" directly into a PC text file, that the software would compile and play using a series of beeps on the PC speaker. 

I gradually adapted the package to visually depict the note being played using a piano, and added various control structures to the specification grammar such as looping and calls, similar to that in a programming language.  I guess the program must have had some value, because Madras Doordarshan's Ilanthendral program picked up on it and decided to interview me on air.  I received a number of enquiries from interested users soon after my 15 minutes of fame on television.  But alas, in my total naivette, I built various copy-protection techniques into the software to the point at which it became practically unusable by anyone except myself and as a consequence it died a swift death soon thereafter.

But I had always wanted to revive some form of the software.  Although it was quite difficult to get the system to play Gamakas or embellish notes in other ways, I had hoped that it would someday become possible to do it.  But Grad school intervened, and a day-job soon after, and I had forgotten all about this program while I did exciting CS work at Stanford Research.  A few weeks ago, just before the holidays, the prospect of such a program came up in casual conversations with my friends over dinner and this brought back old memories.

I searched the net for some such program that would be available for free, but found none (I did find some packages you could buy...)   I wanted a pure WebApp, I wanted it to be free, I wanted it to be open-source so the community could contribute, both to develop the software as well as compose melodies, and most of all, I wanted it to be simple and cross-browser compatible.

None matched the specs I desired, but I did find various bits and pieces online that I could use to put together the basic framework of such an app.  In particular, I discovered Scott Schiller's free JavaScript API ( for playing notes via a browser that seemed to be the best solution for a cross-browser application, and I found a number of JS components I could readily tie into the WeApp.  And so I spent a couple of days tinkering with the shell of this application, whose basic architecture I describe in the next article.

However, I'm not a professional JavaScript programmer.  I realize that much of what I've done here can be done much more professionally, efficiently and elegantly.  Fortunately I realize this.  While I do have a vision of what might make for a good WebApp for Carnatic music composition, my vision is flexible and open to suggestions from the Community.  The software I have written is equally open.  And I offer my ready assistance to de-obfuscate anything I have done that doesn't lend itself to easy understanding.

I'm therefore making the Carnatic Composer system available in open-source to the community (with the usual disclaimers, of course) so that those of you who are better at each of the aspects of the system and the music than I, can take over and give us something useful and cool to play with.

I hope this project is as fun as it is interesting and useful.

Best regards

Srinivasa Iyer