Recently I’ve been playing around with writing some VJ software for the PC. I decided to do this after enjoying writing a handful of audio reactive sketches in Processing but then wanting to have something with more control. The other thing that Processing gave me was a desire to complete the project quickly without worrying too much about how well it was engineered. One thing that helped here was that I decided to fit the entire thing inside 64k – I guess you could even call this the spiritual suscessor to my 1KDJ program from last year. With only 64k to play with I didn’t have enough space to add things like giving the user the ability to load their own models, images or effects, or to reconfigure the way that the existing effects are set up. With these deliberate limitations in mind you can think of 64KVJ as a “fixed function” VJ program.
So I grabbed the code from my 64k framework (the one that I used for Transform) and started hacking away. I added Bass to listen to incoming audio and to give me a spectral analysis of the frequencies in the signal. I then use this to modulate the various effects so that, let’s say, the background effect animates faster when it sees loud bass frequencies. I could probably have done the audio input myself (I already have decent enough FFT code in my framework) but, to be honest, the thought of having to deal with Windows audio input was just too much, especially when Bass already exists and does such a good job of it already.
Next up is the control section. There’s a UI for this in a separate window, but the program also responds to MIDI. I bought a cheap MIDI controler with plenty of sliders and knobs (the really rather excellent Korg nanoKontrol) and configured the program so that the whole thing can be controlled directly with it. This means that I can turn effects on and off and chage their parameters using sliders and knobs, which is much nicer than using a mouse. I’m also thinking of possible live use with this program and my days of DJing tell that being able to tweak multiple controls at once will be a win.
The project is currently about 90% complete – I just need to tidy up the window handling code and fine tune the effects and it’s done. However, I have a couple of other, rather more urgent projects to get out of the way first so it’s currently sat on my virtual shelf. I plan to get it out later in the year when I have more time and I’m posting it up here for two reasons. Firstly, it’s a reminder so that I don’t forget about it. Secondly, I’m curious to know whether anyone else in interested in using the program. I would love to see this used live! Give me a shout if you’d love to get involved in making that happen ;)
More screenshots of 64KVJ in action after the break..