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
You can interact with a model of the protein in 3D here: http://www.rcsb.org/pdb/explore/jmol.do?structureId=2V0U&bionumber=1
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 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)!!!
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:
Inside the Box
The Chromochord running
Visualizing the Wells and generating the sound using Max
The Chromochord Running
The Audio and Video Chromochord Installation