Summary
This is a project that my seventh grade soft circuits students worked on. It was inspired by Scott Peterman's The Imaginary Marching Band http://www.imaginarymarchingband.com.
It uses Mark Demers from Spikenzielabs's Serial-MIDI Converter http://spikenzielabs.com/SpikenzieLabs/Serial_MIDI.html, GarageBand and Arduino.
Their idea was to create conductive materials in the form of their heads. The first iteration used the Kinect with Kyle McDonald's KinectToSTL (https://github.com/kylemcdonald/Makerbot/tree/master/KinectToStl). The second iteration used Autodesk's 123D catch. After we printed the heads we created silicone mold using The Complete Sculptor's Resilpom 2 (www.SCULPT.com). The students experimented with jello with added salt, conductive dough, water and ice.
Instructions
Serial-MIDI converter connects your computer's serial port to MIDI software and hardware. It allows you to have your Arduino send MIDI messages to Apple's GarageBand.
-
Download Spikenzielab.com's Serial-MIDI converter and unzip it
-
Download and install themidibus library in the documents:processing:libraries folder (http://smallbutdigital.com/themidibus.php)
-
Open Apple's Audio MIDI Setup
-
Select Window>Show MIDI Window
-
Double click on the IAC Driver
-
Enable Device is Online
-
You can close Audio MIDI Setup
- Open Arduino 1.0 or greater.
Upload the following program to test your Serial-MIDI connection:
//
//
//
SpikenzieLabs.com
//
//
Very Simple Serial to MIDI DEMO
//
//
//
// BY: MARK DEMERS
// May 2009
// VERSION: 0.1
//
// DESCRIPTION:
// Demo sketch to play notes from middle C in the 4th octave up to B in the 5th octave and then back down.
//
//
// HOOK-UP:
// 1. Plug USB cable from Arduino into your computer.
//
//
// USAGE:
// 1. Install and Set-up Serial MIDI Converter from SpikenzieLabs
// 2. Open, compile, and upload this sketch into your Arduino.
// 3. Run Serial MIDI Converter in the background.
// 4. Launch your music software such as Garage Band or Ableton Live, choose a software instrument and listen to the music.
//
//
// LEGAL:
// This code is provided as is. No guaranties or warranties are given in any form. It is up to you to determine
// this codes suitability for your application.
//
int note = 0;
void setup()
{
Serial.begin(57600); // Default speed of the Serial to MIDI Converter serial port
}
void loop() {
for(int note=60; note<=83; note++) // Going Up
{
MIDI_TX(144,note,127); // NOTE ON
delay(100);
}
for(int note=82; note>=61; note--) // Coming Down
{
MIDI_TX(144,note,127); // NOTE ON
delay(250);
}
}
void MIDI_TX(unsigned char MESSAGE, unsigned char PITCH, unsigned char VELOCITY) {
Serial.write(MESSAGE);
Serial.write(PITCH);
Serial.write(VELOCITY);
}
-
Launch SM by navigating to application.macosx>source>Serial_MIDI_Converter_V2D.pde When you open it, you will be prompted to create a folder. Do that. Then run the sketch
- Choose the serial port that the Arduino is using. Mine was A
This is the serial port that will be used for both serial TX and RX. Your micro-controllers serial port must be set to 57600 bps 8N1. (Even though MIDI is transmitted at 31250 bps, the serial port is set at a faster baud rate to help minimize any lag time.)
-
Select 57600. This was E
-
Choose a MIDI-in port.
This is the source of MIDI data that will be sent out of the serial port. This can be a little confusing, if you are using audio software this will be the MIDI-out of the software ! If you are using an external controller like a keyboard, this will be the MIDI-in port from that device. This was A -
Choose a MIDI-out port.
When the SM receives serial data it will pass the data out of this MIDI port. You will most often choose the port that your audio software uses as input, but you could also choose another MIDI device. Also A - The SM must be running to direct MIDI to and from serial ports. So, just let it run in the background.
15.Open GarageBand
-
Select Piano
- Navigate to Preferences and open MIDI/Audio.
Select System Setting
18.Edit Piano and select Digital Basic
-
This time close and reopen GarageBand. Next time you won't need to set the Preferences.
- Listen to your Arduino make music!
/////////////////////////////////////////////////////////////////////////////////////
My students experimented with an LDR and then the CapSense Library (http://www.arduino.cc/playground/Main/CapSense) You can see their modified code
Parts Needed:
Arduino
LDR
680K resistor
Aluminum foil
Some other conductive material: bare conductive paint, water, jello, ice cubes
Modellquelle
