Arduino Midi drum | Help Wanted

Hi all, I 've been working on a midi drum project and I am alittle stuck. The idea is to trigger one of sixteen notes (sensorID) depending on which of the sixteen piezo sensors are touched with velocity senitivity. Can anyome help me formatting the code for viewing the serial monitor. As it is now I see only unreadable characters in the monitor and that might be the least of my worries. I’m also not sure I’m assinging the sensorID’s correctly, it should be sensorID 60 deing middle C and 75 being one and onhalf octaves up. So as you touch sensor 1-16 you get a chromatic scale and then some.

Here’s my sketck

/* ReadMultiplexedSensorsAndSendMIDI
* ------------
* Reads 2 8 channel Multiplexers and sends the values
*/
//#define CONTROLpin1 1
#define drumchan           1
#define CONTROLpin2 2
#define CONTROLpin3 3
#define CONTROLpin4 4
#define ledPin 13
int piezoPin = 0;
int THRESHOLD = 100; // set minimum value that indicates a knock
int val,t;
int actualSensorValue;             // value from the analog input
// Variables:
char sensorID[16] = { 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
72, 73, 74};
char sensorValueToSend = 0;            // Value of the sensor
// Some error chacking would be good here.
//If the values exceede 128 the will not fit in one byte.
//void sendCommand(char command, char sensorID, char value) {
//  Serial.print(command, BYTE);
//  Serial.print(sensorID, BYTE);
//  Serial.print(value, BYTE);
//}
// Send a MIDI note-on message.  Like pressing a piano key
// channel ranges from 0-15
void noteOn(byte channel, byte sensorID, byte velocity) {
 midiMsg( (0x90 | channel), sensorID, velocity);
}

// Send a MIDI note-off message.  Like releasing a piano key
void noteOff(byte channel, byte sensorID, byte velocity) {
 midiMsg( (0x80 | channel), sensorID, velocity);
}

// Send a general MIDI message
void midiMsg(byte cmd, byte data1, byte data2) {
 digitalWrite(ledPin,HIGH);  // indicate we're sending MIDI data
 Serial.print(cmd, BYTE);
 Serial.print(data1, BYTE);
 Serial.print(data2, BYTE);
 digitalWrite(ledPin,LOW);
}
void setup() {
 //  set the states of the I/O pins:
 pinMode(ledPin, OUTPUT);
 //pinMode(CONTROLpin1, OUTPUT);
 pinMode(CONTROLpin2, OUTPUT);
 pinMode(CONTROLpin3, OUTPUT);
 pinMode(CONTROLpin4, OUTPUT);
 Serial.begin(31250);
}
void loop() {
 int i;
 int j;
 for (i=0; i <8; i++) {
   // set control pins on the multiplexers
   //
   digitalWrite(CONTROLpin3, (i&4)>>2);//bit3
   digitalWrite(CONTROLpin2, (i&2)>>1);//bit2
   digitalWrite(CONTROLpin1, (i&1)   );//bit1
   // read the analogue inputs and send the values of the sensors.
   for(j=0; j<2; j++){
     //actualSensorValue = analogRead(j)>>3;
     // You will have to adjust this line so that can send the
     // sensor value in one byte.
     //sensorValueToSend = actualSensorValue / 7;
     //sendCommand(0x90, i+8*j, sensorValueToSend);
////temp////
// deal with piezos, this is kind of a hack
 val = analogRead(j);
 if( val >= THRESHOLD ) {
   digitalWrite(ledPin, HIGH);
   t=0;
   while(analogRead(j) >= THRESHOLD/2) {
     t++;
   }
   noteOn(drumchan,sensorID[i], t*2);
   delay(t);
   digitalWrite(ledPin, LOW);
   noteOff(drumchan,sensorID[i],0);
////endtemp////
}
   }

   // if you uncomment this line you can check the control pins
   // of the multiplexers with your multimeter.
   //delay(500);

 }

}

Any assistance would be greatly appreciated

thank you in advance

Caesar

you wont be able to see anything sent as a byte “Serial.print(69,BYTE);” get rid of the BYTE and you will be able to see it in serial monitor, but the drum thing youre sending this to wont be able to interpret it then