#define MIDI_ON 144 #define MIDI_OFF 128 #define MIDI_CHANNEL 0 int status = 0; void setup() { Serial.begin( 115200 ); // set the baud rate } void loop() { status = MIDI_ON + MIDI_CHANNEL; midi2Max( status, 60, 90 ); // send a MIDI ``note on'' message delay( 500 ); // delay 500 milliseconds status = MIDI_OFF + MIDI_CHANNEL; midi2Max( status, 60, 0 ); // send a MIDI ``note off'' message delay( 500 ); // delay 500 milliseconds } // Send a 3 ``byte'' MIDI message (without checking values) void midi2Max( int cmd, int data1, int data2 ) { Serial.print( cmd ); Serial.print(' '); Serial.print( data1 ); Serial.print(' '); Serial.print( data2 ); Serial.println(); } |
#define MIDI_ON 144 #define MIDI_OFF 128 #define MIDI_PROGRAM 192 #define MIDI_CHANNEL 0 int fsrPin = 1; // FSR pin int status = 0; int fsr = 0; float temp = 0.0; // midi2Max function declaration with optional arguments void midi2Max( int cmd, int data1 = -1, int data2 = -1 ); void setup() { Serial.begin( 115200 ); // set the MIDI baud rate } void loop() { fsr = analogRead( fsrPin ); // read the input pin temp = fsr; temp *= 40; temp /= 1024; temp += 50; // scale the value between 50 - 90 fsr = temp; //status = MIDI_PROGRAM + MIDI_CHANNEL; //midi2Max( status, random(64) ); status = MIDI_ON + MIDI_CHANNEL; midi2Max( status, fsr, 90 ); // send a MIDI ``note on'' message delay(500); // delay 500 milliseconds status = MIDI_OFF + MIDI_CHANNEL; midi2Max( status, fsr, 0 ); // send a MIDI ``note off'' message delay(500); // delay 500 milliseconds } // Send a MIDI message of 1 to 3 ``bytes'' (without checking values) void midi2Max( int cmd, int data1, int data2 ) { Serial.print( cmd ); if ( data1 >= 0 ) { Serial.print(' '); Serial.print( data1 ); } if ( data2 >= 0 ) { Serial.print(' '); Serial.print( data2 ); } Serial.println(); } |
#define MIDI_ON 144 #define MIDI_OFF 128 #define MIDI_PROGRAM 192 #define MIDI_CHANNEL 0 #define DRUM_CHANNEL 9 #define BASS_CHANNEL 0 #define KICK 35 // kick drum note number #define HAT 42 // closed hi-hat note number #define BASS 39 // bass program number int status = 0; int counter = 0; char bassNote = 28; char drumNote = HAT; // midi2Max function declaration with optional arguments void midi2Max( int cmd, int data1 = -1, int data2 = -1 ); void setup() { Serial.begin( 115200 ); // set the MIDI baud rate Serial.print( MIDI_PROGRAM + BASS_CHANNEL ); // Do MIDI program change for bass voice Serial.print( ' ' ); Serial.println( BASS ); } void loop() { if ( counter == 0 ) { midi2Max( MIDI_OFF + DRUM_CHANNEL, drumNote, 0 ); drumNote = KICK; midi2Max( MIDI_ON + DRUM_CHANNEL, drumNote, 64 ); midi2Max( MIDI_OFF + BASS_CHANNEL, bassNote, 0 ); bassNote = 28; midi2Max( MIDI_ON + BASS_CHANNEL, bassNote, 64 ); } else if ( counter == 2 ) { midi2Max( MIDI_OFF + DRUM_CHANNEL, drumNote, 0 ); drumNote = HAT; midi2Max( MIDI_ON + DRUM_CHANNEL, drumNote, 64 ); } else if ( counter == 4 ) { midi2Max( MIDI_OFF + DRUM_CHANNEL, drumNote, 0 ); drumNote = KICK; midi2Max( MIDI_ON + DRUM_CHANNEL, drumNote, 64 ); } else if ( counter == 6 ) { midi2Max( MIDI_OFF + DRUM_CHANNEL, drumNote, 0 ); drumNote = HAT; midi2Max( MIDI_ON + DRUM_CHANNEL, drumNote, 64 ); } else if ( counter == 8 ) { midi2Max( MIDI_OFF + DRUM_CHANNEL, drumNote, 0 ); drumNote = KICK; midi2Max( MIDI_ON + DRUM_CHANNEL, drumNote, 64 ); } else if ( counter == 10 ) { midi2Max( MIDI_OFF + DRUM_CHANNEL, drumNote, 0 ); drumNote = HAT; midi2Max( MIDI_ON + DRUM_CHANNEL, drumNote, 64 ); } else if ( counter == 12 ) { midi2Max( MIDI_OFF + DRUM_CHANNEL, drumNote, 0 ); drumNote = KICK; midi2Max( MIDI_ON + DRUM_CHANNEL, drumNote, 64 ); } else if ( counter == 14 ) { midi2Max( MIDI_OFF + DRUM_CHANNEL, drumNote, 0 ); drumNote = HAT; midi2Max( MIDI_ON + DRUM_CHANNEL, drumNote, 64 ); } counter++; if ( counter > 15 ) counter = 0; delay( 100 ); // delay 100 milliseconds } // Send a MIDI message of 1 to 3 ``bytes'' (without checking values) void midi2Max( int cmd, int data1, int data2 ) { Serial.print( cmd ); if ( data1 >= 0 ) { Serial.print(' '); Serial.print( data1 ); } if ( data2 >= 0 ) { Serial.print(' '); Serial.print( data2 ); } Serial.println(); } |
![]() | ©2003-2020 McGill University. All Rights Reserved. Maintained by Gary P. Scavone. |