Naturally for me, the urge is to allow for expanding the scope of JFugue to Hindustani classical music. As it stands, our system is a bit complex and also my knowledge about it is limited. Lately I have been reading a lot of theory about Hindustani classical and I am trying to put the concepts into some sort of a programming pattern.
My first attempt in making JFugue to understand Hindustani sargam is described below.
- There are 12 notes (swars) Sa, Rek, Re, Gak, Ga, Ma, Mat, Pa, Dhk, Dh, Nik, Ni.
- From a JFugue pattern perspective the above are case insensitive.
- The "k" denotes the "Komal" (flat) notes. The "T" (sharp) denotes the "Teevr" note for Ma. By default, "Shudh" (plain) note is implied.
- Hindustani classical does not have a fixed "Sa". A notation such as "Sa=61" establishes it to the 5th Octave C# in the JFugue scale. Of course future versions will allow one to specify the note in a much user friendly manner, such as "Sa=C#5".
- The rest of the "swars" will automatically adjust as per this base. C# of the 5th octave is also the default "Sa" if none is specified.
- A rest note is defined by "Kh" (Khali). This is case insensitive too.
- After the base note, there are qualifiers that will be used to alter and fine tune the note for play.
- Only one qualifier is defined and implemented for now. It is the one to change the "Saptak" or the Octave.
- The "madhya saptak" (middle octave) is the implied by default. To specify "mandra saptak" (next lower) the "<" symbol is used. To specify "taar saptak" (next higher) the ">" symbol is used. So for example, "ni<", "ni" and "ni>" specify the lower octave "shudh Ni", the "madhya saptak Ni" and the "taar saptak Ni" respectively. It should be possible to specify "ati mandra" and "ati taar" octaves with the "<<" and the ">>" symbols in the future.
- Future versions will have many more qualifiers. Some will be ported "as is" from JFuge. For example, attack, decay, duration, tempo etc. Some will be left out ("chords", "melody" etc.) that have less significance in Hindustani classical music.
- One possible expansion of interest is to be able to map the "22 shruthis" of the Hindustani classical. This shall require the use of the Microtone pre-processor in JFugue or its modification. To be able to play 22 notes would bring in a lot of realistic sound production in JFugue for Hindustani classical.
I am including the source of HindustaniSubParser.java. This is just a very basic version of what is to come. Interested programmers will have to comment out the NoteSubParser and the MicrotonePreprocessor from the Staccato Parser. I have used JFugue 5 source code.
Below are some notations and resulting audio output.
First one is the Bollywood song "Tum Paas Aaye".
ga ma ga re sa ga kh ga ma ga re sa ga kh re ga re sa "ni<" re "pa<" kh re sa ga re sa sa kh sa sa re ga dh pa kh sa sa re ga dh pa kh re ga re sa "ni<" "dh<" "ni<" "pa<" kh re sa ga re sa sa sa kh
Here is the output: Tum Paas Aaye
Here is the original song: Tum Paas Aaye
Next up is one from the master, Live At Royal Albert Hall. "Has ke bola karo".
ga re ga ma ga kh sa "pa<" kh "pa<" re kh sa re sa sa kh sa re ga ga re re re kh re ga ma ga ga re sa sa kh
Here is the output: Has Ke Bola Karo
Here is the original song: Has Ke Bola Karo
Next is the start from "Ye Inayaten Ghazab ki".
"ni<" re ga re "ni<" re sa kh "ni<" re mat kh "ni<" dh pa ma ga re "ni<" kh "ni<" re ma ga sa re "ni<" sa "dh<" "ni<" sa ga ma re sa kh
Here is the output: Ye Inayaten Ghazab
Here is the original song: Ye Inayatein Ghazab
I am all excited!
This comment has been removed by the author.
ReplyDeleteDear Sir
ReplyDeleteI was wandering through internet and found your blog by chance. Also got to know about the tool that you've created to check the meter of couplets. Just Amazing.
i would like to get in touch with you. I live in gurgaon and my no. is 9871101383. Please let me know when you have some time to spare.
Regards
Vishal Bagh