Thanks, Julien, for taking the time to do an interview. First off, could you tell us a little about your background?
I’m Julien Bayle from France. After my French diploma in both biology and computer sciences, I worked inside the IT Network Architecture world but played with art & technology every night. Then, naturally, I decided to dive into art completely in 2009.
Since then, I have designed the big protodeck controller for Ableton Live, made my own arduino-based RGB monome clone and attained an Ableton certification. Now, I’m providing a lot of courses about Ableton Live, Max 6 & Max for Live too. Since I can read and write C/C++, Java and other languages, I also design my own tools and other people’s tools using openFrameworks and Processing.
I’m mainly working on my own art, making music and playing my A/V live performance.
I work at the crossroads of sounds, visuals and data, trying to immerse the audience inside my own electronic territories where minimalism remains the master.
I just provided a workshop about “Approaches of A/V performance using Max 6” to Störung festival 8 in Barcelona. I’m definitely exploring and trying to improve my own systems every day to make more intuitive performances and to dive more deeply inside my own art, and my perception of sound and visuals.
What kind of artwork currently has your attention?
I’m currently impressed with, and in love with, minimalistic A/V performances or installation.
I also appreciate particles system, which is something I’m playing with myself. I’m also very interested by generative structures - whatever the form they take - in sound and music, but also in visualization systems.
I like to try coding rules and constraints to play with chance, then to observe the result.
Can you give us some examples of your current or recent work?
My latest performance at Störung festival 8 involved my current sound-reactive lines system. Here is a very short video showing this system just before the show (without music):
Here are some example visuals from that project:
I’m currently designing the whole software & hardware implementation for a piece of art written by Pippo Lionni, with Videospread / Céline Jouenne from Marseille managing the project. “The Village” is a generative piece in which a village of people wakes up, becomes more active - and then is bombed.
The audience can interact with the piece using a small device based on Arduino. I will describe the whole system by sharing some examples in Article 3 of this series - even though this piece is based on openFrameworks. The device uses wireless communication with the controlling computer, and includes some other components like accelerometer, battery power (for autonomy), and an Xbee 2.4 Ghz module for wireless communication. The Arduino module used is the fio model.
This piece includes behavioral sequences for each character which causes them to walk, run, play, sit and sleep. When attacks occur, people run in panic or have “smart” behavior like “fleeing the bomb”. I like to try coding rules and constraints to play with chance, then to observe the result. I will definitively work in that way for some future installations I’ll be designing soon.
...once you are motivated, and once you’ve seen some nice examples of pieces made with the technology, you should dedicate your time to make it.
I had a chance to review your book project: "Programming the Arduino in C". One of the things I found interesting was that, in addition to presenting the Arduino programming language, you also spent time on both circuit-building and integrations with other technologies (Max and Processing in particular). What did it take to become comfortable in each of these technologies?
I would quote 4 rules I’m often suggesting to my students or friends:
- Look at artists or artworks people made with that technology;
- Work through tutorials;
- Read some books (if you like reading);
- Make your first project!
Looking at existing art or tools made with the targeted technology is a nice way to give you examples, sometimes to reassure your brain - which is always looping over the thought “Is it that technology I have to use?” It can also give you motivation. With your own goals, if you are motivated you’d search out everything on the subject. This is really important when you start learning something new.
At some point, you’ll have to study. Learning Max 6, Processing, openFrameworks or other tools requires one to create basic projects and work through tutorials. Often, people forget this step and want to work directly and quickly. This can be a very good approach because it provides sometimes quick satisfaction. But that can also prevent people from continuing their travel inside a technology: sometimes achieving even a simple result can take hours or days for new users.
So following tutorials provided by the software developers or a related community is definitively a winning way. It shows you real examples, offering you a start and giving you results quickly.
I always suggest people to read books (or ebooks, of course). We can find a lot of books about any of our technologies. Each book provides a different view of the subject. Look at the author background, life and work. It is important to have someone in mind as each book talks to you through paper. I always choose books by people I like or people I’d like to emulate because that works better for me - it makes my learning more efficient.
Finally, I suggest that people dive into their first project ASAP. The time factor is very important for two reasons:
The first is because the quicker you apply things you learned, the better you will remember them. The second is that we all desire results.
I’d add something about making your first project.
When I started my own Arduino-based RGB monome clone (named bonome), I didn’t predetermine all of the details of my project. I think it is important to ignore details at some point.
If I had known what it would take, I probably wouldn’t have ever begun the project. This is a fact - it would have frightened me. So I think there is a message here: once you are motivated, and once you’ve seen some nice examples of pieces made with the technology, you should dedicate your time to make it. So please: just let go of the details and get started.
What is it about the technology of the Arduino that you find most interesting?
The most interesting thing is its straightforwardness. Indeed, you have a tool ready to be used out-of-the-box. You only have inputs, outputs and a couple of useful features (like an Ethernet connector or Bluetooth antenna) depending on the board model you have.
Each Arduino comes with already pre-burnt chipset making them directly usable by using USB to upload our own firmware. The software that it is already burnt (by which I mean written) on the chipset is named the bootloader. We can change that bootloader and put in another one if necessary - this is something I explain in my book.
This bootloader is the first thing loaded when you power up the board. It is able to load the user-firmware and handle incoming data when you upload new firmware using the USB port. This makes things really easy for people who don’t know about chipset programming from scratch.
Another interesting thing for me is the huge community. As we’ve seen in other domains, the Arduino community became a kind of global technology resource, able to globally work, think and make. Today, the community produces/fixes/creates a lot of software - and even hardware (called shields) - around this an Arduino board that has not, itself, evolved a lot.
Although some new boards have appeared (like the Leonardo and Due) with new technologies under the hood, the user’s view of the Arduino remains: it is a simple Printed Circuit Board (PCB) with inputs & outputs. And I, myself, think it has to stay simple and that we, the makers, have to create more complex software.
Have you tried any of the other microprocessors that are in the marketplace? Things like the Maple, Beagleboard or Netduino?
I’ve only played a bit with Raspberry PI.
The only benefit is you have an OS available, not “only” firmware and a bootloader.
For what it’s worth, increasing the number of features increases also two things I don’t really like in these kind of projects:
- The number of points which can potentially have bugs,
- The number of features I will never use but that cannot be disabled.
I’d prefer making things that exactly fit my needs, and the Arduino always holds the answer.
Actually, I’m lying a little bit. I loved the MIDIBOX framework created by Thorsten Klöse. This is another framework dedicated to MIDI hardware for do-it-yourself building and design. I designed the protodeck controller using this system. The MIDIBOX community helped a lot too. The last version of the framework, which also includes other chipsets, are based around a real time OS dedicated to MIDI processing.
I’m a defender of using a hardware interface solely as control & feedback station.
How do you see Max fitting into the world of microprocessors, physical computing and the world of hardware-centric artwork?
We have now pure, high-level, calculation capabilities inside our small form factor laptops. We have to build software running on this hardware, and with Max 6 we can easily do that. Max 6 is optimized such that it can be used to produce the C++ source I need for external components like Audio Units plugins (AU) - directly from my gen~ patches.
Thus, we have real power inside our computer, and we should use it for high level efficiency in sound processing, visuals generation and general data processing.
However, we hardware-lovers want a tangible way to control this processing.
This is not always a requirement for me, but I think of hardware interfaces today as large “macros” for our complex and flexible software systems.
In the chapter 6 of my first ebook (titled “The 6 rules to design the best user-interfaces”, written in 2011), I’m wrote: Aim for a stupid box, but a good computer. Or how to get benefits of technology building unsmart interface?
This situation is still true today.
Why would I try to put a lot of calculations & specific data processing (like audio & video) in small chipsets, having to deal with their processing and energy constraints - as well as other electrical stuff - when I already have a working computer dealing with all of that?
So, I’m a defender of using a hardware interface solely as control & feedback station.
By “stupid box”, I meant that our hardware only has to deal with “lighting an LED”, “reading an encoder value”, and eventually “displaying a message on a LCD screen” and no more. These things are easy to design, but also involve protocols and data providers on the computer side.
Most current hardware controller work like that today.
The Ableton PUSH controller’s power, for example, lies in its physical components, design and nice LCD screen, but it “only” sends/receives basic (and compressed) bytes of informations to the computer. The scripting system processes, sorts, parses and interacts with Ableton Live API - and Max for Live too.
I’m happy to note that the ideas from the beginning of my electronic travel are still totally valid.
Where can we go to find out more about your work - and your interaction with technology?
You can check my website & blog, and keep in touch with me following me on FB. I’m also leading http://designthemedia.com too, which is the core of my teaching and consulting side.
Then, I just have my book “C Programming for Arduino” published by Packt Publishing.
The website to keep in mind is: http://cprogrammingforarduino.com
I’m on my way to write my own book about Max 6 & Gen that would be the book to read if you only know a bit of Max. I won’t dig hardcore details of Gen, but readers will be able to understand all the principles necessary to put their hands inside its core!