From Euterpea to rangapura vihAra

Euterpea / HSOM

A while back I ran in to 1 and thought this would be an interesting way to learn music. The sections on using basic functional programming and a literate DSL to represent sheet notation appealed to me. More advanced parts of the book connects the structure of music to some intricate categorical concepts. However nothing advanced is needed to play with music.

Twinkle Twinkle Little Star

I used it to write a simple song like “Twinkle Twinkle Little Star” 2 3 from some sheet music that’s generally available.

twinkle1 =
  line (map pcToQN [C, C, G, G, A, A]) :+: g 4 hn :+:
  line (map pcToQN [F, F, E, E, D, D]) :+: c 4 hn :+:
  line (map pcToQN [G, G, F, F, E, E]) :+: d 4 hn :+:
  line (map pcToQN [G, G, F, F, E, E]) :+: d 4 hn :+:
  line (map pcToQN [C, C, G, G, A, A]) :+: g 4 hn :+:
  line (map pcToQN [F, F, E, E, D, D]) :+: c 4 hn 

rangapura vihAra by Agam

However I enjoy carnatic music as well as certain kinds of fusion with jazz, blues and rock 4. In the time of playing around with Euterpea - the most complicated of which was to get an installation working, I was introduced to a fusion version of “Rangapura Vihara” 5 which held my attention for a while.

Disambiguating

Although this version uses 2 different songs from 2 different sources.

“Rangapura Vihara” 67 was written by Muthuswamy Dikshitar 8. He was known to compose exclusively in Sanskrit and have at least 1 self-reference to the underlying raga in his compositions. The underlying raga being Brindāvana Sārangā is referenced in the song itself.

The puzzling beginning portion of the song (which is not in Sanskrit) sung by Agam is from a different composer 9 10 with a rich history as well.

Attempt to synthesize

The idea of generating the basic song from notes seemed interesting. Carnatic notation is not as universal as sheet notation. So I stuck to the original. There’s extensive information on Carnatic and its mappings to Sheet music on Prof Shivkumar’s website 8

Digging into 11 without any musical training and trying to convert them to sheet notation wasn’t easy. In fact, it went nowhere and sounded nothing like the original. A basic encoding of the raga scale and opening phrases has been added 12, as an approximation without gamakas or microtonal ornaments.

Alternates to Euterpea

While attempting to summarize this earlier work, I also saw some interesting attempts to port HSOM/Euterpea to scala 3 13. The original writer of HSOM - Paul Hudak is no more and the current maintainer has mentioned in some forums that the underlying design is not being changed 14 but just being maintained. It would be interesting to try the scala variant to see if the installation issues along the line that I ran into 15 are less prevalent.

References