This is a research blog for my MA in Visual Effects @ Ravensbourne, UK.
Finally, this is my Research Proposal.
- Posted by rrraul on 30/05/2013 | PG04 |
I’ve finally managed to test the two lasers I’ve got. The first one is a green laser, tested before. The second one is a RGY (red, green and yellow) one. Both have the option to be controlled via DMX, which basically means I can play with both within the same system, on the same application. So, the only thing I’ve had to work on was to include more channels.
The RGY has more parameters, as you can choose to run with just one colour or all three at the same time. So, I started my app connecting first the RGY (10 channels in total) and then the green (8 channels in total). I felt that both worked quite nicely, but I really need to define some patterns.
The new app contains channels for both projectors.
- Posted by rrraul on 27/05/2013 | PG04 |
One of the ideas I had was to generate music in real time and pass parameters to the Laser application via OSC using Max/MSP. Max is a visual programming language for music and multimedia developed and maintained by San Francisco-based software company Cycling ‘74. During its 20-year history, it has been widely used by composers, performers, software designers, researchers, and artists for creating innovative recordings, performances, and installations.
Open Sound Control (OSC) is a protocol for communication among computers, sound synthesizers, and other multimedia devices that is optimized for modern networking technology. Bringing the benefits of modern networking technology to the world of electronic musical instruments, OSC’s advantages include interoperability, accuracy, flexibility, and enhanced organization and documentation.
One of the nicest things in the new version of Cinder is that it now has full native support to OSC, making it very easy to implement it in a project.
On the pictures below, I show how easily I can send OSC packets from Max and receive them on my app (check the Xcode console). The difficult part now is to compose something interesting enough that could contribute to the lasers.
- Posted by rrraul on 22/05/2013 | PG04 |
First tests with the lasers after getting the fazer machine. I’m very excited with the possibility to integrate some music response to the way the patterns are generated. Sound do make a great contribution to the lasers. So, basically what is going on here is that the application I’ve been writing in Cinder communicates via DMX with my Enttec interface, which is dealing with the various channels of the laser projector. I still need to test it with two projetors. It’s still work in progress…
More about my experience with the DMX interface controller and Cinder here. And more about controlling lights and digital communication via DMX here. Both recordings below were done very quickly with my iPad 2, so bare in mind that they don’t look “super” HD. ;-)
- Posted by rrraul on 21/05/2013 | PG04 |
An idea I’m thinking for some time now: the possibility to implement a solution that will allow a video player (software) to be able to control lights and objects. It would be useful for installations as an experience. The project could develop to an interesting “out of home” advertising platform. Not that it not existent today, but it would de certainly be a helpful thing. I’m sure that there are some options on the market. But such idea would simplify the way a video can interact with real objects. Thinking more of films as software apps that could interact with the lights of your house or maybe your devices and so on. That could be very interesting. I will do some tests and I should publish somethign soon.
For that purpose I could use a simple DMX dimmer pack:
A dimmer pack is a collection of dimmers used to DIM, or change the intensity of the lights in a theatrical show. Dimmer packs come in many varieties, from budget (anything from £50) right up to the high end stuff (up to about £3000). They are commonly controlled remotely from the lighting control console via either 0-10v analogue, or (more commonly these days) DMX-512.
An ideal dimmer changes only the intensity of the light, leaving all other attributes unchanged. Most dimmers lower the voltage to the light, which also causes the light to shift to the warm/red end of the spectrum because the filament cools. Some modern lighting instruments include a dimmer in the instrument (either mechanical or electrical) and do not require a dimmer pack. Most dimmer packs also distort the sinusoidal waveform of the AC voltage and can cause noise and problems if connected to motors. Some special dimmers produce true sine wave output.
- Posted by rrraul on 17/05/2013 | PG04 |
Simple overview on the work that I’ve been developing for the Concept and Prototyping unit and where am I heading to? In case you’re not able to read the pdf embed here due to PDF limitations, you can read it in a new window clicking here.
- Posted by rrraul on 15/05/2013 | PG04 |
The Enttec DMX USB Pro is an interface controller that allows computers to control DMX devices directly. It is light-weight, portable, and ready for a number of professional applications. It also offers an API which makes the adapter accessible. After spending some time looking for DMX compatible libraries in C++ for the Enttec adapter, I came across this one called DMXUsbPro (more details about the library here), a Cinder library written by Andrea Cuius-Boscarello.
Based on posts at the Cinder forum, the library looked very straightforward and simple to use. Though, I must mention I’ve experienced some issues making the drivers work properly (which was previously mentioned on Cinder’s forum). If you have experienced an unresponsive adapter, you may want to have a look at this post. It describes possible a possible scenario when two drivers try to connect to the same port, generating a conflict and preventing device connecting properly.
Basically, there’re two versions of drivers for the Mac, both released by FTDI, the D2XX driver and the VCP one. If both are installed, the D2XX doesn’t work (needed for the Enttec PRO Utility). So, Enttec recommends getting rid of the VCP driver, which is also used by older boards of Arduino (like my Arduino Duemilanove http://arduino.cc/en/Main/arduinoBoardDuemilanove).
Initially, I had two drivers installed (D2XX and VCOM), which were causing a conflict. Clearing it by removing the VCP driver made the port where the adapter was plugged inaccessible. When I tried to find the port, I got this:
// On Terminal: ls /dev/tty.* // The output was: /dev/tty.Bluetooth-Modem /dev/tty.Bluetooth-PDA-Sync
And compiling the Cinder app that was trying to connect to the device generated the following output on my console:
DMX usb pro > List serial devices: cu.Bluetooth-PDA-Sync DMX usb pro > List serial devices: tty.Bluetooth-PDA-Sync DMX usb pro > List serial devices: cu.Bluetooth-Modem DMX usb pro > List serial devices: tty.Bluetooth-Modem
Comparing to what I had before when both drivers were installed:
// With this input ls /dev/tty.* // The output was: /dev/tty.Bluetooth-Modem /dev/tty.usbserial-EN129289 /dev/tty.Bluetooth-PDA-Sync
The compiled app was sent the following to my console:
DMX usb pro > List serial devices: cu.Bluetooth-PDA-Sync DMX usb pro > List serial devices: tty.Bluetooth-PDA-Sync DMX usb pro > List serial devices: cu.Bluetooth-Modem DMX usb pro > List serial devices: tty.Bluetooth-Modem DMX usb pro > List serial devices: cu.usbserial-EN129289 DMX usb pro > List serial devices: tty.usbserial-EN129289
Basically, my app had to connect to the device using tty.usbserial, which was visible to me just when I had both drivers installed. The problem was that having both drivers conflicting was making me unable to connect to the port, even though it was visible. Unfortunately, even after removing the VCP driver, I still had some problems getting the library to work and I ended up posting on the forum. Andrea himself suggested that I should get rid of the D2XX driver - the one that was enabling the Enttec Utility to work instead of the VCP. Very clever suggestion. After doing that I managed to get the adapter working beautifully.
- Posted by rrraul on 01/03/2013 | PG04 |
One of the advantages of Cinder is its flexibility and focus on more abstract projects, such as art installations. For my purposes I wanted to find a way to communicate with DMX devices.
DMX512 (or simply DMX) is a standard protocol for digital communication, commonly used to control stage lighting and theatrical effects, which basically means moving lights, colour changing lights, fog machines and so on. The main aspect of the DMX protocol is the ability to transmit data on multiple channels (or more precisely up to 512 channels) over a single DMX cable, allowing DMX enabled devices (such as dimmers and intelligent fixtures) to receive several control channels at once.
This is extremely interesting considering that I can write apps that can basically control electic objects around. That’s not essentially somethings new or disruptive, though, I’m focused on new ways to interact with objects for art and communication purposes; things that can make us think about our environment and how we interact with it.
For my research I initially considered writing an video player that could interact with real objetcs in a timeline based method. That would allow me and other people to create content that could potentially extend our perception of films and how we interact with films emotionally. Although I know this is a very very broad idea and there’re so much out there following the same concept, interacting with films is something that haven’t change much since it was established as art form. By creating a sort of player, I would enable other people to create more videos that could interact with real objetcs. This doesn’t necessarily is focused on any kind of business idea or model for making money, but I can think of some commercial possibilities maybe in fashion or some sort of digital out of home for advertising. The focus here though is more the conversation between expression forms.
The image below shows a basic scheme for a DMX system containing a console, dimmer, fixtures and automated lighting.
The protocol transmits information asynchronously in packages of values ranging from 0 to 255 (or 1 byte a time). In asynchronous data transmission (as opposed to synchronous data transmission), data is sent one byte at a time not requiring perfect synchronization throughout the system and devices, but their timing signals must be close (within about 5%). The method is relatively simple, and therefore inexpensive.
- Posted by rrraul on 19/02/2013 | PG04 |
I’m increasingly getting more interested in lighting and in working with lights for interactive art installations. First because physical interaction is very interesting. I see more and more of smart objects and a huge potential to incorporate that to the screen and computer interaction. Playing with the Kinect was a mind opening and since then, I’ve been reading more about physical computing and how to incorporate alternative ways and interfaces with the screen.
Also, Cinder is becoming more attractive as I’m spending more time coding and learning C++. For this matter I’m currently reading a couple of book, such as Exploring C++: The Programmer’s Introduction to C++ by Ray Lischner, C++ Cookbook (O’Reilly) by D. Ryan Stephens, Christopher Diggins, Jonathan Turkanis and Jeff Cogswell and Jumping into C++ by Alex Allain (his website was also very helpful offering very straightforward examples).
I’m doing relatively well and getting my head around the language quicker than I’ve imagined; at least the fundamental part. Even though having a library such as Cinder is also quite helpful, getting more familiar with the programming language is very important if not essential. So, I’ve set a schedule of readings and exercises in order to achieve that.
Alex Allain book’s Jumping into C++ and his website are giving me quick entry points and demonstrating more of the fundamental part of the language. At the same time though I know it’s a convinient and accessible way to get introduced to the language, it’s important to get more sources that can offer me more real scenarios and more complex knowledge of C++. In this respect, the O’Reilly C++ Cookbook book explains lots of cases and frequent solutions for classical problems that C++ usually face.
Last but not least, Making Things Talk: Using Sensors, Networks, and Arduino to See, Hear, and Feel Your World: Physical Methods for Connecting Physical Objects by Tom Igoe is a lovely book. Fun and easy to read but full of information and very productive. I’m very glad I came across this one.
Exploring C++: The Programmer’s Introduction to C++, Ray Lischner
C++ Cookbook (O’Reilly), D. Ryan Stephens, Christopher Diggins, Jonathan Turkanis and Jeff Cogswell
Jumping into C++, Alex Allain
Electronics Explained, Louis Frenzel
Making Things Talk: Using Sensors, Networks, and Arduino to See, Hear, and Feel Your World: Physical Methods for Connecting Physical Objects, Tom Igoe
- Posted by rrraul on 12/02/2013 | PG04 |