week 72: automatic music hackathon

I went to Brooklyn, I went to a hack day, I built a thing called grid, which touches on a few things that I am wrestling with for my master’s thesis.


Grid takes an image from Wikipedia, turns that image into, wait for it,  a grid of buttons, and then maps those buttons to pitches, based on the scale that you specify.  The mapping is based mostly on the colour, and slightly on the location of each button in the grid.



Specifically, the mappings are:

  • Colour saturation is volume:  more colourful colours are louder.
  • Pitch class is hue, mapped to the given scale:  hue, like pitch, wraps around.
  • Octave is brightness:  lighter colours play higher octaves.
  • Timbre is the RGB values:  they scale a sine, triangle, and square wave.
  • Filter frequency is diagonal:  the x + y location in the grid.

The synthesis is all done in WebAudio.  This hack would be much more impressive with a good synth behind it, which I will try to build at some point.

This is related to my thesis in terms of converting abstract geometries into mappings.  In this app, the mapping is set, and I’m taking the first steps at going from the Real World to abstract geometry.  It’s probably the simplest abstract geometry possible, but it will do for now.