Hi! Im running a version of SpikenzieLab's DrumKitAI Sketch on an Arduino mega 2560.
The problem is that the original sketch doesnt contemplate any hi hat pedal and I want to add one.
Im new to programming and arduino and I cant find the way to add it with a pusher button.
This is the original code (the only modification is that I only use 3 piezo sensor for now):
//*******************************************************************************************************************
// User settable variables
//*******************************************************************************************************************unsigned char PadNote[6] = {22,36,60,62,64,65}; // MIDI notes from 0 to 127 (Mid C = 60)
int PadCutOff[6] = {900,950,900,900,900,900}; // Minimum Analog value to cause a drum hit
int MaxPlayTime[6] = {90,90,90,90,90,90}; // Cycles before a 2nd hit is allowed
#define midichannel 0; // MIDI channel from 0 to 15 (+1 in "real world")
boolean VelocityFlag = true; // Velocity ON (true) or OFF (false)
//*******************************************************************************************************************
// Internal Use Variables
//*******************************************************************************************************************boolean activePad[6] = {0,0,0,0,0,0}; // Array of flags of pad currently playing
int PinPlayTime[6] = {0,0,0,0,0,0}; // Counter since pad started to playunsigned char status;
int pin = 0;
int hitavg = 0;//*******************************************************************************************************************
// Setup
//*******************************************************************************************************************void setup()
{
Serial.begin(57600); // connect to the serial port 115200
}//*******************************************************************************************************************
// Main Program
//*******************************************************************************************************************void loop()
{
for(int pin=0; pin < 3; pin++)
{
hitavg = analogRead(pin); // read the input pinif((hitavg > PadCutOff[pin]))
{
if((activePad[pin] == 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[pin],hitavg);
PinPlayTime[pin] = 0;
activePad[pin] = true;
}
else
{
PinPlayTime[pin] = PinPlayTime[pin] + 1;
}
}
else if((activePad[pin] == true))
{
PinPlayTime[pin] = PinPlayTime[pin] + 1;if(PinPlayTime[pin] > MaxPlayTime[pin])
{
activePad[pin] = false;
MIDI_TX(128,PadNote[pin],127);
}
}
}
}//*******************************************************************************************************************
// Transmit MIDI Message
//*******************************************************************************************************************
void MIDI_TX(unsigned char MESSAGE, unsigned char PITCH, unsigned char VELOCITY)
{
status = MESSAGE + midichannel;
Serial.write(status);
Serial.write(PITCH);
Serial.write(VELOCITY);}
I want to be able to swith sounds when the button is pushed and when its not.
So when the buton is pushed and the sensor for the hi hat is hit, I want it to make the close hi hat sound. And when the buton isnt pushed and the sensor is hit, I want it to make the open hihat sound.
Also, I want it to make the closed hihat sound every time the buton is pushed (the moment when hi hat closes)
Can someone help me?