Music and Computers

Music and Technology
Music and Technology
Image by Jorge Guillen from Pixabay

Indian Classical Music is a type of music which gives a wide scope for mathematical analyses. Before reading this article, we assume that you have a preliminary knowledge of Indian Classical Music and it’s basics. It will be exciting and you will be amazed how music and computers are linked together by the means of mathematics.

Objective of this article

This article aims at building a technique which helps to retrieve basic attributes of a Raga through a 7 digit code.

Before I start, I should say that this technique is based on the older system written by Mr. Bhushit Joshipura. It follows the same pattern. I have just tweaked and tuned it to eliminate some of the limitations that I found. It still has limitations but that can be tuned up later as well. Firstly, let me specify it’s differences from the older system:

  • The earlier system used to retrieve only the Aaroh-Avroh whereas this system will not only retrieve Aaroh-Avroh but also the Thaat, Jaati and Vadi-Samvadi of a Raga.
  • This system uses Binary with Hexadecimal Number Systems whereas the old system used Binary with Octal Number System.
  • The older system used to generate a four digit number for every Raga whereas this system will generate a seven digit key (numeric & alphanumeric characters).

I have also developed the program in VB.NET which implements this technique. You will see the screenshots of this program at the end of this article.

Before we start implementing the main part, we first have to develop our own number system which has Musical Information stored in it. Below are the three tables that I have designed. These tables have information about Notes (Swaras) , Jaatis and Thaats.

Notes Table

INDEX (Starting from 0)Note (Swara)
0Sa
1Re (K)
2Re
3Ga (K)
4Ga
5Ma
6Ma(T)
7Pa
8Dha(K)
9Dha
10Ni(K)
11Ni

In this table, every note has an index starting from 0.We are going to use this index during conversion later.

Similarly, below is the table for Jaatis.

Jaatis Table

INDEX (Starting from 0)Jaatis
0Audav-Audav
1Audav-Shadav
2Audav-Sampurna
3Shadav-Audav
4Shadav-Shadav
5Shadav-Sampurna
6Sampurna- Audav
7Sampurna-Shadav
8Sampurna- Sampurna

In the same way, the Thaats table below.

Thaats Table

INDEX (Starting from 0)Thaats
0Yaman
1Bilaval
2Khamaj
3Aasawari
4Bhairavi
5Todi
6Bhairav
7Purvi
8Marwa
9Kafi

Now the real work starts....

Grouping

In the older system, we used to divide the twelve Notes (swaras) into 4 groups of 3 notes each. In this system, we are going to divide 12 notes into 3 groups of 4 notes each which is as follows:

Group 1
Sa        Re(K)       Re     Ga(K)
Group 2
Ga      Ma      Ma(T)      Pa
Group 3
Dha(K)    Dha    Ni(K)    Ni

Now, we are going to convert them into Binary the same way as we used to do in the old system. Here, we take the example of Raga Bhupali.

Group 1
Sa        Re(K)       Re     Ga(K)
 1            0            1           0
Group 2
Ga      Ma      Ma(T)      Pa
 1          0           0            1
Group 3
Dha(K)    Dha    Ni(K)    Ni
 0              1        0          0

So, we get a binary value of ‘1010 1001 0100’ following the Raga’s Aaroh ‘Sa Re Ga Pa Dha’. Now the final step, we will convert it to Hexadecimal system. The hex values are as follows:

INDEXBinary ValuesHex Values
000000
100011
200102
300113
401004
501015
601106
701117
810008
910019
101010a
111011b
121100c
131101d
141110e
151111f
Theory

By converting the binary value ‘1010 1001 0100’ into hex, we get a value ‘a94’. This code has information about Aaroh only. For Vadi-Samvadi, Jaati and Thaats, we will take the indexes from their respective tables above, find the hex values at those indexes and append them to the final hex value.

For e.g. Bhupali’s Vadi is Ga. From the Notes table above (You will have to scroll up to see the notes table), you will see that Ga is at index 4. So, we will take the hex value at index 4 i.e. ‘4’. Similary, we will take Samvadi’s (Dha) value as ‘9’, Jaatis’s (Audav-Audav) value as ‘0’ and Thaat’s (Yaman) value as ‘0’.

By joining all these values, we will get ‘4900’.

Now we will append this string to the string that we generated for Aaroh-Avroh earlier i.e. ‘a94’.

So the final value will be ‘a944900’. This value is equal to Raga Bhupali.

The earlier system was not suitable for the Ragas having same notes characterization. For e.g. Raga Bhupali and Raga Deskaar have same notes (swaras). In this case, the code generated in the old system was the same for both Raga Bhupali and Raga Deshkar. Whereas, with this system, the codes for both the Ragas would be different. For Raga Bhupali, it is ‘a944900’ and for Raga Deshkar, it is ‘a949401’

The same principle is applied for the Avroh. Basic thing to keep in mind is to exclude Taar ‘Sa’ from both Aaroh and Avroh.

Screenshots

Below are some screenshots of the program which I have developed to implement this technique.

Music And Computers
Main Screen
Music And Computers
"Notes to Number" Screen
Music And Computers
"Number to Notes" screen

I hope you like this article.

Special Thanks To:

  • Late Dr. S.K. Mullick
  • Mr. Bhushit Joshipura
Related Posts...
Are you planning to buy an economical tablet? Then you have landed on the right
Learn different object changes from VB 6 to VB.NET in this article.
Performing file-system operations work similar in Java across platforms but differ in VB for Windows.
Exception handling is a necessary element of coding. Compare the process and methods of exception
Want to learn networking programming techniques? This article describes the differences and approaches of network
Database Access is a very important aspect of programming. Learn how to do write database
Object serialization is useful for transfer of data across heterogeneous protocols. Learn its implementation in
Without reporting, any data centric program is incomplete. Learn how to use crystal reports (one