HTTPS clone URL
Subversion checkout URL
A proof of concept social crowd beat visualization thing, inspired by Giles Bowkett's RubyFringe talk.
Fetching latest commit…
Cannot retrieve the latest commit at this time
|Failed to load latest commit information.|
= SocialBeat A proof of concept social crowd beat visualization thing, inspired by Giles Bowkett's RubyFringe talk. Here is an introductory screen cast, under 3 minutes long: http://vimeo.com/2139958 Only works on OSX, maybe only on Leopard = Install gem install ruby-opengl gem sources -a http://gems.github.com gem install xaviershay-rbcoremidi = Usage # Start archaeopteryx # Open MIDI Patch Bay.app # Create a new input ("Archaeopteryx") # Create a new output ("SocialBeat") ruby run.rb artists/simple.rb vim artist/simple.rb # Try changing the base_color and watch it morph on the fly. oooooooooh. If it complains about loading rbcoremidi, this means that you have to compile it yourself. Grab it from github: http://github.com/xaviershay/rbcoremidi/tree/master, compile, and put the bundle into vendor/rbcoremidi = Current state DONE * Hot reloads your artist file * Accepts MIDI input TODO * Some cool examples, esp with multiple inputs * Nested reloading (files included from an artist) * Canvas::OpenGl needs to be fleshed out so you can actually draw cool stuff * Make a screencast showing awesomeness * Profiling and performance work = Architecture A subclass of SocialBeat::Artist is instantiated on the fly, as the code file changes. This instance is responsible for drawing and update logic. It is totally stateless - any state it wishes to keep should be stored in the env variable that is passed to it by SocialBeat::Runner This allows the hot swapping to work. Any drawing should be done on the canvas object, so that OpenGl can easily be switched out for processing/directX/AWESOMEASCIIART/whatever