Here's part of the code: (declarations and setup)
#include <Bounce.h>
#include <Tone.h>
Tone drum;
Tone lead;
Bounce button1 = Bounce( 8,7 );
Bounce button2 = Bounce( 9,7 );
Bounce button3 = Bounce( 10,7 );
Bounce button4 = Bounce( 11,7 );
const int clockPin = 2;
const int dataPin = 3;
const int latch1 = 4;
const int latch2 = 5;
#define REST -1
#define BASS 1
#define SNARE 2
#define HHATC 3
#define HHATO 4
#define RISE 5
#define PEW 6
#define NOISERISE 7
#define NOISEPEW 8
int beat[4][16] = {
{
1, REST, REST, REST,
REST, REST, REST, REST,
REST, REST, REST, REST,
REST, REST, REST, REST
}
,
{
1, REST, REST, REST,
REST, REST, REST, REST,
REST, REST, REST, REST,
REST, REST, REST, REST
}
,
{
1, REST, REST, REST,
REST, REST, REST, REST,
REST, REST, REST, REST,
REST, REST, REST, REST
}
,
{
1, REST, REST, REST,
REST, REST, REST, REST,
REST, REST, REST, REST,
REST, REST, REST, REST
}
};
int music[4][16] = {
{
1, REST, REST, REST,
REST, REST, REST, REST,
REST, REST, REST, REST,
REST, REST, REST, REST
}
,
{
1, REST, REST, REST,
REST, REST, REST, REST,
REST, REST, REST, REST,
REST, REST, REST, REST
}
,
{
1, REST, REST, REST,
REST, REST, REST, REST,
REST, REST, REST, REST,
REST, REST, REST, REST
}
,
{
1, REST, REST, REST,
REST, REST, REST, REST,
REST, REST, REST, REST,
REST, REST, REST, REST
}
};
const int notes[] = {
NOTE_C3, NOTE_CS3, NOTE_D3, NOTE_DS3,
NOTE_E3, NOTE_E3, NOTE_F3, NOTE_FS3,
NOTE_G3, NOTE_GS3, NOTE_A3, NOTE_AS3,
NOTE_B3, NOTE_B3,
};
int octaves[4][16] = {
{
1, 0, 0, 0,
0, 0, 0, 0,
0, 0, 0, 0,
0, 0, 0, 0
}
,
{
1, 0, 0, 0,
0, 0, 0, 0,
0, 0, 0, 0,
0, 0, 0, 0
}
,
{
1, 0, 0, 0,
0, 0, 0, 0,
0, 0, 0, 0,
0, 0, 0, 0
}
,
{
1, 0, 0, 0,
0, 0, 0, 0,
0, 0, 0, 0,
0, 0, 0, 0
}
};
boolean sharps[4][16] = {
{
true, false, false, false,
false, false, false, false,
false, false, false, false,
false, false, false, false
}
,
{
true, false, false, false,
false, false, false, false,
false, false, false, false,
false, false, false, false
}
,
{
true, false, false, false,
false, false, false, false,
false, false, false, false,
false, false, false, false
}
,
{
true, false, false, false,
false, false, false, false,
false, false, false, false,
false, false, false, false
}
};
int position; // position in sequence. 0-15
int pattern; //number of the pattern currently playing
int row=0;
long held;
long held2;
boolean trackMode = true; //true: drum track false: lead track
int octaveDisp = 0; //which octave is displayed
boolean playMode = false; //false: loope displayed pattern true: goes thru all 4 patterns.
int patternDisp = 0;
void setup() {
drum.begin(18);
lead.begin(19);
position = 0;
for(int i = 2; i<=5; i++) {
pinMode(i, OUTPUT);
}
Serial.begin(9600);
button1.write(HIGH);
button2.write(HIGH);
button3.write(HIGH);
button4.write(HIGH);
for(int i =0; i<=3; i++) {
beat[i][0] = REST;
music[i][0] = REST;
octaves[i][0] = 0;
sharps[i][0] = false;
}
}