Most people like music. Some people like jazz, some like film music from the 70s, some like folk songs while still some others like classical music. While reading this you are probably thinking about some awesome tunes that have stuck in your mind, or some composition in a raga that kept playing in your mind like a cassette that keeps playing the same song! One marvels at the composers who made such great music that you and me enjoy and wonder about their creativity. So what does it take to make music? Is it entirely god given? Or can we play god… at least a little bit ?
Creating music artificially
In this talk we will attempt to encode some of the common structures in Hindustani Classical music and make a ragabot: a code/bot that creates music. This is a fun exploration with some interesting experiments without a claim that we can really play god! May be just a little bit :) We will present a framework in which a composition in a particular raga is a sequence of notes with a beat/rhythm. The sequence of notes has rules which allow / disallow some notes while some notes are dominant and occur more often than others. Some note sequences are characteristic of a raga. These structures/patterns defining the raga are encoded in a set of probabilities. Attached to each note is an array of probabilities which specifies the probability of transitioning from that note to other notes. In tech parlance this would be a Markov chain of sorts where the transition matrix is a stochastic matrix. We will present simple python based programming constructs which will generate a sequence of notes using the transition matrix. The resulting note sequence can then be played using MIDI files or on an instrument directly.
Outline of the talk
- A brief about structures in Hindustani Classical music : 5min
- Thinking about raga notes as a Markov chain : 5 min
- Constructing the probability matrix for a raga : 5min
- Creating music using the matrix constructed : 5min
- Open questions: a discussion on how ‘creative’ this python generator is not!: 5min
- Familiarity with basic python
- Some exposure to classical music will help but is not mandatory
Vikrant has over 13 years of experience in crafting software solutions. He conducts python trainings through pipal academy. He has worked on diverse areas like Computational Fluid Dynamics, mathematical algorithms for bioinformatics, network-based license servers etc. He has worked at Strand Life Sciences and DRDO. He has a Masters in Computational Science from Indian Institute of Science.
Harsh has about 8 years experience in designing control algorithms for mechatronic systems. His day to day work involves designing physics based schemes for solving problems in the area of motor controls, engine controls, regulators etc. He has a masters from IITB and PhD in mathematics from The Netherlands. In his spare time he likes classical music, reading and hanging out discussing everything under the sun!