#define MIDI_ON 144
#define MIDI_OFF 128
#define MIDI_CHANNEL 0
int status = 0;
// midi2Pd function declaration with optional arguments
void midi2Pd( int cmd, int data1 = -1, int data2 = -1 );
void setup()
{
Serial.begin( 115200 ); // set the baud rate
}
void loop()
{
status = MIDI_ON + MIDI_CHANNEL;
midi2Pd( status, 60, 90 ); // send a MIDI ``note on'' message
delay( 500 ); // delay 500 milliseconds
status = MIDI_OFF + MIDI_CHANNEL;
midi2Pd( status, 60, 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 midi2Pd( 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
int fsrPin = 1; // FSR pin
int status = 0;
int fsr = 0;
float temp = 0.0;
// midi2Pd function declaration with optional arguments
void midi2Pd( 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;
//midi2Pd( status, random(64) );
status = MIDI_ON + MIDI_CHANNEL;
midi2Pd( status, fsr, 90 ); // send a MIDI ``note on'' message
delay(500); // delay 500 milliseconds
status = MIDI_OFF + MIDI_CHANNEL;
midi2Pd( 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 midi2Pd( 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;
// midi2Pd function declaration with optional arguments
void midi2Pd( 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 ) {
midi2Pd( MIDI_OFF + DRUM_CHANNEL, drumNote, 0 );
drumNote = KICK;
midi2Pd( MIDI_ON + DRUM_CHANNEL, drumNote, 64 );
midi2Pd( MIDI_OFF + BASS_CHANNEL, bassNote, 0 );
bassNote = 28;
midi2Pd( MIDI_ON + BASS_CHANNEL, bassNote, 64 );
}
else if ( counter == 2 ) {
midi2Pd( MIDI_OFF + DRUM_CHANNEL, drumNote, 0 );
drumNote = HAT;
midi2Pd( MIDI_ON + DRUM_CHANNEL, drumNote, 64 );
}
else if ( counter == 4 ) {
midi2Pd( MIDI_OFF + DRUM_CHANNEL, drumNote, 0 );
drumNote = KICK;
midi2Pd( MIDI_ON + DRUM_CHANNEL, drumNote, 64 );
}
else if ( counter == 6 ) {
midi2Pd( MIDI_OFF + DRUM_CHANNEL, drumNote, 0 );
drumNote = HAT;
midi2Pd( MIDI_ON + DRUM_CHANNEL, drumNote, 64 );
}
else if ( counter == 8 ) {
midi2Pd( MIDI_OFF + DRUM_CHANNEL, drumNote, 0 );
drumNote = KICK;
midi2Pd( MIDI_ON + DRUM_CHANNEL, drumNote, 64 );
}
else if ( counter == 10 ) {
midi2Pd( MIDI_OFF + DRUM_CHANNEL, drumNote, 0 );
drumNote = HAT;
midi2Pd( MIDI_ON + DRUM_CHANNEL, drumNote, 64 );
}
else if ( counter == 12 ) {
midi2Pd( MIDI_OFF + DRUM_CHANNEL, drumNote, 0 );
drumNote = KICK;
midi2Pd( MIDI_ON + DRUM_CHANNEL, drumNote, 64 );
}
else if ( counter == 14 ) {
midi2Pd( MIDI_OFF + DRUM_CHANNEL, drumNote, 0 );
drumNote = HAT;
midi2Pd( 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 midi2Pd( 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-2026 McGill University. All Rights Reserved. Maintained by Gary P. Scavone. |