Website

solkattu representation for computers

· me

Awful naming conventions and an idea

I must admit that I am not good at naming things.

In fact, I am pretty awful. But that is beside the point. I named this project sol because I pressed enter before typing out the rest of the name.

I actually started on this project a few years ago, but I never actually passed the scaffolding stage. The first attempt was called sfrs, but that was abandoned early on.

I realize that I’m getting ahead of myself. What am I even talking about?

For a while I’ve been thinking about representing South Indian syllables in a computerized form. I was primarily motivated by what I thought was the possibility to brute-force sequences and patterns, automating that part of my workflow.

notation pt.1

An important part of how musicians think about konnakol is the division of syllables into sequences of numbers. I first saw the potential in this method when I was learning a simple kurraipu. This is what it looked like when roughly marked out on a sheet of paper:

--|Sequence 1|-- 
6 1(2) 6(1) 6 1(2) 1(2) 6(2) 6(1) 6 1(2) 1(2) 1 //(2)
--|Sequence 2|--
5 2(2) 5(1) 5 2(2) 2(2) 5(2) 5(1) 5 2(2) 2(2) 2 //(2)

If you add together the numbers until the // each sequence should result in the same sum. They are also related. I’ve only subtracted and added to specific parts to maintain the same count.

I based my initial syntax for sol on this this method of annotation. When searching for interesting patterns, we care about how many syllables they consist of.

measurement systems and inconsistency

At this point, allow me to interject with a rant on measurement systems.

Universally, the SI system of units is considered to be superior to the Imperial system. For good reason. SI units are consistent and based on real constants. In fact, Imperial Units for the most part have been redefined with the SI system.

Actually, Imperial units are consistent to a degree.

Anyway, here I encountered the worst (exaggeration) possible problem (not exactly) – counting hell. It seems that percussion arbitrarily decides to prioritize syllables (concrete units) and beats (non-concrete units) interchangeably during compositions. Sometimes together! I loved solving this problem !!

This involved writing a separate dimensional analysis library to handle carnatic music calculations, which has THREE SEPARATE TYPES OF AKSHAR(A/AE/IE????) that can be converted.

I will not elaborate more on this experience. A copy of the code can be found here.

notation pt.2

The subsequent innovation in syllable-counting enabled yours truly to make incredible progress. The parser is completely handwritten, with support for custom AST transformations once the program is loaded into memory. The entire program operates on a declarative-style language with support for functions and no recursion because I cannot will not write code to deal with recursion.

Overall, it is pretty neat.

// sol example: samam to 1/2 edam adi
tal 8
seq P {
    4 (4)
    4 4 (4)
    4 4 4 (4)
}
seq U {
    4 (2) 4 (2) 4
    4 (2) 4 (2) 4
    4 (2) 4 (2) 4
}


nad 4
U P
nad 6
U P
U P
nad 8
U P
U P
U P

It is rather verbose, but I think that verbosity helps with ideation. I would rather it be like this than try to understand some complicated control flow constructs.

Yes this sounds quite cheesy (#deepthoughts)

concluding notes

After reaching a viable P.O.C, I felt no need to add the brute-forcing feature that I first dreamed of. I felt like I was robbing myself of the artistic exercise that was conjuring up korvais in my spare time.

Also, I’m lazy and no more language features for the time being.

Thank you for reading. A copy of the code can be found here. No support is provided, nor can I guarantee that the interpreter will run error-free on your computer.

#code #music

Reply to this post by email ↪