VJ set for Bosques de mi mente

I had the honour to be invited to VJing in the farewell concert of Bosques de mi mente at the Espacio Ronda in Madrid.

The concert was grabbed and is entirely available on youtube here or you can see a small extract here:

If you like the music, all Bosques’ music is under creative commons and downloadable at his bandcamp website.


LightBox: a VJ-oriented LEDs controller


this is probably the first complete and usable device I have been able to make with an Arduino, so I am very proud of it!

An undecorated version of the LightBox

LightBox, a VJ friendly RGB LEDs controller

Recently we have seen the explosion of bright, colored RGB LEDs everywhere. Their cost has been going down tremendously, so that now you can easily buy meters of LED chained in strips for few euros.
These strips usually come with some sort of controller which is OK for your home, or a Christmas tree, but may miss some functionalities in other contexts.

The objective:
I want to use an LED strip as a complement to my VJing performances, for example, putting a strip on the front of the stage and making it flash according to the music. More concretely I want to have separate control for luminosity and for color (as in a performance you can be more interested in the amount of light than the color itself). Then I want to have some oscillators for both light and color and be able to control their speed, and I want to have luminosity and/or sound to be controlled by the music, or, more specifically, by the bass (to have lights in sync with the rythm).

The materials:
It’s pretty simple to control an RGB LED strip with an Arduino and three TIP120 transistors, so I decided to build my own custom controller.
As the RGB color space does not separate color and luminosity I have adopted the HSV color space which has different dimensions for value (luminosity), hue and saturation .
The controller interface should have then:

  • A pot for increasing/decreasing luminosity
  • A selector for activating oscillation or music control
  • A pot for controlling the oscillation speed
  • A controller for the saturation value (from white to fully saturated)
  • A pot for selecting the hue
  • A selector for the color oscillation
  • A pot for speeding up/down the oscillation

You can see how the final interface in the following picture:

The LightBox interface

The LightBox interface

For the electronics I have used an Arduino Diecimila as a controller, three TIP120 for controlling the 12V current needed to lighten the LED strip, a couple of commuters, and a bunch of linear, 10K potentiometers, with both horizontal and rotation controlled. Then, of course, a 3 meters LED strip, its particular 4 pins connector and a sufficiently powerful 12V source. For catching the sound I have used a pre-amplified mic kit form Sparkfun.

I have soldered all the components to a big protoboard, and soldered some pins to the back of the board so that you can plug it to Arduino as a shield (useful for replacing the board if needed!).

This slideshow requires JavaScript.

Everything is then put into a colored box, potentiometers with their caps, and some printed decorations have been glued on the box. I made the decorations with Inkscape. For making the HUE circle I have used this trick.

The code of the controller is pretty straightforward: it just needs reading some digital pins for understanding in which position the commuters are, then read the values of the potentiometers for getting the amount of saturation, hue and value, and control the oscillation.
As for the oscillation I have created three kinds: a triangular oscillation, which is nice and smooth, a square oscillation, for strobo-like effects, and a random oscillator.
There are two tricky parts in the code. One is the sound control, especially if you want to make the device reactive only to low frequencies. For this part please have a look at my previous post. The other tricky piece is the HSV to RGB conversion. Fortunately there are a lot of examples on the internet, and one specially thought for integers (much faster than float computation), though I had to slightly adapt it for Arduino has 16 bits integers and was making some errors in the calculations. You can download and use my code for free from my repository.

The results:

You can see a couple of pictures here:

And a video:

Sequencing and VJing: Iannix, Duration and my OSC to MIDI converter

Hi there,

I have just discovered the existence of two great tools: Iannix and Duration.

They call themeselves timelines or sequencer, the idea behind both is the same: offering a tool for synchronizing and orchestrating programs for music and video through MIDI and OSC messages.

Iannix seems to be an advanced and complex instrument. As its website says:

IanniX is a graphical open-source sequencer, based on Iannis Xenakis works, for digital art. IanniX syncs via Open Sound Control (OSC) events and curves to your real-time environment.

A screenshot of Iannix

It allows building bidimensional and even tridimensional waveforms that can be used to ‘play’ a virtual instrument, i.e. an OSC or MIDI channel, mapped to whatever you want. You can create these forms manually or you can generate them synthetically through a scripting language.

Duration according to its website is:

a timeline for creative coding. Create live performances, interactive installations, and music visualizations by synchronously composing servos, lighting, and projection

A snapshot of Duration

It is a simpler version of Iannix, it hasn’t any scripting language and the interface is more reduced. Though more limited than Iannix, it has a very interesting feature: it can import mp3 tracks so that you can synchronize things with the music, while in Iannix you only have time as a reference.

So I decided to test Duration more carefully. One problem I have though is that Duration only sends OSC messages and no MIDI, so if I want to use it with Resolume 2.4 I need a OSC to MIDI conversion.

I have tried a couple of tools out there: Moco and Konkreet but I have to say that they did not work they way I expected.

So I decided to make a tool myself in Java, the OSC2MIDI, available for download at my code repository.
It is called OSC2MIDI and can be downloaded as a jar executable here.

OSC2MIDI interace

New performance: Fri 1st 2013

Next friday, february 1st, we’ll be playing in Madrid (sala La Faena II) with Sacramento and we would like you to come.Image
We offer 2 hours of music, live visuals, VERY fairly-priced beer and a good trip.
Take-off schedule for 21:00
Don’t miss it!If you’re not in Madrid or you can’t come, we’ll surely miss you. But you can keep listening to our music here:http://mechanik.bandcamp.com