When you edited checkSensors() to get rid of the HiHat stuff, I think you messed up a few else clauses.
Try this:
Code: Select all
void checkSensors(int analogPin)
{
for(int pin=0; pin < 16; pin++)
{
if(analogPin==0)
{
hitavg = mux0array[pin];
pad=pin;
}
if(analogPin==1)
{
hitavg = mux1array[pin];
pad=pin+16;
}
if(analogPin==2)
{
hitavg = mux2array[pin];
pad=pin+32;
}
if((hitavg > PadCutOff[pin]))
{
//Serial.writeln("hitavg > PadCutOff[pin])");
if((activePad[pad] == false))
{
if(VelocityFlag == true)
{
//hitavg = 127 / ((1023 - PadCutOff[pin]) / (hitavg - PadCutOff[pin])); // With full range (Too sensitive ?)
hitavg = (hitavg / 8) -1 ; // Upper range
}
else
{
hitavg = 127;
}
MIDI_TX(144,PadNote[pad],hitavg);
PinPlayTime[pad] = 0;
activePad[pad] = true;
}
else
{
PinPlayTime[pad] = PinPlayTime[pad] + 1;
}
}
else
{
if((activePad[pad] == true))
{
PinPlayTime[pad] = PinPlayTime[pad] + 1;
if(PinPlayTime[pad] > MaxPlayTime[pad])
{
activePad[pad] = false;
MIDI_TX(128,PadNote[pad],127);
}
}
}
if(analogPin==0)
{
if (activePad[pad])
mcp0.digitalWrite(pad, HIGH);
else
mcp0.digitalWrite(pad, LOW);
}
if(analogPin==1)
{
// if (activePad[pad])
// mcp1.digitalWrite(pad-16, HIGH);
// else
// mcp1.digitalWrite(pad-16, LOW);
}
if(analogPin==2)
{
// if (activePad[pad])
// mcp2.digitalWrite(pad-32, HIGH);
// else
// mcp2.digitalWrite(pad-32, LOW);
}
}
}