In support of the socket interface I'd like to work on, I've been refactoring the play_song mega-method. My work so far is here:
https://bitbucket.org/micahwedemeyer/lightshowpi/commits/9827e9659c91392f312eada9ca49e6bfb3ef25e9?at=pipes_and_filters
Basically, I want to make sure that people like the overall approach: Breaking things up into individual objects responsible for their little piece of functionality. The end goal is to build a pipes-and-filters system where the audio data is passed through various filters and the end output is the audio data along with the light matrix values.
It's been a lot of work so far, and there is a lot more work and cleanup to be done. I just don't want to do any more work on it if others don't support the direction I'm heading in.
Micah