electronics

BEAM Day

This weekend I went to BEAM Day, a day of workshops for creating music and sound art machines. This day is part of this year’s events for the BEAM 2012 festival taking place  22-24 June at Brunel University. I can’t make the festival this year, so the BEAM day was a good chance to meet some people creating and experimenting with electronic music, sound art and performance controllers.

Alex Allmont created a collaborative workshop to build an electro-mechanical noise machine, the Polytherelegomuino. People were invited to build mechanisms out of LEGO that would in turn operate the controls of electronic synths. Each participant had a LEGO board to create a mechanism on with a turning shaft providing power, all driven from a central motor. The result was like a robotic synth knob-twiddling noise factory!

Lego synth knob twiddling machine at BEAM Day 2012
One of the Polytherelegomuino machines at BEAM Day 2012. I built the board to the right with the ‘hut’ on it, which housed a worm drive mechanism for slowly turning a frequency knob connected to the Arduino based synth.

Here’s a video of the final machine taken by Alex – WARNING: watch your speaker level, this is NOISY!

The synths used in the Polytherelegomuino are based on the Arduino synths of Mike Blow’s optical theremin instruments, the Theremuino and Energy Ball Theremuino which Mike was demonstrating on the day.

Mike Blow's Theremuino
Mike Blow’s Theremuino at BEAM Day 2012.
Mike Blow's Energy Ball Theremuino
Mike Blow’s Energy Ball Theremuino at BEAM Day 2012.

Codasign ran a workshop for controlling OSC compatible audio software, such as Max/MSP, with movement gestures via a Kinect. The Kinect to OSC interface they were using is built in Processing using OpenNI libraries, which allows a person’s movements to be tracked and mapped to OSC parameters. In the workshop they showed how a synth in Max/MSP could have parameters like pitch, number of harmonics and filter cutoff controlled by hand movements and standing position, all tracked through the Kinect.

Other workshops included Bruno Zamborlin’s mobile phone (accelerometer) based gesture recognition for controlling sound and Noisy Toys circuit bending workshop.

SX-150 MIDI Interface

Gakken SX-150 synth, with MIDI interface circuit
Gakken SX-150 synth, with MIDI interface circuit.  A Sparkfun AVR programmer was used to program the attiny2313 microcontroller used in the circuit.

The Gakken SX-150 synth has a stylus which is touched on a continuous strip to control the pitch of the sound. It’s hard to play tuned notes using the stylus and so a MIDI interface for the SX-150 is a good mod to make the synth more usable. For this reason, several MIDI interface designs have been developed, including designs by RJ, Stray Technologies, Narbotic Instruments and Mrbook. All of these interfaces convert MIDI to a voltage (MIDI to CV interface) which is connected to the stylus.

The Narbotic and Mrbook design are both Arduino based, the others microcontroller based standalone circuits. I’ve had a go at making RJ’s design, prototyping it on a breadboard. The circuit works well, although as RJ points out, the accurate tuning range is about 2 octaves. Beyond that, the tuning needs tweaking to the higher octaves using the pot included in the circuit.

 
 
SX-150 MIDI Interface Breadboard

The circuit uses all the components described by RJ, except I swapped the TLP552 optocoupler for a 6N137. I used avrdude to program the attiny2313 microcontroller using a Sparkfun AVR programmer.

One gotcha that’s worth pointing out in getting this circuit to work is that the attiny2313 ships programmed to use the internal clock oscillator at 1MHz, but the circuit is designed to work at 20MHz using the connected crystal. The serial interface to the MIDI input is set up in the code to work at 20MHz, and will not work at 1Mhz. This is because, roughly speaking, the UART in the attiny2313 cannot be set to run quickly enough to accurately receive MIDI at 31.25kHz baud for a system clock of 1MHz in asynchronous receiver mode. The clock can be set to use the external 20MHz crystal by programming the ‘configuration fuses’ using avrdude. The oscillator configuration is set in the lower fuse bits. These can be read using avrdude as follows (this is for a Sparkfun programmer, option -c may need to be changed for other programmers):

avrdude -c usbtiny -p attiny2313 -U lfuse:r:-:h

Avrdude shows the default lower fuse configuration as 0x64. To use the external 20MHz crystal, the following avrdude command can be used:

avrdude -c usbtiny -p attiny2313 -U lfuse:w:0xE8:m

The attiny2313 should be ready to be programmed with the hex code provided by RJ. This can be uploaded using avrdude using the command:

avrdude -c usbtiny -p attiny2313 -U flash:w:SX150MIDI.hex

Update: I prototyped the MIDI interface onto a stripboard to have a permanent version of the circuit, here it is:

SX-150 MIDI Interface Complete

SX-150 MIDI Interface Stripboard
The prototype stripboard. A programming header (top centre of board) is included for programming the attiny2313 microcontroller with the Sparkfun AVR programmer.

Update 10/22: RJ’s original project page doesn’t appear to be online any longer so I’ve made a copy of RJ’s firmware available for download here.

The schematic for the interface is shown below.SX-150 MIDI interface schematic

Theremin Style Music Controller

I’ve built a music controller that senses hand movements, in a similar way to a Theremin, for an interactive musical installation dorkbot bristol is exhibiting at the BV Open Studios 2011 this October. I’m hoping that people will be able to have some fun playing with the sounds of some music sequences being synthesized on a Mac by moving their hands in front of it. It has two sensors that measure how far your hands are above the box so you can move your hands up and down to control different aspects of the synthesized sounds. There are also four touch sensors that change the sounds being played when you rest a finger on them.
The aim is that the player should be able to explore the sound with their hand movements, the hand movements do not create the music itself. In this way, it should not require any special musical skill so anyone can have a go and make nice sounds, unlike a musical instrument like the Theremin which requires skill to play a tune.

Theremin Style Controller
The front panel. There are two IR distance sensors for the left and right hands and four touch sensors.

I wanted the hardware build to be as quick and simple as possible so the sensors are mounted in a cardboard box. The unit plugs into a Mac running Reaktor and controls the music being produced.

Inside the Theremin style controller box
Inside the box.

The sensors are connected to an Arduino Uno, which has some code to send the sensor data as serial data over USB to the Mac. On the Mac, the control and routing of the sensor data is handled by some code developed in Processing to send the sensor data as MIDI and OSC to Reaktor.

The electronics components used in this project are:

  • Arduino Uno
  • Seeed Twig I2C Touch Sensor Controller and 4 Sensors
  • Seeed Stem Base Shield
  • 2 Sharp 2Y0A21 Distance Sensors

Arduino Uno and Stem Base Shield
Arduino Uno and Stem Base Shield.

Meeblip DIY Kit Build

My Meeblip DIY kit is now built and making noise!
Meeblip PCB Built

The hardware of the Meeblip is perhaps about as simple as a digital synth could possibly be: a microcontroller (with a good number of switches and knobs connected it), a MIDI interface to get notes in, a digital-to-analog convertor, and just enough audio circuitry to get sounds out. All the subtractive synthesis is done in the microcontroller, so it sounds like a simple soft-synth plugin. Except of course it lives in its own hardware, where the audio output circuit seems to add a bit of pleasing grunge to the sound.

Reflex Audio/CDM are steadily developing new versions of the Meeblip. The circuit board of this one is revision 1.31 SE which has some changes to previous versions: it’s now red, has a power switch, there is no USB power, and the connectors are mounted on the bottom to make positioning a front panel easier. There’s no case with the DIY kit (the quick build kit has a case), although there’s the option of the new SE case becoming available at the end of August, or even a home brew case…

The build instructions are easy to follow, although they are yet to be fully updated for the 1.31 SE board. So if you have a go at building this revision, one gotcha is that in order to check the power (step 3), all the power supply components need to be soldered in first, including the power diode, regulator and new power switch. One other thing to note is that the Meeblip needs a good low-noise external power supply, otherwise it can get some hum on the audio.

Building The WOM

At the Beam Festival in June I joined a group of people in building one of Tom Bug’s brilliant Workshop Oscillator Machines in one of the workshop sessions.

Building the Bugbrand WOM (Workshop Oscillator Machine)

Even though the WOM is a simple design it can make some complex and sometimes chaotic sounds. It includes some circuit bending tricks including ‘power starvation’. This causes the part of the circuit that creates the basic elements of the sound, the oscillators, to enter unexpected cycling patterns when they struggle to work as normal as their power is gradually sucked away. With power starvation switched on – just a slight twist of one of the WOMs controls… a completely new sound is created. Playing the WOM is noisy harsh unpredictable fun.

Bugbrand WOM (Workshop Oscillator Machine)

The contacts at the bottom of the WOM look a bit like a deranged piano keyboard. They’re actually electrical contacts which you touch to become part of the circuit to bend its function.