Saturday, May 11, 2013

The Chromochord: A Bioelectronic Musical Instrument

So I have not been posting much lately because I have basically dropped most projects I am working on to finish up my new version of the Chromochord. If you don't know what the Chromochord is Here is a good description of the original version. On top of building it I have been working hard with Francisco Castillo Trigueros a great composer to make music for it.

The Chromochord projects goal is to create some form of two way communication with nanotechnology and allowing that interaction to create a stimulus that can be experienced in the non-nano world.
I think photoactive proteins are really cool and I work with them. They are perfect for this because we can interact with them using light and they can respond quantum mechanically by changing their light absorbance.
Light-Oxygen-Voltage domains use a flavin-mononucleotide(FMN) chromophore that when reduced(gain of an electron) because of photoexcitation change their absorbance drastically around 450 nm and the protein undergoes a conformational change. They are nano light driven machines!

 Protein Model of a LOV Domain Undergoing Conformation Change

For my Ph.D. research I engineered plant proteins(the second LOV domain of Avena sativa (Oat) phototropin 1) and expressed and purified them using a transgenic bacterial system. The engineered proteins respond to light differently due to difference in amino acid sequence. Data on the engineered variants can be found in this Scientific article here. Many of the mutations centered around the FMN chromophore to modify the electrostatic environment and sterics which helps govern that metastable light excited state.

You can interact with a model of the protein in 3D here:

I chose to use sound as the way the proteins interact with the non-nano world (human beings, &c.). This protein does not actually generate sound. We are sonifying its response to our interaction with it. I don't think people have chances to experience the nano-world and this was a chance to bring it smack-dab to their ears.

Music was generated by measuring the proteins response to light and using that to modulate a base set of notes. So what you do is shine light on the protein to sort of strum it quantum mechanically. You measure it's response to this strumming spectrophotometrically and then you press a key to play a note whose pitch is modulated by the protein.

These interactions have also been used to manipulate custom musical phrases written by Francisco in a self-playing version of the Chromochord. He also integrated protein's thermodynamic unfolding and aggregation was integrated into the music.

 A LOV Protein's Response to Light as measured by UV-Visible Light Absorbance

So basically the way the Chromochord works is that we have the device measure the absorbance of the LOV protein in each well of a plate(What a microplate looks like). Because the proteins response is governed by thermodynamics we have some unpredictability, we don't know exactly how the solution of protein in the well will respond but we have a good idea. As time goes on a percentage of the proteins can degrade or aggregate and cannot interact with light anymore. This is dependent on each engineered variant. This also changes the response.  

The first version of the Chromochord was built on top of a UV-Visible light absorbance based plate reader. As you can see below the Chromochord was of significant size and weight. As you can see it was meant to be played live with music and lights controlled through buttons. I wrote software to interact with the plate reader and interfaced it with an arduino and a custom version of ttymidi I wrote. Layers could be built up with sooperlooper. It is kind of cool. The musical layering idea was inspired by Zoe Keating.

The first version is not really portable. But I did bring it to Berlin and demo it at Humboldt University of Berlin. There is a problem with timescale also. The Chromochord uses the physical chemical state of the protein to determine sound played but most plate readers use a beam splitter and/or motors to move the plate through a single light source. It takes seconds(5 s or more) to measure a whole plate at the fastest. I even looked online in purchasing a faster plate reader and no company sells one! Yikes. So that means if I wanted the Chromochord to have more realistic interactions with the world I would need to build my own plate reader. Initially I planned on making it able to read a whole plate but decided that the Chomochord probably wouldn't use a whole plates worth of protein in it so after talking with Francisco I decided on 12 wells.

The new Chromochord I built is based on a single wavelength measurement, which can easily be modified do more than one. Most modern plate readers use a bright white light and filters to generate a number of wavelengths. An easy way to give the Chromochord multiple wavelengths would be to use an RGB LED. Currently, it uses an ~460 nm blue LED as that is the wavelength I am most interested in. The current amount of time it takes to measure and filter on 12 wells is <350 ms (almost all of that is software filtering)!!!

What the Chromochord is now composed of:
24 LEDs: 12 for Excitation of the Protein and 12 for spectroscopic measurement
12 Light Dependent Resistors (LDRs)
1 Arduino Due
Assorted wires and resistors

The LEDs were high intensity Blue LEDs. I used Blue because the protein is both excited and absorbs at around 450 nm. I needed them to generate a significant amount of light in the milliseconds they were flashed on and off so I went for some high intensity ones. I have not measured the lumen output for the flash of light.

If I change anything it will be the LDRs they aren't bad but I think they are the reason I have so many problems gaining stable measurements. I purchased them because originally I was thinking of doing all 96 wells and at $5 a pop for a phototransistor, that's alot of money.

I chose the Arduino Due because it has a 12 bit ADC, which probably wasn't even enough but I had tough luck finding a 12 channel > 12bit ADC that I could soder and using one ADC per LDR I was just too lazy for. I actually thought the 12 bit wouldn't be too bad and it wasn't. I probably could have also used some hardware filters to give my measurement more resolution as my readings were only using a fraction of the actual spectrum.

Here is a link to the Arduino code: Chromocode
The code filters the measurement data, creates baselines and all other sorts of stuff. Then it prints the readings to the Serial port which can be read by any program. We were using Max/MSP. But like with the original Chromochord, one can always route the data to ttymidi on Linux.

I will make another post on the Artistic Installation we did and also post the Max code.

This second version is much faster but cannot be directly played as is. Instead a score is written as 1s and 0s of course and used to control the photoexcitation of the proteins. It allows for much more complicated music to be played.

Here are pictures of the new Chromochord:

The Box

The Guts

Inside the Box

The Chromochord running

Visualizing the Wells and generating the sound using Max

The Chromochord Running

The Audio and Video Chromochord Installation