introduction

This is an introduction to digital interfaces, with a focus on sculptural, critical, and experimental approaches to instrument design and interactive objects. This module was designed for a course called Interactive Art, part of the New Media + Sound Arts program at Emily Carr University. I try to update these materials each time I teach the course.

This module uses low cost microcontrollers to sense the physical world — buttons, light, proximity, touch, etc. — and map these inputs to processes and events on a computer. This system can also be used to send messages from the computer to control things in the physical world, like lights, speakers, relays, and small motors.

This site walks you through one method of connecting sensors to a computer. There are a number of protocols and platforms that do this — ArduinoRaspberry Pi, TeensyBela, and Daisy, just to name a few. I like the Teensy and Pro Micro development boards for introductory explorations because they are relatively inexpensive (about $12-16 for the board) and can be configured as a class compliant midi devices, meaning that your computer will automatically recognize the board as a midi device. If you need more inputs, you can upgrade to a number of other boards that are faster and/or have more inputs and outputs. Teensy even makes an audio adapter that lets you run audio programs on the teensy for stand alone projects, no computer necessary! That said, if you are doing complex embedded audio processes and audio latency matters for your project, I highly recommend taking a look at Bela — it’s a beautiful platform made specifically for sound.

MIDI (Musical Instrument Digital Interface) is a standard communication protocol created for connecting electronic musical instruments, but it is great for interactive video installations, live performances, and kinetic sculptures as well. MIDI messages can be mapped to a broad range of software — Max/MSP, Pure Data, Ableton Live, Reaper,  Mad Mapper, Processing — any program with MIDI input and/or output.

Next we’ll look at the software you will need