Recent Articles

How to practice Carnatic music with a metronome - Part 1: The Basics

May 25, 2013   #Tala Keeper  #Metronome  #Layam  #Training 

Internalizing the flow of musical time, known as “layam”, is an essential aspect of the training of a student of Carnatic music. Though the adage “sruti mata, laya pitah” (“pitch is the mother and time is the father”) is oft repeated, what we find in practice is that a reference for the sruti (tonic) is recommended for and always used by even beginner students, but a comparable reference for time in the form of a metronome is almost never seen.

Read More ...

Fun with nine nadais

May 22, 2013   #Tala Keeper  #Metronome 

Here’s something fun done in Tala Keeper - a walk through of Nine Nadais in one big 36 beat cycle. If you’re viewing this on your iOS device, tapping that link will open it in Tala Keeper. If not, the pattern will play in another browser window in the free HTML5 simulator.

Read More ...

Tala Keeper 1.3.0 released

Mar 13, 2013   #Tala Keeper  #Metronome 
Tala Keeper version 1.3.0 is the first public release of a visual metronome for practicing music involving complex (or simple) time structures.

Taming the ScriptProcessorNode

Jan 30, 2013   #Web Audio API  #ScriptProcessorNode 

The Web Audio API provides graph based API for audio generation and processing primitives with a focus on high performance and low latency. For custom processing that is not covered by the builtin native audio nodes, it provides a ScriptProcessorNode whose processing is determined by a Javascript function. Though the ScriptProcessorNode is presented like any other node type by the API, its behaviour differs from the other native nodes in some fundamental ways. This post examines some of these differences using a simple chime model as the use case, and derives some suggestions for the Web Audio API specification.

Read More ...

Exploring graha bhedams

Dec 30, 2012   #Graha bhedam  #Shruti bhedam  #Carnatic music  #Raga 

Here is a demo web app for exploring rāgās and their bhēdams.

Read More ...

Scratch pad for text with diacritics

Dec 27, 2012   #Diacritics  #Carnatic music 

Roman text with a few choice diacritics are a common need when writing about Indian classical music. Creating unicode text with diacritics that can be ported between applications is in general a pain. So, I made a small in-browser app that serves as a scratch pad for common diacritics.

Read More ...

A critique of Tuna

Nov 9, 2012   #Web Audio API  #Tuna 

Google has open sourced the Tuna set of effects used in their Jam with Chrome project. Here, I collect some thoughts about the code design decisions for their effects framework, since I myself have written Steller.

Read More ...

On eval and evil.

Aug 28, 2012   #eval  #DSL 

“eval is evil” has become a maxim repeated in the Javascript community. Douglas Crockford, in Javascript: The Good Parts, rightly advises against hidden and explicit uses of eval for security and clarity reasons. Now, I find eval useful to implement DSLs in Javascript. The in-browser CoffeeScript compiler wouldn’t be possible without eval (directly or indirectly). So, in this post, I wish to explore what appears interesting about eval that is relevant to building such DSLs.

Read More ...

Toy language using j-expressions

Apr 30, 2012   #Compiler  #J-expression  #Language  #Scheme 
Posted a “stream of thought” compiler for a toy language based on the idea of j-expressions as a representation for ASTs. Code Docs