If you've ever seen an Umphrey's McGee concert, you might notice that the light show is something else. Jefferson Waful (the lighting guy) uses bright, complementary colors choreographed to the music.
Generally, there are certain parts of the songs that always have their own lighting. For example, for the short satanic vocals in Resolution, the lights will always switch to dark red, then back to blue or green when they're over.
I wrote a program to scan Umphrey's videos and pick out the 1-3 most prominent colors. Another script draws these data left from right, where each pixel is half a second of rock and roll. The resulting diagram is a visual thumbprint of an Umphrey's song. Here are two samples from All Good 2009:
40's Theme |
The Floor |
I'm currently scanning the rest of the All Good concert. I plan to arrange a show poster with a thumbprint from each song.
The scanner uses JavaCV to interpret the video data. I created a histogram of the colors in each frame. I calculate the HSV coordinates for each pixel, and I tally the saturation, value and pixel count by the pixels' hues. I only count pixels that are above a minimum value. From the histogram, I pick out the most prominent color by finding the hues with the highest pixel counts. I use the average recorded value and max out the saturation.
Then I use Python Imaging Library to plot the data in an image file.
Right now I'm really only plotting some parts of the true colors. I maximize saturation, making the diagram as colorful as possible. However, that removes white lights (as the color white has zero saturation). So white lights can turn out yellow or brown on this plot I'm still experimenting with the algorithm to see if I can capture white/grey lighting as well.
I'm pretty excited about how this is turning out. I think I will place the colors as highlights on top of a black and white photo of the show. Stay tuned for more updates as I arrange the poster. If you have any requests for shows, please let me know.