8-Bit Sequencer

8-Bit Sequencer

Matthew Conlen, Michael Gisi, Lauren Korany

Summary

The 8-bit sequencer is a self-contained Arduino-powered music sequencer.  We aimed to showcase the sonic capabilities of the Arduino in a way that was as interactive as possible.  The user selects one of seven instruments using the three selection buttons on the device.  Sixteen notes are written to the sequence using the four buttons on the left.  The knobs on the front panel control master volume, tempo, and selected instrument volume.


Context

We first envisioned a very different form factor for the device.  Our initial idea was to use a grid of buttons on three sides of a box.  Notes would be activated according to the virtual ‘intersections’ of the buttons.   Although this three-dimensional approach would be unique, we agreed that it wouldn’t result in an enjoyable musical experience.  We went with a more traditional sequencer design, with the instruments represented by a 3 bit number.

Technical

After settling on a control scheme, we went about designing and building the form factor.  We wanted some of the inner workings of the device to be shown, so we used a translucent black acrylic for the case.  The case was designed using Rhinocerous.  Each button and knob was measured and an appropriately sized opening was placed on the CAD drawing.  We cut the acrylic using the laser cutter and a table saw.  Assembling the case required using the acrylic adhesive that contains Methylene Chloride. According to the owner of Plastic Tech, it will kill you in thirty seconds if it would happen to enter your bloodstream. Magnetic tape was added to the bottom panel to allow access to the components.

The sequencer is powered by an Arduino Mega 2560.  Coding was difficult at first; fast audio processing on the arduino requires modification of the internal timers and pwm mode.  The timer 2 interrupt service was used to receive input from the tempo and instrument volume control knobs.  The interrupt service also limited and controlled the sample rate of the audio output.  Sounds were contained in large byte arrays.  Each instrument had an associated counter with which to increment through the array.  When an instrument is activated on the sequence, the counter is reset to zero.  The sample data from the byte array is added to the final audio output byte.  Our audio was limited to 8-bits, as this is the maximum amount of fidelity the pwm output can handle.  The pwm rapidly oscillates between 1 and 0 and simulates an analog signal.  We considered building a digital-to-analog resistor ladder circuit, but the gain in quality would have been negligible.

Features

The sequencer has many last second features added as we tested the device.  One such feature is the ‘cueing’ feature.  When no instrument is selected, the sequence buttons may be used to instantly start playback at any quarter note.  A full list of features follows:

  • 1-bar sequence of 16 1/16 notes
  • 7 instruments
  • Volume control
  • Variable tempo
  • Individual instrument level control
  • ‘Cueing’ feature

Exhibition

The sequencer was successful in producing sick beats. It was playable and enjoyable for DJ’ing. People thought that the piece was unintuitive, they seemed confused as what the sequencer was supposed to do.

Code

http://www-personal.umich.edu/~gisi/sequencer_p3.pde

References

http://www.arduino.cc/playground/Code/PCMAudio

http://interface.khm.de/index.php/lab/experiments/arduino-realtime-audio-processing/

Video and Pictures


Comments are closed.