(edit sidebar)
Intro to Physical Computing Syllabus

Research & Learning

Other Class pages

Shop Admin

ITP Help Pages
Tom's pcomp site
DanO's pcomp site


Controlling Garage Band with Arduino

Tutorials.MusicalArduino History

Hide minor edits - Show changes to output

Added lines 1-2:
(:title Controlling Garage Band with Arduino:)
Deleted lines 7-8:

Deleted lines 9-10:

Changed lines 246-247 from:
The MIDI specification only defines note number 60 as "Middle C", and all other notes are relative. The absolute octave number designations shown here are based on Middle C = C4, which is an arbitrary assignment. There is a discrepancy that occurs between various models of MIDI devices and software programs, and that concerns the octave numbers for note names. If your MIDI software/device considers octave 0 as being the lowest octave of the MIDI note range, then middle C's note name is C5. The numbers used are 0 to 127. The lowest note upon a MIDI controller is a C and this is assigned note number 0. The C# above it would have a note number of 1. The D note below that would have a note number of 2.  So "Middle C" is note number 60.
to:
The MIDI specification only defines note number 60 as "Middle C", and all other notes are relative. The absolute octave number designations shown here are based on Middle C = C4, which is an arbitrary assignment. There is a discrepancy that occurs between various models of MIDI devices and software programs, and that concerns the octave numbers for note names. If your MIDI software/device considers octave 0 as being the lowest octave of the MIDI note range, then middle C's note name is C5. The numbers used are 0 to 127. The lowest note upon a MIDI controller is a C and this is assigned note number 0. The C# below it would have a note number of 1. The D note below that would have a note number of 2.  So "Middle C" is note number 60.
Changed lines 246-247 from:
The MIDI specification only defines note number 60 as "Middle C", and all other notes are relative. The absolute octave number designations shown here are based on Middle C = C4, which is an arbitrary assignment. There is a discrepancy that occurs between various models of MIDI devices and software programs, and that concerns the octave numbers for note names. If your MIDI software/device considers octave 0 as being the lowest octave of the MIDI note range, then middle C's note name is C5. The numbers used are 0 to 127. The lowest note upon a MIDI controller is a C and this is assigned note number 0. The C# above it would have a note number of 1. The D note above that would have a note number of 2.  So "Middle C" is note number 60.
to:
The MIDI specification only defines note number 60 as "Middle C", and all other notes are relative. The absolute octave number designations shown here are based on Middle C = C4, which is an arbitrary assignment. There is a discrepancy that occurs between various models of MIDI devices and software programs, and that concerns the octave numbers for note names. If your MIDI software/device considers octave 0 as being the lowest octave of the MIDI note range, then middle C's note name is C5. The numbers used are 0 to 127. The lowest note upon a MIDI controller is a C and this is assigned note number 0. The C# above it would have a note number of 1. The D note below that would have a note number of 2.  So "Middle C" is note number 60.
Changed lines 258-259 from:
%lframe width=246px% [[http://itp.nyu.edu/physcomp/uploads/midi/midi_screen6.jpg | http://itp.nyu.edu/physcomp/uploads/midi/midi_screen6.jpg"MIDI commands"]] | [-The MIDI Commands-]
to:
%lframe width=246px% [[http://itp.nyu.edu/physcomp/uploads/midi/midi_screen6.jpg | http://itp.nyu.edu/physcomp/uploads/midi/midi_screen6.jpg"MIDI commands"]] | [-The MIDI Commands-] 
\\
Changed lines 262-266 from:
* '''Aftertouch''' - ''This message is similar to polyphonic key pressure but is sent when additional pressure is applied to a key that is already being held down.''  \\
* '''Pin 11'''    \\
* '''Pin 12'''    \\
* '''Pin 13'''    \\

to:
* '''Aftertouch''' - ''This message is sent when additional pressure is applied to a key that is already being held down.''  \\

Changed lines 253-254 from:
MIDI bytes range between 0 and 255. Note that a byte is a binary number that contains 8 digits. Looking at the binary range above you should be able to see that the range from 00000000 to 11111111 will cover all possible combination of digits in a byte. Furthermore, command bytes are split into half. The most significant half contains the actual MIDI command, and the second half contains the MIDI channel for which the command is for. For example, 0x91 is the note-on command for the second MIDI channel. the 9 digit is the actual command for note-on and the digit 1 specifies the second channel (the first channel being 0).\\\\
to:
MIDI bytes range between 0 and 255. Note that a byte is a binary number that contains 8 digits. Furthermore, command bytes are split into half. The most significant half contains the actual MIDI command, and the second half contains the MIDI channel for which the command is for. For example, 0x91 is the note-on command for the second MIDI channel.\\\\
Changed lines 259-265 from:
to:
* '''Note On ''' - ''This message indicates the beginning of a MIDI note and consists of 3 bytes. The 1st byte (Status byte) specifies a note-on event and channel. The 2nd byte specifies the number of the note played. The 3rd byte specifies the velocity with which the note was played.''  \\
* '''Note Off ''' - ''This message indicates the end of a MIDI note. The 1st byte (Status byte) specifies a note-off event and channel. The 2nd byte specifies the number of the note played. The 3rd byte specifies the release velocity.''  \\
* '''Aftertouch''' - ''This message is similar to polyphonic key pressure but is sent when additional pressure is applied to a key that is already being held down.''  \\
* '''Pin 11'''    \\
* '''Pin 12'''    \\
* '''Pin 13'''    \\

Changed lines 42-44 from:
The switch shown below is a Mini Push Button Switch, but you can use any switch. Look over the code and read a description before you use it. \\

to:
The switch shown below is a Mini Push Button Switch, but you can use any switch. \\

Added line 79:
Look over the code and read a description before you use it.\\
Added line 124:
Changed lines 133-134 from:
  Serial.begin(31250); 
to:
  Serial.begin(31250);
 
Added line 138:
Deleted line 198:
Deleted line 206:
Deleted line 207:
Added lines 77-209:
!!!Program the Module

Program your Arduino with the following code:

[@
/*
 * Convert Arduino to a MIDI controller using 6 digital inputs.
 *
 * This sketch is set up to send 6 MIDI notes on MIDI channel 1,
 * but it can be easily reconfigured for other notes and channels
 *
 * Created 3 Nov 2008
 * By Hyeki Min
 */

// define the pins we use
int switchPin1 = 8;     
int switchPin2 = 9;
int switchPin3 = 10;
int switchPin4 = 11;
int switchPin5 = 12;
int switchPin6 = 13;

// general midi notes
char note1 = 60; //Middle C
char note2 = 62; //D
char note3 = 64; //E
char note4 = 65; //F
char note5 = 67; //G
char note6 = 69; //A

// Variables
int switchState1 = LOW;
int switchState2 = LOW;
int switchState3 = LOW;
int switchState4 = LOW;
int switchState5 = LOW;
int switchState6 = LOW;
int currentSwitchState1 = LOW;
int currentSwitchState2 = LOW;
int currentSwitchState3 = LOW;
int currentSwitchState4 = LOW;
int currentSwitchState5 = LOW;
int currentSwitchState6 = LOW;


void setup() {
  // set the states of the I/O pins:
  pinMode(switchPin1, INPUT);
  pinMode(switchPin2, INPUT);
  pinMode(switchPin3, INPUT);
  pinMode(switchPin4, INPUT);
  pinMode(switchPin5, INPUT);
  pinMode(switchPin6, INPUT);
  // set MIDI baud rate :
  Serial.begin(31250); 
}

void loop() {
  //switchPin1
  currentSwitchState1 = digitalRead(switchPin1);
  if( currentSwitchState1 == LOW && switchState1 == HIGH ) // push
    //Note on channel 1 (0x90), some note value (note), middle velocity (0x45):
    noteOn(0x90, note1, 0x45);
  if( currentSwitchState1 == HIGH && switchState1 == LOW ) // release
    //Note on channel 1 (0x90), some note value (note), silent velocity (0x00):
    noteOn(0x90, note1, 0x00);
  switchState1 = currentSwitchState1;

  //switchPin2
  currentSwitchState2 = digitalRead(switchPin2);
  if( currentSwitchState2 == LOW && switchState2 == HIGH ) // push
    //Note on channel 1 (0x90), some note value (note), middle velocity (0x45):
    noteOn(0x90, note2, 0x45);
  if( currentSwitchState2 == HIGH && switchState2 == LOW ) // release
    //Note on channel 1 (0x90), some note value (note), silent velocity (0x00):
    noteOn(0x90, note2, 0x00);
  switchState2 = currentSwitchState2;

  //switchPin3
  currentSwitchState3 = digitalRead(switchPin3);
  if( currentSwitchState3 == LOW && switchState3 == HIGH ) // push
    //Note on channel 1 (0x90), some note value (note), middle velocity (0x45):
    noteOn(0x90, note3, 0x45);
  if( currentSwitchState3 == HIGH && switchState3 == LOW ) // release
    //Note on channel 1 (0x90), some note value (note), silent velocity (0x00):
    noteOn(0x90, note3, 0x00);
  switchState3 = currentSwitchState3;

  //switchPin4
  currentSwitchState4 = digitalRead(switchPin4);
  if( currentSwitchState4 == LOW && switchState4 == HIGH ) // push
    //Note on channel 1 (0x90), some note value (note), middle velocity (0x45):
    noteOn(0x90, note4, 0x45);
  if( currentSwitchState4 == HIGH && switchState4 == LOW ) // release
    //Note on channel 1 (0x90), some note value (note), silent velocity (0x00):
    noteOn(0x90, note4, 0x00);
  switchState4 = currentSwitchState4;

  //switchPin5
  currentSwitchState5 = digitalRead(switchPin5);
  if( currentSwitchState5 == LOW && switchState5 == HIGH ) // push
    //Note on channel 1 (0x90), some note value (note), middle velocity (0x45):
    noteOn(0x90, note5, 0x45);
  if( currentSwitchState5 == HIGH && switchState5 == LOW ) // release
    //Note on channel 1 (0x90), some note value (note), silent velocity (0x00):
    noteOn(0x90, note5, 0x00);
  switchState5 = currentSwitchState5;

  //switchPin6
  currentSwitchState6 = digitalRead(switchPin6);
  if( currentSwitchState6 == LOW && switchState6 == HIGH ) // push
    //Note on channel 1 (0x90), some note value (note), middle velocity (0x45):
    noteOn(0x90, note6, 0x45);
  if( currentSwitchState6 == HIGH && switchState6 == LOW ) // release
    //Note on channel 1 (0x90), some note value (note), silent velocity (0x00):
    noteOn(0x90, note6, 0x00);
  switchState6 = currentSwitchState6;


}

// Send a MIDI note-on/off message. 
void noteOn(char cmd, char data1, char data2) {
  Serial.print(cmd, BYTE);
  Serial.print(data1, BYTE);
  Serial.print(data2, BYTE);
}

@]

[[<<]]
[[<<]]
Changed lines 108-109 from:

to:
Now that you've got your MIDI Interface working properly you can explore the vast collection of soft synthesizer sounds with GarageBand.
Added lines 100-102:

Now, open up GarageBand - note that if it's already open, you'll have to relaunch it for the new MIDI interfaces to be recognized. This setting is found in preferences menu for GarageBand. In the preferences panel, click on "Audio/MIDI" and you'll see GarageBands Audio and MIDI input settings. An example of the Audio/MIDI setup panel is shown below:

Changed lines 85-86 from:
Once you've installed the driver, you can identify your MIDI hardware in the Utilities folder inside the Applications folder. Open it and Click on the MIDI Devices tab. You should see a window like below:
to:
Once you've installed the driver, you can identify your MIDI hardware in the Utilities folder inside the Applications folder. \\
Open it and Click on the MIDI Devices tab. \\
You should see a window like below:
Changed lines 83-84 from:
[[<<]]
[[<<]]
to:
Added lines 87-89:
[[<<]]
[[<<]]

Added lines 89-90:

If your MIDI interface does not appear, make sure it is powered on and connected to your computer. If your MIDI interface is grayed out, that means this interface was previously present when you ran a MIDI application, but the driver could not locate it, or the driver is no longer installed. If your MIDI interface appears and is not grayed out, like shown above, this means that your device’s driver has successfully located the hardware and all is well. You can begin using your MIDI applications without any further setup.
Changed lines 85-86 from:
You would need to install the drivers. These can be found in the [[http://www.m-audio.com/index.php?do=support&tab=driver|drivers directory]] of the M-Audio Site.
to:
You would need to install the drivers. These can be found in the [[http://www.m-audio.com/index.php?do=support&tab=driver|drivers directory]] of the M-Audio Site.\\
Once you've installed the driver, you can identify your MIDI hardware in the Utilities folder inside the Applications folder. Open it and Click on the MIDI Devices tab. You should see a window like below:

Changed lines 85-86 from:
to:
You would need to install the drivers. These can be found in the [[http://www.m-audio.com/index.php?do=support&tab=driver|drivers directory]] of the M-Audio Site.
Changed lines 79-80 from:
Since we are using our circuit as a hardware MIDI device, a MIDI interface is needed. The more gear you have the more ports you need. You can find 1x1, 2x2, 4x4 and 8x8 MIDI interfaces commonly available.
to:
Since we are using our circuit as a hardware MIDI device, a MIDI interface is needed. The more gear you have the more ports you need. You can find 1x1, 2x2, 4x4 and 8x8 MIDI interfaces commonly available. A simple m-audio MIDIsport 2x2 will do just fine for most people. This would give you 32 channels on 2 ports. That means only 2 devices can go into the computer, but as many as 32 could go out, given that each device only has 1 channel. The MIDISport 2X2 can be found in the ER.
Added lines 79-80:
Since we are using our circuit as a hardware MIDI device, a MIDI interface is needed. The more gear you have the more ports you need. You can find 1x1, 2x2, 4x4 and 8x8 MIDI interfaces commonly available.
Added line 71:
Changed lines 70-73 from:



to:
\\
Changed lines 68-71 from:



to:
\\
\\




Changed lines 67-68 from:
Now that the circuit set-up is done we are ready to play with the sound.\\\\
to:
Now that the circuit set-up is done we are ready to play with the sound.



Changed lines 65-66 from:
For a more detailed schematic, see the [[http://www.tigoe.net/pcomp/midi.shtml|MIDI notes]] on Tom's physical computing site.
to:
For a more detailed schematic, see the [[http://www.tigoe.net/pcomp/midi.shtml|MIDI notes]] on Tom's physical computing site. \\\\

Now that the circuit set-up is done we are ready to play with the sound.\\\\

Changed lines 66-67 from:
[[<<]]
[[<<]]
to:
Changed lines 64-65 from:
Looking at the 5 pin din MIDI female connection from the back, point the five soldering lugs downwards. For a more detailed schematic, see the [[http://www.tigoe.net/pcomp/midi.shtml|MIDI notes]] on Tom's physical computing site.
to:
Looking at the 5 pin din MIDI female connection from the back, point the five soldering lugs downwards.\\
For a more detailed schematic, see the [[http://www.tigoe.net/pcomp/midi.shtml|MIDI notes]] on Tom's physical computing site.
Changed lines 52-53 from:

Connect Switches to digital input on the Arduino. \\
to:
Connect Switches to digital input on the Arduino. \\\\
Changed line 64 from:
to:
Add the MIDI connector.\\\\
Added lines 64-65:

Looking at the 5 pin din MIDI female connection from the back, point the five soldering lugs downwards. For a more detailed schematic, see the [[http://www.tigoe.net/pcomp/midi.shtml|MIDI notes]] on Tom's physical computing site.
Changed lines 68-70 from:
%lframe width=175px% [[http://itp.nyu.edu/physcomp/uploads/midi/midi_002.jpg | http://itp.nyu.edu/physcomp/uploads/midi/midi_002.jpg"midisetup"]] | [-Connect the Sensors-]
%lframe width=175px% [[http://itp.nyu.edu/physcomp/uploads/midi/midi_006.jpg | http://itp.nyu.edu/physcomp/uploads/midi/midi_006.jpg"midisetup"]] | [-Connect the Sensors-]
%lframe width=175px% [[http://itp.nyu.edu/physcomp/uploads/midi/midi_010.jpg | http://itp.nyu.edu/physcomp/uploads/midi/midi_010.jpg"tx"]] | [-Connect the Sensors-]
to:
%lframe width=175px% [[http://itp.nyu.edu/physcomp/uploads/midi/midi_002.jpg | http://itp.nyu.edu/physcomp/uploads/midi/midi_002.jpg"midisetup"]] | [-Connect the MIDI connector-]
%lframe width=175px% [[http://itp.nyu.edu/physcomp/uploads/midi/midi_006.jpg | http://itp.nyu.edu/physcomp/uploads/midi/midi_006.jpg"midisetup"]] | [-Connect the MIDI connector-]
%lframe width=175px% [[http://itp.nyu.edu/physcomp/uploads/midi/midi_010.jpg | http://itp.nyu.edu/physcomp/uploads/midi/midi_010.jpg"tx"]] | [-Connect the MIDI connector-]
Changed lines 54-60 from:
* '''Pin  8 '''  - 60 : ''Middle C - The MIDI Note value to be played'' \\
*
'''Pin  9 '''  - 62 : ''D''\\
* '''Pin 10'''
  - 64 : ''E''\\
*
'''Pin 11'''  - 65 : ''F''\\
*
'''Pin 12'''  - 67 : ''G''\\
* '''Pin 13'''  - 69 : ''A''
\\
to:
* '''Pin  8 '''  \\
*
'''Pin  9 '''  \\
*
'''Pin 10'''    \\
* '''Pin 11
''  \\
*
'''Pin 12'''   \\
*
'''Pin 13'''   \\
Changed line 63 from:
%lframe width=350px% [[http://itp.nyu.edu/physcomp/uploads/midi/midi_008.jpg | http://itp.nyu.edu/physcomp/uploads/midi/midi_008.jpg"midisetup"]] | [-Connect the Sensors-]
to:
%lframe width=350px% [[http://itp.nyu.edu/physcomp/uploads/midi/midi_008.jpg | http://itp.nyu.edu/physcomp/uploads/midi/midi_008.jpg"midisetup"]] | [-Connect the MIDI connector-]
Changed lines 54-55 from:
* '''Pin 8 '''  - 60 : ''The MIDI Note value to be played (Middle C)'' \\
* '''Pin 9 '''  - 62 : ''D''\\
to:
* '''Pin  8 '''  - 60 : ''Middle C - The MIDI Note value to be played'' \\
* '''Pin  9 '''  - 62 : ''D''\\
Changed lines 54-60 from:
* '''Pin 8'''  - 60 - ''The MIDI Note value to be played (Middle C)'' \\
* '''Pin 9'''  - 62 \\
*
'''Pin 10''' - 64 \\
* '''Pin 11
''' - 65 \\
* '''Pin 12''' - 67
\\
* '''Pin 13''' - 69 \\
to:
* '''Pin 8 '''  - 60 : ''The MIDI Note value to be played (Middle C)'' \\
* '''Pin 9 '''  - 62 : ''D''\\
*
'''Pin 10'''  - 64 : ''E''\\
* '''Pin 11'''
  - 65 : ''F''\\
* '''Pin 12'''  - 67 : ''G''\\
* '''Pin 13'''  - 69 : ''A''
\\
Changed lines 54-59 from:
* '''Pin 8'''  - C
* '''Pin 9'''  - D
* '''Pin 10''' - E
*
'''Pin 11''' - F
* '''Pin 12''' - G
*
'''Pin 13''' - A
to:
* '''Pin 8'''  - 60 - ''The MIDI Note value to be played (Middle C)'' \\
*
'''Pin 9'''  - 62 \\
* '''Pin 10
''' - 64 \\
* '''Pin 11''' - 65 \\
* '''Pin 12''' - 67 \\
* '''Pin 13''' - 69 \\

Changed line 53 from:
Connect Switches to digital input on the Arduino.
to:
Connect Switches to digital input on the Arduino. \\
Changed line 55 from:
* '''Pin 10''' - D
to:
* '''Pin 9'''  - D
Added lines 52-59:

Connect Switches to digital input on the Arduino.
* '''Pin 8'''  - C
* '''Pin 10''' - D
* '''Pin 10''' - E
* '''Pin 11''' - F
* '''Pin 12''' - G
* '''Pin 13''' - A
Added lines 99-101:
[[<<]]
[[<<]]
%lframe width=246px% [[http://itp.nyu.edu/physcomp/uploads/midi/midi_screen7.png | http://itp.nyu.edu/physcomp/uploads/midi/midi_screen7.png"Status Byte"]] | [-Status Byte-]
Changed line 98 from:
The messages from 0x80 to 0xEF are called Channel Messages because the second four bits of the command specify which channel the message affects. The messages from 0xF0 to 0xFF are called System Messages; they do not affect any particular channel.
to:
The messages from 0x80 to 0xEF are called Channel Messages because the second four bits of the command specify which channel the message affects. The messages from 0xF0 to 0xFF are called System Messages. they do not affect any particular channel.
Changed lines 91-92 from:
MIDI bytes range between 0 and 255. Note that a byte is a binary number that contains 8 digits. Looking at the binary range above you should be able to see that the range from 00000000 to 11111111 will cover all possible combination of digits in a byte. Furthermore, command bytes are split into half. The most significant half contains the actual MIDI command, and the second half contains the MIDI channel for which the command is for. For example, 0x91 is the note-on command for the second MIDI channel. the 9 digit is the actual command for note-on and the digit 1 specifies the second channel (the first channel being 0).\\
to:
MIDI bytes range between 0 and 255. Note that a byte is a binary number that contains 8 digits. Looking at the binary range above you should be able to see that the range from 00000000 to 11111111 will cover all possible combination of digits in a byte. Furthermore, command bytes are split into half. The most significant half contains the actual MIDI command, and the second half contains the MIDI channel for which the command is for. For example, 0x91 is the note-on command for the second MIDI channel. the 9 digit is the actual command for note-on and the digit 1 specifies the second channel (the first channel being 0).\\\\
Changed lines 96-97 from:
%lframe width=250px% [[http://itp.nyu.edu/physcomp/uploads/midi/midi_screen6.jpg | http://itp.nyu.edu/physcomp/uploads/midi/midi_screen6.jpg"MIDI commands"]] | [-The MIDI Commands-]
to:
%lframe width=246px% [[http://itp.nyu.edu/physcomp/uploads/midi/midi_screen6.jpg | http://itp.nyu.edu/physcomp/uploads/midi/midi_screen6.jpg"MIDI commands"]] | [-The MIDI Commands-]
Changed lines 87-88 from:

to:
[[<<]]
Changed lines 94-96 from:

%lframe width=300px% [[http://itp.nyu.edu/physcomp/uploads/midi/midi_screen6.jpg | http://itp.nyu.edu/physcomp/uploads/midi/midi_screen6.jpg"MIDI commands"]] | [-The MIDI Commands-]
to:
[[<<]]

%lframe width=250px% [[http://itp.nyu.edu/physcomp/uploads/midi/midi_screen6.jpg | http://itp.nyu.edu/physcomp/uploads/midi/midi_screen6.jpg"MIDI commands"]] | [-The MIDI Commands-]
Changed lines 91-97 from:
MIDI bytes range between 0 and 255. Note that a byte is a binary number that contains 8 digits. Looking at the binary range above you should be able to see that the range from 00000000 to 11111111 will cover all possible combination of digits in a byte. Furthermore, command bytes are split into half. The most significant half contains the actual MIDI command, and the second half contains the MIDI channel for which the command is for. For example, 0x91 is the note-on command for the second MIDI channel. the 9 digit is the actual command for note-on and the digit 1 specifies the second channel (the first channel being 0).

Here is a table of the MIDI commands:

%lframe width=300px% [[http://itp.nyu.edu/physcomp/uploads/midi/midi_screen6.jpg | http://itp.nyu.edu/physcomp/uploads/midi/midi_screen6.jpg"MIDI commands"]] | [-The M
IDI
Commands-]
to:
MIDI bytes range between 0 and 255. Note that a byte is a binary number that contains 8 digits. Looking at the binary range above you should be able to see that the range from 00000000 to 11111111 will cover all possible combination of digits in a byte. Furthermore, command bytes are split into half. The most significant half contains the actual MIDI command, and the second half contains the MIDI channel for which the command is for. For example, 0x91 is the note-on command for the second MIDI channel. the 9 digit is the actual command for note-on and the digit 1 specifies the second channel (the first channel being 0).\\

Here is a table of the MIDI commands:\\

%lframe width=300px% [[http://itp.nyu.edu/physcomp/uploads/midi/midi_screen6.jpg | http://itp.nyu.edu/physcomp/uploads/midi/midi_screen6.jpg"MIDI commands"]] | [-The MIDI Commands-]
Changed lines 89-92 from:



to:
!!!Organization MIDI commands and data in a byte of information

MIDI bytes range between 0 and 255. Note that a byte is a binary number that contains 8 digits. Looking at the binary range above you should be able to see that the range from 00000000 to 11111111 will cover all possible combination of digits in a byte. Furthermore, command bytes are split into half. The most significant half contains the actual MIDI command, and the second half contains the MIDI channel for which the command is for. For example, 0x91 is the note-on command for the second MIDI channel. the 9 digit is the actual command for note-on and the digit 1 specifies the second channel (the first channel being 0).

Here is a table of the MIDI commands:

%lframe width=300px% [[http://itp.nyu.edu/physcomp/uploads/midi/midi_screen6.jpg | http://itp.nyu.edu/physcomp/uploads/midi/midi_screen6.jpg"MIDI commands"]] | [-The M
IDI Commands-]

The messages from 0x80 to 0xEF are called Channel Messages because the second four bits of the command specify which channel the message affects. The messages from 0xF0 to 0xFF are called System Messages; they do not affect any particular channel.
Deleted line 75:
Changed lines 75-77 from:
%lframe width=300px% [[http://itp.nyu.edu/physcomp/uploads/midi_screen3.png | http://itp.nyu.edu/physcomp/uploads/midi/midi_screen3.png"Midisport""]] | [-MIDISPORT 2X2-]
to:
%lframe width=250px% [[http://itp.nyu.edu/physcomp/uploads/midi_screen3.png | http://itp.nyu.edu/physcomp/uploads/midi/midi_screen3.png"Midisport""]] | [-GarageBand Preferences-]

%lframe width=400px% [[http://itp.nyu.edu/physcomp/uploads/midi/midi_screen4.jpg | http://itp.nyu.edu/physcomp/uploads/midi/midi_screen4.jpg"Midisport""]] | [-Check MIDI Status
-]
Changed lines 81-86 from:
%lframe width=400px% [[http://itp.nyu.edu/physcomp/uploads/midi/midi_screen4.jpg | http://itp.nyu.edu/physcomp/uploads/midi/midi_screen4.jpg"Midisport""]] | [-MIDI Devices-]
[[<<]]
[[<<]]


to:

Changed lines 75-76 from:

to:
%lframe width=300px% [[http://itp.nyu.edu/physcomp/uploads/midi_screen3.png | http://itp.nyu.edu/physcomp/uploads/midi/midi_screen3.png"Midisport""]] | [-MIDISPORT 2X2-]
[[<<]]
[[<<]]

%lframe width=400px% [[http://itp.nyu.edu/physcomp/uploads/midi/midi_screen4.jpg | http://itp.nyu.edu/physcomp/uploads/midi/midi_screen4.jpg"Midisport""]] | [-MIDI Devices-]
[[<<]]
[[<<]]


Changed lines 69-70 from:
%lframe width=200px% [[http://itp.nyu.edu/physcomp/uploads/midi/midi_screen1.png | http://itp.nyu.edu/physcomp/uploads/midi/midi_screen1.png"Audio MIDI Setup"]] | [-Audio MIDI Setup-]
%lframe width=200px
% [[http://itp.nyu.edu/physcomp/uploads/midi/midi_screen2.png | http://itp.nyu.edu/physcomp/uploads/midi/midi_screen2.png"Midisport""]] | [-MIDI Devices-]
to:
%lframe width=400px% [[http://itp.nyu.edu/physcomp/uploads/midi/midi_screen2.png | http://itp.nyu.edu/physcomp/uploads/midi/midi_screen2.png"Midisport""]] | [-MIDI Devices-]
Changed lines 69-70 from:

to:
%lframe width=200px% [[http://itp.nyu.edu/physcomp/uploads/midi/midi_screen1.png | http://itp.nyu.edu/physcomp/uploads/midi/midi_screen1.png"Audio MIDI Setup"]] | [-Audio MIDI Setup-]
%lframe width=200px% [[http://itp.nyu.edu/physcomp/uploads/midi/midi_screen2.png | http://itp.nyu.edu/physcomp/uploads/midi/midi_screen2.png"Midisport""]] | [-MIDI Devices-]
[[<<]]
[[<<]]

!!! GarageBand Setup


Added lines 62-63:
!!! MIDI Interface
Added line 50:
[[<<]]
Added line 52:
[[<<]]
Added line 55:
[[<<]]
Deleted line 58:
Added line 60:
[[<<]]
Changed lines 64-66 from:


to:
[[<<]]


Deleted lines 49-50:

[[<<]]
Deleted lines 51-52:

[[<<]]
Deleted lines 53-54:

[[<<]]
Deleted lines 58-60:


[[<<]]
Added lines 76-77:
The MIDI specification only defines note number 60 as "Middle C", and all other notes are relative. The absolute octave number designations shown here are based on Middle C = C4, which is an arbitrary assignment. There is a discrepancy that occurs between various models of MIDI devices and software programs, and that concerns the octave numbers for note names. If your MIDI software/device considers octave 0 as being the lowest octave of the MIDI note range, then middle C's note name is C5. The numbers used are 0 to 127. The lowest note upon a MIDI controller is a C and this is assigned note number 0. The C# above it would have a note number of 1. The D note above that would have a note number of 2.  So "Middle C" is note number 60.
Changed lines 80-84 from:
The MIDI specification only defines note number 60 as "Middle C", and all other notes are relative. The absolute octave number designations shown here are based on Middle C = C4, which is an arbitrary assignment. There is a discrepancy that occurs between various models of MIDI devices and software programs, and that concerns the octave numbers for note names. If your MIDI software/device considers octave 0 as being the lowest octave of the MIDI note range, then middle C's note name is C5. The numbers used are 0 to 127. The lowest note upon a MIDI controller is a C and this is assigned note number 0. The C# above it would have a note number of 1. The D note above that would have a note number of 2.  So "Middle C" is note number 60.



to:




Changed lines 76-77 from:
%lframe width=200px% [[http://itp.nyu.edu/physcomp/uploads/midi/midi_screen5.png | http://itp.nyu.edu/physcomp/uploads/midi/midi_screen5.png"MIDI notes"]] | [-MIDI Note Numbers-]
to:
%lframe width=582px% [[http://itp.nyu.edu/physcomp/uploads/midi/midi_screen5.png | http://itp.nyu.edu/physcomp/uploads/midi/midi_screen5.png"MIDI notes"]] | [-MIDI Note Numbers-]
Changed lines 76-81 from:
(:table:)
(:cellnr colspan
=1:)
%height=252 alt='MIDI Note Numbers'%http://www.itp.nyu.edu/physcomp/uploads/midi/midi_screen5.png
(:cellnr:)
(:tableend:)

to:
%lframe width=200px% [[http://itp.nyu.edu/physcomp/uploads/midi/midi_screen5.png | http://itp.nyu.edu/physcomp/uploads/midi/midi_screen5.png"MIDI notes"]] | [-MIDI Note Numbers-]
Changed line 78 from:
%height=300 alt='MIDI Note Numbers'%http://www.itp.nyu.edu/physcomp/uploads/midi/midi_screen5.png
to:
%height=252 alt='MIDI Note Numbers'%http://www.itp.nyu.edu/physcomp/uploads/midi/midi_screen5.png
Added lines 76-81:
(:table:)
(:cellnr colspan=1:)
%height=300 alt='MIDI Note Numbers'%http://www.itp.nyu.edu/physcomp/uploads/midi/midi_screen5.png
(:cellnr:)
(:tableend:)

Added line 68:
%lframe width=200px% [[http://itp.nyu.edu/physcomp/uploads/midi/midi_midisport.jpg | http://itp.nyu.edu/physcomp/uploads/midi/midi_midisport.jpg"Midisport"]] | [-MIDISPORT 2X2-]
Deleted line 69:
%lframe width=200px% [[http://itp.nyu.edu/physcomp/uploads/midi/midi_midisport.jpg | http://itp.nyu.edu/physcomp/uploads/midi/midi_midisport.jpg"Midisport"]] | [-MIDISPORT 2X2-]
Changed lines 74-75 from:
MIDI Note Numbers for Different Octaves
to:
!!!MIDI Note Numbers for Different Octaves
Changed lines 67-73 from:
to:
[[<<]]
%lframe width=200px% [[http://itp.nyu.edu/physcomp/uploads/midi/midi_004.jpg | http://itp.nyu.edu/physcomp/uploads/midi/midi_004.jpg"Midisport""]] | [-MIDISPORT 2X2-]
%lframe width=200px% [[http://itp.nyu.edu/physcomp/uploads/midi/midi_midisport.jpg | http://itp.nyu.edu/physcomp/uploads/midi/midi_midisport.jpg"Midisport"]] | [-MIDISPORT 2X2-]
[[<<]]


Added line 60:
%lframe width=175px% [[http://itp.nyu.edu/physcomp/uploads/midi/midi_002.jpg | http://itp.nyu.edu/physcomp/uploads/midi/midi_002.jpg"midisetup"]] | [-Connect the Sensors-]
Deleted line 60:
Added line 62:
Changed lines 60-62 from:
%lframe width=350px% [[http://itp.nyu.edu/physcomp/uploads/midi/midi_006.jpg | http://itp.nyu.edu/physcomp/uploads/midi/midi_006.jpg"midisetup"]] | [-Connect the Sensors-]
to:
%lframe width=175px% [[http://itp.nyu.edu/physcomp/uploads/midi/midi_006.jpg | http://itp.nyu.edu/physcomp/uploads/midi/midi_006.jpg"midisetup"]] | [-Connect the Sensors-]

%lframe width=175px% [[http://itp.nyu.edu/physcomp/uploads/midi/midi_010.jpg | http://itp.nyu.edu/physcomp/uploads/midi/midi_010.jpg"tx
"]] | [-Connect the Sensors-]
Changed lines 65-70 from:
[[<<]]
%lframe width=350px% [[http://itp.nyu.edu/physcomp/uploads/midi/midi_007_1.jpg | http://itp.nyu.edu/physcomp/uploads/midi/midi_007_1.jpg"midisetup"]] | [-Connect the Sensors-]
[[<<]]


to:

Added line 50:
Deleted line 52:
Added line 54:
Changed lines 56-57 from:

to:
%lframe width=350px% [[http://itp.nyu.edu/physcomp/uploads/midi/midi_008.jpg | http://itp.nyu.edu/physcomp/uploads/midi/midi_008.jpg"midisetup"]] | [-Connect the Sensors-]
[[<<]]

[[<<]]
%lframe width=350px% [[http://itp.nyu.edu/physcomp/uploads/midi/midi_006.jpg | http://itp.nyu.edu/physcomp/uploads/midi/midi_006.jpg"midisetup"]] | [-Connect the Sensors-]
[[<<]]

[[<<]]
%lframe width=350px% [[http://itp.nyu.edu/physcomp/uploads/midi/midi_007_1.jpg | http://itp.nyu.edu/physcomp/uploads/midi/midi_007_1.jpg"midisetup"]] | [-Connect the Sensors-]
[[<<]]


Changed lines 47-48 from:
Connect power and ground on the breadboard to power and ground from the microcontroller. \\On the Arduino module, use the 5V and any of the ground connections.
to:
Connect power and ground on the breadboard to power and ground from the microcontroller. \\
On the Arduino module, use the 5V and any of the ground connections.
Changed line 47 from:
Connect power and ground on the breadboard to power and ground from the microcontroller. On the Arduino module, use the 5V and any of the ground connections.
to:
Connect power and ground on the breadboard to power and ground from the microcontroller. \\On the Arduino module, use the 5V and any of the ground connections.
Changed line 45 from:
[[<<]
to:
[[<<]]
Added lines 45-47:
[[<<]
%lframe width=350px% [[http://itp.nyu.edu/physcomp/uploads/midi/midi_005.jpg | http://itp.nyu.edu/physcomp/uploads/midi/midi_005.jpg"prepare"]] | [-Prepare the breadboard-]
Connect power and ground on the breadboard to power and ground from the microcontroller. On the Arduino module, use the 5V and any of the ground connections.
Deleted lines 48-49:
%lframe width=350px% [[http://itp.nyu.edu/physcomp/uploads/midi/midi_009.jpg | http://itp.nyu.edu/physcomp/uploads/midi/midi_009.jpg"prepare"]] | [-Prepare the breadboard-]
Connect power and ground on the breadboard to power and ground from the microcontroller. On the Arduino module, use the 5V and any of the ground connections.
Added lines 50-51:
%lframe width=350px% [[http://itp.nyu.edu/physcomp/uploads/midi/midi_009.jpg | http://itp.nyu.edu/physcomp/uploads/midi/midi_009.jpg"setup"]] | [-Connect the Sensors-]
Deleted lines 52-53:
%lframe width=350px% [[http://itp.nyu.edu/physcomp/uploads/midi/midi_005.jpg | http://itp.nyu.edu/physcomp/uploads/midi/midi_005.jpg"setup"]] | [-Connect the Sensors-]
Changed lines 54-56 from:
[[<<]]

to:

Changed line 46 from:
%lframe width=250px% [[http://itp.nyu.edu/physcomp/uploads/midi/midi_009.jpg | http://itp.nyu.edu/physcomp/uploads/midi/midi_009.jpg"prepare"]] | [-Prepare the breadboard-]
to:
%lframe width=350px% [[http://itp.nyu.edu/physcomp/uploads/midi/midi_009.jpg | http://itp.nyu.edu/physcomp/uploads/midi/midi_009.jpg"prepare"]] | [-Prepare the breadboard-]
Changed lines 50-51 from:
%lframe width=250px% [[http://itp.nyu.edu/physcomp/uploads/midi/midi_005.jpg | http://itp.nyu.edu/physcomp/uploads/midi/midi_005.jpg"setup"]] | [-Connect the Sensors-]
to:
%lframe width=350px% [[http://itp.nyu.edu/physcomp/uploads/midi/midi_005.jpg | http://itp.nyu.edu/physcomp/uploads/midi/midi_005.jpg"setup"]] | [-Connect the Sensors-]
Changed line 46 from:
%lframe width=180px% [[http://itp.nyu.edu/physcomp/uploads/midi/midi_009.jpg | http://itp.nyu.edu/physcomp/uploads/midi/midi_009.jpg"prepare"]] | [-Prepare the breadboard-]
to:
%lframe width=250px% [[http://itp.nyu.edu/physcomp/uploads/midi/midi_009.jpg | http://itp.nyu.edu/physcomp/uploads/midi/midi_009.jpg"prepare"]] | [-Prepare the breadboard-]
Changed lines 50-51 from:
%lframe width=180px% [[http://itp.nyu.edu/physcomp/uploads/midi/midi_005.jpg | http://itp.nyu.edu/physcomp/uploads/midi/midi_005.jpg"setup"]] | [-Connect the Sensors-]
to:
%lframe width=250px% [[http://itp.nyu.edu/physcomp/uploads/midi/midi_005.jpg | http://itp.nyu.edu/physcomp/uploads/midi/midi_005.jpg"setup"]] | [-Connect the Sensors-]
Changed line 47 from:
Add power and ground wires for where your voltage regulator will be.
to:
Connect power and ground on the breadboard to power and ground from the microcontroller. On the Arduino module, use the 5V and any of the ground connections.
Changed lines 50-51 from:
%lframe width=180px% [[http://itp.nyu.edu/physcomp/uploads/arduinobb_03.jpg | http://itp.nyu.edu/physcomp/uploads/arduinobb_03.jpg"bottompower"]] | [-Bottom Power lines-]
Add power and ground wires at the bottom of your board connecting each rail.
to:
%lframe width=180px% [[http://itp.nyu.edu/physcomp/uploads/midi/midi_005.jpg | http://itp.nyu.edu/physcomp/uploads/midi/midi_005.jpg"setup"]] | [-Connect the Sensors-]
Changed lines 54-55 from:
%lframe width=180px% [[http://itp.nyu.edu/physcomp/uploads/arduinobb_04.jpg | http://itp.nyu.edu/physcomp/uploads/arduinobb_04.jpg"7805"]] | [-Add the 7805 and decoupling capacitors -]
to:

Added lines 45-55:
[[<<]]
%lframe width=180px% [[http://itp.nyu.edu/physcomp/uploads/midi/midi_009.jpg | http://itp.nyu.edu/physcomp/uploads/midi/midi_009.jpg"prepare"]] | [-Prepare the breadboard-]
Add power and ground wires for where your voltage regulator will be.
[[<<]]
[[<<]]
%lframe width=180px% [[http://itp.nyu.edu/physcomp/uploads/arduinobb_03.jpg | http://itp.nyu.edu/physcomp/uploads/arduinobb_03.jpg"bottompower"]] | [-Bottom Power lines-]
Add power and ground wires at the bottom of your board connecting each rail.
[[<<]]
[[<<]]
%lframe width=180px% [[http://itp.nyu.edu/physcomp/uploads/arduinobb_04.jpg | http://itp.nyu.edu/physcomp/uploads/arduinobb_04.jpg"7805"]] | [-Add the 7805 and decoupling capacitors -]

Changed lines 28-32 from:
to:
%lframe width=100px valign=center% [[http://itp.nyu.edu/physcomp/uploads/midi/midi_004.jpg | http://itp.nyu.edu/physcomp/uploads/midi/midi_004.jpg"MIDISport"]] | [-USB-to-MIDI interface-]



Added lines 28-30:

[[<<]]

Changed lines 19-20 from:
%lframe width=100px valign=center% [[http://itp.nyu.edu/physcomp/uploads/midi/midi_001.jpg | http://itp.nyu.edu/physcomp/uploads/midi/midi_001.jpg"push button switch"]] | [-Push button switch-]
to:
Changed lines 26-28 from:
%lframe width=100px valign=center% [[http://itp.nyu.edu/physcomp/images/labs/switch.jpg | http://itp.nyu.edu/physcomp/images/labs/switch.jpg"resistors"]] | [-switch-]
[[<<]
]
to:
%lframe width=100px valign=center% [[http://itp.nyu.edu/physcomp/uploads/midi/midi_001.jpg | http://itp.nyu.edu/physcomp/uploads/midi/midi_001.jpg"push button switch"]] | [-Push button switch-]
Changed lines 16-17 from:
%lframe width=100px valign=center% [[http://itp.nyu.edu/physcomp/images/labs/resistors.jpg | http://itp.nyu.edu/physcomp/uploads/midi/midi_001.jpg"push button switch"]] | [-Push button switch-]
to:
Added lines 18-20:

%lframe width=100px valign=center% [[http://itp.nyu.edu/physcomp/uploads/midi/midi_001.jpg | http://itp.nyu.edu/physcomp/uploads/midi/midi_001.jpg"push button switch"]] | [-Push button switch-]

Changed lines 16-17 from:
to:
%lframe width=100px valign=center% [[http://itp.nyu.edu/physcomp/images/labs/resistors.jpg | http://itp.nyu.edu/physcomp/uploads/midi/midi_001.jpg"push button switch"]] | [-Push button switch-]
Changed lines 33-37 from:
Here we will control GarageBand from switches connected to the Arduino board. Connect switches to digital input on the Arduino like you did in the [[Labs/DigitalInOut |digital lab]].
The switch shown below is a Mini Push Button Switch, but you can use any switch.
Look over the code and read a description before you use it.

to:
Here we will control GarageBand from switches connected to the Arduino board. Connect switches to digital input on the Arduino like you did in the [[Labs/DigitalInOut |digital lab]].\\
The switch shown below is a Mini Push Button Switch, but you can use any switch. Look over the code and read a description before you use it. \\

Changed lines 31-33 from:
!! Arduino + Garage Band

to:
!! Arduino + GarageBand

Here we will control GarageBand from switches connected to the Arduino board. Connect switches to digital input on the Arduino like you did in the [[Labs/DigitalInOut |digital lab]].
The switch shown below is a Mini Push Button Switch, but you can use any switch.
Look over the code and read a description before you use it.


Deleted lines 23-25:
%lframe width=90px valign=center% [[http://itp.nyu.edu/physcomp/images/labs/flex_sensors.jpg | http://itp.nyu.edu/physcomp/images/labs/flex_sensors.jpg"flex sensor"]] | [-Flex sensors\\
(or a different\\
 form of variable resistor)-]
Changed lines 30-32 from:
click on any image for a larger view.

to:
Click on any image for a larger view.

Changed line 33 from:
----//
to:
----
Changed line 33 from:
----[[<<]]
to:
----//
Changed lines 33-34 from:
----
[[<<]]
to:
----[[<<]]
Changed lines 40-47 from:
The MIDI specification only defines note number 60 as "Middle C", and all other notes are relative. The absolute octave number designations shown here are based on Middle C = C4, which is an arbitrary assignment. There is a discrepancy that occurs between various models of MIDI devices and software programs, and that concerns the octave numbers for note names. If your MIDI software/device considers octave 0 as being the lowest octave of the MIDI note range, then middle C's note name is C5. The lowest note name is then C0 (note number 0), and the highest possible note name is G10 (note number 127).


The numbers used are 0 to 127. The lowest note upon a MIDI controller is a C and this is assigned note number 0. The C# above it would have a note number of 1. The D note above that would have a note number of 2.  So "Middle C" is note number 60.



to:
The MIDI specification only defines note number 60 as "Middle C", and all other notes are relative. The absolute octave number designations shown here are based on Middle C = C4, which is an arbitrary assignment. There is a discrepancy that occurs between various models of MIDI devices and software programs, and that concerns the octave numbers for note names. If your MIDI software/device considers octave 0 as being the lowest octave of the MIDI note range, then middle C's note name is C5. The numbers used are 0 to 127. The lowest note upon a MIDI controller is a C and this is assigned note number 0. The C# above it would have a note number of 1. The D note above that would have a note number of 2.  So "Middle C" is note number 60.



Deleted line 34:
Changed lines 38-42 from:




to:
MIDI Note Numbers for Different Octaves

The MIDI specification only defines note number 60 as "Middle C", and all other notes are relative. The absolute octave number designations shown here are based on Middle C = C4, which is an arbitrary assignment. There is a discrepancy that occurs between various models of MIDI devices and software programs, and that concerns the octave numbers for note names. If your MIDI software/device considers octave 0 as being the lowest octave of the MIDI note range, then middle C's note name is C5. The lowest note name is then C0 (note number 0), and the highest possible note name is G10 (note number 127).


The numbers used are 0 to 127. The lowest note upon a MIDI controller is a C and this is assigned note number 0. The C# above it would have a note number of 1. The D note above that would have a note number of 2.  So "Middle C" is note number 60.




Added lines 31-32:

Changed lines 30-31 from:
click on any image for a larger view!
to:
click on any image for a larger view.
----
[[<<]]

Changed lines 30-33 from:



to:
click on any image for a larger view!

!! Arduino + Garage Band






Deleted lines 33-59:
{| border="1"  width="50%"  cellpadding="3"
|-
! Octave !!  C !! C# !! D !! D# !!  E !!  F !!  F#  !!  G  !! G#  !!  A  !!  A#  !!  B
|-
! -1
| 0 ||1 ||2 ||3 ||4 ||5 ||6 ||7 ||8 ||9 ||10 ||11
!  0 
|12||13||14||15||16||17||18||19||20||21||22||23
! 1
|24 ||25 ||26 ||27 ||28||29||30||31||32||33||34||35
! 2
|36||37||38||39||40||41||42||43||44||45||46||47
! 3
|48||49||50||51||52||53||54||55||56||57||58||59
! 4
|60||61||62|| 63|| 64|| 65|| 66|| 67|| 68|| 69|| 70|| 71
! 5
|72||73||74|| 75|| 76|| 77|| 78|| 79|| 80|| 81|| 82|| 83
! 6
|84||85||86|| 87|| 88|| 89|| 90|| 91|| 92|| 93|| 94|| 95
! 7
|96||97||98|| 99|| 100||101||102||103||104||105 ||106||107
! 8
|108||109||110|| 111||112||113||114||115||116||117||118||119
! 9
|120||121||122||123||124||125||126||127
|}
Changed lines 34-47 from:
||border=1 width=50%

|| !Octave
|| C||C#||D|| D#||E||F||F#||G|| G#||A||A#||B ||
||-1 || 0 ||1 ||2
||3 ||4 ||5 ||6 ||7 ||8 ||9 ||10 ||11||
||||12||13 ||14||15 ||16 ||17 ||18|| 19 ||20 ||21 ||22 ||23||
||1 ||24 ||25 ||26 ||27 ||28|| 29 ||30|| 31 ||32 ||33 ||34|| 35||
||2 ||36 ||37|| 38 ||39|| 40 ||41 ||42 ||43|| 44 ||45 ||46 ||47||
||3 ||48|| 49 ||50 ||51 ||52|| 53 ||54|| 55 ||56|| 57 ||58 ||59||
||4 ||60|| 61 ||62|| 63|| 64|| 65|| 66|| 67|| 68|| 69|| 70|| 71||
||5 ||72|| 73|| 74|| 75|| 76|| 77|| 78|| 79|| 80|| 81|| 82|| 83||
||6 ||84|| 85|| 86|| 87|| 88|| 89|| 90|| 91|| 92|| 93|| 94|| 95||
||7 ||96|| 97|| 98|| 99|| 100|| 101|| 102|| 103|| 104|| 105 ||106|| 107||
||8 ||108|| 109 ||110|| 111|| 112|| 113 ||114 ||115 ||116|| 117 ||118|| 119||
||9 ||120|| 121 ||122|| 123|| 124|| 125|| 126 ||127||
to:
{| border="1width="50%"  cellpadding="3"
|-
! Octave !! 
C !! C# !! D !! D# !!  E !!  F !!  F#  !!  G  !! G#  !!  A  !!  A#  !!  B
|-
! -1
| 0 ||1  ||2  ||3 ||4 ||5 ||6 ||7 ||8 ||9 ||10 ||11
!  0 
|12||13||14||15||16||17||18||19||20||21||22||23
!
1
|24 ||25 ||26 ||27 ||28||29||30||31||32||33||34||35
! 2
|36||37||38||39||40||41||42||43||44||45||46||47
! 3
|48||49||50||51||52||53||54||55||56||57||58||59
! 4
|60||61||62|| 63|| 64|| 65|| 66|| 67|| 68|| 69|| 70|| 71
! 5
|72||73||74|| 75|| 76|| 77|| 78|| 79|| 80|| 81|| 82|| 83
! 6
|84||85||86|| 87|| 88|| 89|| 90|| 91|| 92|| 93|| 94|| 95
! 7
|96||97||98|| 99|| 100||101||102||103||104||105 ||106||107
! 8
|108||109||110|| 111||112||113||114||115||116||117||118||119
! 9
|120||121||122||123||124||125||126||127
|}
Changed line 36 from:
|| ! Octave|| C||C#||D|| D#||E||F||F#||G|| G#||A||A#||B ||
to:
|| !Octave|| C||C#||D|| D#||E||F||F#||G|| G#||A||A#||B ||
Changed line 33 from:
<<<<<<<
to:
Changed lines 35-39 from:
|align=right
=======
||border=1 width=50%  align=center
>>>>>>>
||
Octave|| C||C#||D|| D#||E||F||F#||G|| G#||A||A#||B ||
to:

|| ! Octave|| C||C#||D|| D#||E||F||F#||G|| G#||A||A#||B ||
Added lines 33-36:
<<<<<<<
||border=1 width=50%
|align=right
=======
Added line 38:
>>>>>>>
Changed line 33 from:
||border=1 width=50%
to:
||border=1 width=50%  align=center
Changed lines 32-65 from:
<TABLE BORDER=3 WIDTH=100%>
<TR ALIGN=center><TD ROWSPAN=2><B>Octave #</B></TD><TD COLSPAN=12><B>Note Numbers</B></TD></TR>

<TR ALIGN=center><TD><B>C</B></TD><TD><B>C#</B></TD><TD><B>D</B></TD><TD> <B>D#</B></TD><TD><B>E</B><TD><B>F</B></TD><TD><B>F#</B></TD><TD><B>G</B></TD><TD><B>G#</B></TD><TD><B>A</B></TD><TD><B>A#</B></TD><TD><B>B</B></TD></TR>


 <TR ALIGN=center><TD><B>-1</B></TD><TD> 0</TD><TD>1</TD><TD> 2</TD><TD> 3</TD> <TD>4</TD><TD>5</TD> <TD>6</TD><TD>7</TD><TD>8</TD><TD>9</TD><TD>10</TD><TD>11</TD></TR>

<TR ALIGN=center><TD><B>0</B></TD><TD>12</TD><TD>13</TD><TD>14 </TD><TD>15</TD><TD>16</TD><TD>17</TD><TD>18</TD><TD>19</TD><TD>20</TD><TD>21</TD><TD>22 </TD><TD>23</TD></TR>

<TR ALIGN=center><TD><B>1</B></TD><TD>24</TD><TD>25</TD><TD>26</TD><TD>27</TD><TD>28</TD><TD>29</TD><TD>30</TD><TD>31</TD><TD>32</TD><TD>33</TD><TD>34</TD><TD>35</TD></TR>

<TR ALIGN=center><TD><B>2</B></TD><TD>36</TD><TD>37</TD><TD>38</TD><TD>39</TD><TD>40</TD><TD>41</TD><TD>42</TD><TD>43</TD><TD>44</TD><TD>45</TD><TD>46</TD><TD>47</TD></TR>

<TR ALIGN=center><TD><B>3</B></TD><TD>48</TD><TD>49</TD><TD>50</TD><TD>51</TD><TD>52</TD><TD>53</TD><TD>54 </TD><TD>55</TD><TD>56</TD><TD>57</TD><TD>58</TD><TD>59</TD></TR>

<TR ALIGN=center><TD><B>4</B></TD><TD>60</tD><TD>61</td><TD>62</TD><TD>63</TD><TD>64</TD><TD>65</TD><TD>66</TD><TD>67</TD><TD>68</td><TD>69</tD><TD>70</td><TD>71</TD></TR>

<TR ALIGN=center><TD><B>5</B></TD><TD>72</TD><TD>73</TD><TD>74</TD><TD>75</TD><TD>76</tD><TD>77</td><TD>78</TD><TD>79</tD><TD>80</TD><TD>81</td><TD>82</TD><TD>83</TD></TR>

<TR ALIGN=center><TD><B>6</B></TD><TD>84</td><TD>85</TD><TD>86</TD><TD>87</TD><TD>88</TD><TD>89</TD><TD>90</TD><TD>91</TD><TD>92</TD><TD>93</TD><TD>94</TD><TD>95</TD></TR>
 
<TR ALIGN=center><TD><B>7</B></TD><TD>96</TD><TD>97</TD><TD>98</TD><TD>99</TD><TD>100</TD><TD>101</TD><TD>102</TD><TD>103</TD><TD>104</tD><TD>105</TD><TD>106</TD><TD>107</TD></TR>

<TR ALIGN=center><TD><B>8</B></TD><TD>108</TD><TD>109</TD><TD>110</TD><TD>111</TD><TD>112</TD><TD>113</TD><TD>114</TD><TD>115</TD><TD>116</tD><TD>117</TD><TD>118</TD><TD>119</TD></TR>

 <TR ALIGN=center><TD><B>9</B></TD><TD>120</TD><TD>121</TD><TD>122</TD><TD>123</TD><TD>124</TD><TD>125 </TD><TD>126</TD><TD>127</TD></TR>

</TABLE>




to:
Changed lines 34-38 from:
|| || !Analog Sensor || !Digital Sensor ||
|| !Sensor Circuit || complex || simple ||
|| !Board Circuit      || simple  || complex ||
|| !Sensing Accuracy || reliable ||  reliable    ||
|| !Sliding Feel  || Smooth  || Stiff ||
to:
|| Octave|| C||C#||D|| D#||E||F||F#||G|| G#||A||A#||B ||
||-1 || 0 ||1 ||2 ||3 ||4 ||5 ||6 ||7 ||8 ||9 ||10 ||11||
||0  ||12||13 ||14||15 ||16 ||17 ||18|| 19 ||20 ||21 ||22 ||23||
||1 ||24 ||25 ||26 ||27 ||28|| 29 ||30|| 31 ||32 ||33 ||34|| 35||
||2 ||36 ||37|| 38 ||39|| 40 ||41 ||42 ||43|| 44 ||45 ||46 ||47||
||3 ||48|| 49 ||50 ||51 ||52|| 53 ||54|| 55 ||56|| 57 ||58 ||59||
||4 ||60|| 61 ||62|| 63|| 64|| 65|| 66|| 67|| 68|| 69|| 70|| 71||
||5 ||72|| 73|| 74|| 75|| 76|| 77|| 78|| 79|| 80|| 81|| 82|| 83||
||6 ||84|| 85|| 86|| 87|| 88|| 89|| 90|| 91|| 92|| 93|| 94|| 95||
||7 ||96|| 97|| 98|| 99|| 100|| 101|| 102|| 103|| 104|| 105 ||106|| 107||
||8 ||108|| 109 ||110|| 111|| 112|| 113 ||114 ||115 ||116|| 117 ||118|| 119||
||9 ||120|| 121 ||122|| 123|| 124|| 125|| 126 ||127
||
Added lines 29-71:



<TABLE BORDER=3 WIDTH=100%>
<TR ALIGN=center><TD ROWSPAN=2><B>Octave #</B></TD><TD COLSPAN=12><B>Note Numbers</B></TD></TR>

<TR ALIGN=center><TD><B>C</B></TD><TD><B>C#</B></TD><TD><B>D</B></TD><TD> <B>D#</B></TD><TD><B>E</B><TD><B>F</B></TD><TD><B>F#</B></TD><TD><B>G</B></TD><TD><B>G#</B></TD><TD><B>A</B></TD><TD><B>A#</B></TD><TD><B>B</B></TD></TR>


 <TR ALIGN=center><TD><B>-1</B></TD><TD> 0</TD><TD>1</TD><TD> 2</TD><TD> 3</TD> <TD>4</TD><TD>5</TD> <TD>6</TD><TD>7</TD><TD>8</TD><TD>9</TD><TD>10</TD><TD>11</TD></TR>

<TR ALIGN=center><TD><B>0</B></TD><TD>12</TD><TD>13</TD><TD>14 </TD><TD>15</TD><TD>16</TD><TD>17</TD><TD>18</TD><TD>19</TD><TD>20</TD><TD>21</TD><TD>22 </TD><TD>23</TD></TR>

<TR ALIGN=center><TD><B>1</B></TD><TD>24</TD><TD>25</TD><TD>26</TD><TD>27</TD><TD>28</TD><TD>29</TD><TD>30</TD><TD>31</TD><TD>32</TD><TD>33</TD><TD>34</TD><TD>35</TD></TR>

<TR ALIGN=center><TD><B>2</B></TD><TD>36</TD><TD>37</TD><TD>38</TD><TD>39</TD><TD>40</TD><TD>41</TD><TD>42</TD><TD>43</TD><TD>44</TD><TD>45</TD><TD>46</TD><TD>47</TD></TR>

<TR ALIGN=center><TD><B>3</B></TD><TD>48</TD><TD>49</TD><TD>50</TD><TD>51</TD><TD>52</TD><TD>53</TD><TD>54 </TD><TD>55</TD><TD>56</TD><TD>57</TD><TD>58</TD><TD>59</TD></TR>

<TR ALIGN=center><TD><B>4</B></TD><TD>60</tD><TD>61</td><TD>62</TD><TD>63</TD><TD>64</TD><TD>65</TD><TD>66</TD><TD>67</TD><TD>68</td><TD>69</tD><TD>70</td><TD>71</TD></TR>

<TR ALIGN=center><TD><B>5</B></TD><TD>72</TD><TD>73</TD><TD>74</TD><TD>75</TD><TD>76</tD><TD>77</td><TD>78</TD><TD>79</tD><TD>80</TD><TD>81</td><TD>82</TD><TD>83</TD></TR>

<TR ALIGN=center><TD><B>6</B></TD><TD>84</td><TD>85</TD><TD>86</TD><TD>87</TD><TD>88</TD><TD>89</TD><TD>90</TD><TD>91</TD><TD>92</TD><TD>93</TD><TD>94</TD><TD>95</TD></TR>
 
<TR ALIGN=center><TD><B>7</B></TD><TD>96</TD><TD>97</TD><TD>98</TD><TD>99</TD><TD>100</TD><TD>101</TD><TD>102</TD><TD>103</TD><TD>104</tD><TD>105</TD><TD>106</TD><TD>107</TD></TR>

<TR ALIGN=center><TD><B>8</B></TD><TD>108</TD><TD>109</TD><TD>110</TD><TD>111</TD><TD>112</TD><TD>113</TD><TD>114</TD><TD>115</TD><TD>116</tD><TD>117</TD><TD>118</TD><TD>119</TD></TR>

 <TR ALIGN=center><TD><B>9</B></TD><TD>120</TD><TD>121</TD><TD>122</TD><TD>123</TD><TD>124</TD><TD>125 </TD><TD>126</TD><TD>127</TD></TR>

</TABLE>





||border=1 width=50%
|| || !Analog Sensor || !Digital Sensor ||
|| !Sensor Circuit || complex || simple ||
|| !Board Circuit      || simple  || complex ||
|| !Sensing Accuracy || reliable ||  reliable    ||
|| !Sliding Feel  || Smooth  || Stiff ||
Changed lines 11-13 from:
%lframe width=100px% [[Attach:breadboard.jpg | Attach:breadboard.jpg"Solderless breadboard"]] | [-Solderless breadboard-]
%lframe width=100px% [[Attach:hookup_wire.jpg | Attach:hookup_wire.jpg"hookup wire"]] | [-22-AWG hookup wire-]
%lframe width=100px% [[Attach:arduino.jpg | Attach:arduino.jpg"Arduino module"]] | [-Arduino Microcontroller \\
to:

%lframe width=100px% [[http://itp.nyu.edu/physcomp/images/labs/breadboard.jpg | http://itp.nyu.edu/physcomp/images/labs/breadboard.jpg"Solderless breadboard"]] | [-Solderless breadboard-]
%lframe width=100px% [[http
://itp.nyu.edu/physcomp/images/labs/hookup_wire.jpg | http://itp.nyu.edu/physcomp/images/labs/hookup_wire.jpg"hookup wire"]] | [-22-AWG hookup wire-]
%lframe width=100px% [[http://itp.nyu.edu/physcomp/images/labs/arduino.jpg | http://itp.nyu.edu/physcomp/images/labs/
arduino.jpg"Arduino module"]] | [-Arduino Microcontroller \\
Added lines 16-17:

%lframe width=100px% [[http://itp.nyu.edu/physcomp/images/labs/midi_connector.JPG | http://itp.nyu.edu/physcomp/images/labs/midi_connector.JPG"MIDI connector"]] | [-MIDI connector-]
Changed lines 19-21 from:
%lframe width=100px valign=center% [[Attach:accelerometer.jpg | Attach:accelerometer.jpg]] | [-accelerometer\\
(or two other analog sensors)
-]
%lframe width=100px valign=center% [[Attach:switch.jpg | Attach:switch.jpg"resistors"]] | [-switch-]
to:

%lframe width=100px valign=center% [[http://itp.nyu.edu/physcomp/images/labs/resistors.jpg | http://itp.nyu.edu/physcomp/images/labs/resistors.jpg"resistors"]] | [-10Kohm resistors-]

%lframe width=100px valign=center% [[http://itp.nyu.edu/physcomp/images/labs/resistors.jpg | http://itp.nyu.edu/physcomp/images/labs/resistors.jpg"resistors"]] | [-220 ohm resistors-]

%lframe width=90px valign=center% [[http://itp.nyu.edu/physcomp/images/labs/flex_sensors.jpg | http://itp.nyu.edu/physcomp/images/labs/flex_sensors.jpg"flex sensor"]] | [-Flex sensors\\
(or a different\\
 form of variable resistor)-]
%lframe width=100px valign=center% [[http://itp.nyu.edu/physcomp/images/labs/switch.jpg | http://itp.nyu.edu/physcomp/images/labs/
switch.jpg"resistors"]] | [-switch-]
Deleted line 28:
Added lines 11-20:
%lframe width=100px% [[Attach:breadboard.jpg | Attach:breadboard.jpg"Solderless breadboard"]] | [-Solderless breadboard-]
%lframe width=100px% [[Attach:hookup_wire.jpg | Attach:hookup_wire.jpg"hookup wire"]] | [-22-AWG hookup wire-]
%lframe width=100px% [[Attach:arduino.jpg | Attach:arduino.jpg"Arduino module"]] | [-Arduino Microcontroller \\
module-]
[[<<]]
%lframe width=100px valign=center% [[Attach:accelerometer.jpg | Attach:accelerometer.jpg]] | [-accelerometer\\
(or two other analog sensors)-]
%lframe width=100px valign=center% [[Attach:switch.jpg | Attach:switch.jpg"resistors"]] | [-switch-]
[[<<]]

Changed line 3 from:
This tutorial shows you how to connect an Arduino making MIDI sounds to MIDI applications via a USB-to-MIDI interface.
to:
This tutorial shows you how to connect an Arduino making MIDI sounds to MIDI applications via a USB-to-MIDI interface. \\
Added line 7:
Changed lines 1-5 from:
In the [[Labs/MIDIOutput|MIDI OUTPUT lab]], we cover the details of MIDI communication on the Arduino module.

you sent data from one sensor to a personal computer.  In this lab
, you'll send data from multiple sensors to a program on a personal computer.  You'll use the data from the sensors to create a pointing-and-selecting device (i.e. a mouse).

to:
!! Overview

This tutorial shows you how to connect an Arduino making
MIDI sounds to MIDI applications via a USB-to-MIDI interface.
For a basic setup of MIDI Output on the Arduino module
, see [[Labs/MIDIOutput| MIDI Output]].

Changed lines 9-17 from:
%lframe width=100px% [[Attach:breadboard.jpg | Attach:breadboard.jpg"Solderless breadboard"]] | [-Solderless breadboard-]
%lframe width=100px% [[Attach:hookup_wire.jpg | Attach:hookup_wire.jpg"hookup wire"]] | [-22-AWG hookup wire-]
%lframe width=100px% [[Attach:arduino.jpg | Attach:arduino.jpg"Arduino module"]] | [-Arduino Microcontroller \\
module-]
[[<<]]
%lframe width=100px valign=center% [[Attach:accelerometer.jpg | Attach:accelerometer.jpg]] | [-accelerometer\\
(or two other analog sensors)-]
%lframe width=100px valign=center% [[Attach:switch.jpg | Attach:switch.jpg"resistors"]] | [-switch-]
[[<<]]
to:
Added lines 1-16:
In the [[Labs/MIDIOutput|MIDI OUTPUT lab]], we cover the details of MIDI communication on the Arduino module.

you sent data from one sensor to a personal computer.  In this lab, you'll send data from multiple sensors to a program on a personal computer.  You'll use the data from the sensors to create a pointing-and-selecting device (i.e. a mouse).


For this lab you'll need:

%lframe width=100px% [[Attach:breadboard.jpg | Attach:breadboard.jpg"Solderless breadboard"]] | [-Solderless breadboard-]
%lframe width=100px% [[Attach:hookup_wire.jpg | Attach:hookup_wire.jpg"hookup wire"]] | [-22-AWG hookup wire-]
%lframe width=100px% [[Attach:arduino.jpg | Attach:arduino.jpg"Arduino module"]] | [-Arduino Microcontroller \\
module-]
[[<<]]
%lframe width=100px valign=center% [[Attach:accelerometer.jpg | Attach:accelerometer.jpg]] | [-accelerometer\\
(or two other analog sensors)-]
%lframe width=100px valign=center% [[Attach:switch.jpg | Attach:switch.jpg"resistors"]] | [-switch-]
[[<<]]
  Edit | View | History | Print | Recent Changes | Search Page last modified on March 11, 2009, at 02:13 PM