Hey guys,
Thanks again for your help, I can copy the code from the main sketch file and paste it here. It's pretty long though, I removed most of all the "sound" sequence numbers so my post would fit I hope it makes sense:
#include <avr/pgmspace.h>
#include <SPI.h>
#include <Bounce.h>
#include <DAC_MCP49xx.h>
DAC_MCP49xx dac(DAC_MCP49xx::MCP4901, 10);
PROGMEM prog_char noise_table[] = {};
PROGMEM prog_char kick_table[] =
{
127,127,127,127,127,127,127,127,127,127,127,127,127,
};
int kick_length=5744;
PROGMEM prog_char tick_table[] =
{
127,128,127,126,125,124,124,123,124,
};
int tick_length=832;
PROGMEM prog_char snare_table[] = //clap
{
127,129,125,130,124,131,121,134,114,178,222,
};
int snare_length= 5200;
PROGMEM prog_char bass_table[] =
//button2 tom
{
127,137,146,153,154,156,163,170,175,
};
int bass_length=12150;
int sample_holder1,sample_holder2;
byte eee,ee,ef,eef;
byte shift,bankpg,bankpr,bout,rout,gout,prevpot2;
byte banko=0;
byte n1,n2;
int n3;
byte bankpb=4;
byte beat;
int pot1 = 127;
int pot2=4;
long pot3,pot4;
int kick_sample,snare_sample,sample,hat_sample,noise_sample,bass_sample,B2_freq_sample,B1_freq_sample;
uint16_t increment,increment2,increment3,increment4,increment5,increment2v,increment4v;
uint32_t accumulator,accumulator2,accumulator3,accumulator4,accumulator5,accu_freq_1,accu_freq_2;
int rando;
//byte B1_sequence[16]={0,1,0,1 ,1,1,0,0 ,0,1,0,1 ,1,1,1,1};
//byte B4_sequence[16]={1,0,1,0 ,1,0,1,0 ,1,0,1,0 ,1,1,1,1};
byte B2_sequence[128]={};
byte B3_sequence[128]={};
byte B1_sequence[128]={};
byte B4_sequence[128]={
1,0,0,0 ,0,0,0,0 ,1,0,0,0 ,0,0,0,0 ,1,0,0,0 ,0,0,0,0 ,1,0,0,0 ,0,0,0,0,
1,0,0,0 ,0,0,0,0 ,1,0,0,0 ,0,0,0,0 ,1,0,0,0 ,0,0,0,0 ,1,0,0,0 ,0,0,0,0,
0,0,0,0 ,0,0,0,0 ,0,0,0,0 ,0,0,0,0 ,0,0,0,0 ,0,0,0,0 ,0,0,0,0 ,0,0,0,0,
1,1,1,1 ,1,1,1,1 ,1,1,1,1 ,1,1,1,1 ,0,0,0,0 ,0,0,0,0 ,0,0,0,0 ,0,0,0,0,
};
int B2_freq_sequence[128]={};
int B1_freq_sequence[128]={};
int sample_sum;
int j,k,freq3,cc;
int kf,pf,holdkf,kfe;
int shiftcount=0;
int t1,c1,count1,dd;
byte noise_type;
uint16_t index,index2,index3,index4,index5,index4b,index_freq_1,index_freq_2,index4bv;
uint16_t indexr,index2r,index3r,index4r,index4br,index2vr,index4vr;
int osc,oscc;
byte ledstep;
byte noise_mode=1;
unsigned long freq,freq2;
int wavepot,lfopot, arppot;
byte loopstep=0;
byte loopstepf=0;
byte recordbutton,prevrecordbutton,record,looptrigger,prevloopstep,revbutton,prevrevbutton,preva,prevb;
int looprate;
int clapbank[16]={1,0,0,0,1,0,1,0,1,1,1,1,0,0,0,0};
long prev,prev2,prev3;
byte playmode=1;
byte play=0;
byte playbutton,pplaybutton;
byte prevbanktrigger,banktrigger;
byte pkbutton,kbutton,B4_trigger,B4_latch,cbutton, pcbutton,B4_loop_trigger, B1_trigger,kick,B1_latch,clap,B1_loop_trigger,B4_seq_trigger,B3_seq_trigger;
byte ptbutton,tbutton,ttriger,B1_seq_trigger,B3_latch,B2_trigger,bc, B2_loop_trigger,B3_loop_trigger;
byte B2_latch,B3_trigger, B2_seq_trigger,pbutton,ppbutton;
byte kicktriggerv,B2_seq_latch,kickseqtriggerv, B1_seq_latch, pewseqtriggerv,precordbutton;
byte measure,half;
byte recordmode=1;
byte tap,tapbutton,ptapbutton,eigth;
long tapholder,prevtap;
unsigned long taptempo=8000000;
unsigned long ratepot;
byte r,g,b,erase,e,preveigth;
Bounce bouncertap = Bounce(8, 15);
byte trigger_input, trigger_output, prev_trigger_in_read,trigger_in_read,trigger_out_latch,tl;
byte onetime=1;
Bounce bouncer1 = Bounce(2, 2000); //not actuall 1 seconds since timers are running at 64kHz.
Bounce bouncer4 = Bounce(18, 2000);
Bounce bouncer2 = Bounce(19, 2000);
Bounce bouncer3 = Bounce( 17, 2000);
byte prevshift,shift_latch;
byte t;
long tapbank[4];
int what,pwhat;
void setup() {
dac.setGain(1);
analogWrite(9,2); //Blue
randomSeed(analogRead(0));
//Serial.begin(9600);
cli();
pinMode (12, OUTPUT); pinMode (13, OUTPUT);pinMode (11, OUTPUT);pinMode (10, OUTPUT);pinMode (9, OUTPUT); pinMode (5, OUTPUT); pinMode (6, OUTPUT);
pinMode (3, INPUT); digitalWrite(3, HIGH); //play
pinMode (4, INPUT); digitalWrite (4, HIGH); //rec
pinMode (8, INPUT); digitalWrite (8, HIGH); //tap
pinMode (7, INPUT); digitalWrite(7, HIGH); //shift
pinMode (17, INPUT); digitalWrite (17, HIGH); //up right tom
pinMode (18, INPUT); digitalWrite (18, HIGH); // low right kick
pinMode (19, INPUT); digitalWrite (19, HIGH); //Low left clap
pinMode (2, INPUT); digitalWrite (2, HIGH); // Up left pew
pinMode (16, INPUT); digitalWrite (16, HIGH);
SPI.begin();
SPI.setBitOrder(MSBFIRST);
/* Enable interrupt on timer2 == 127, with clk/8 prescaler. At 16MHz,
this gives a timer interrupt at 15625Hz. */
TIMSK2 = (1 << OCIE2A);
OCR2A = 127;
//OCR2B = 127;
/* clear/reset timer on match /
TCCR2A = 1<<WGM21 | 0<<WGM20; / CTC mode, reset on match /
TCCR2B = 0<<CS22 | 1<<CS21 | 1<<CS20; / clk, /8 prescaler */
//dac
SPCR = 0x50;
SPSR = 0x01;
DDRB |= 0x2E;
PORTB |= (1<<1);
//pwm
TCCR0B = B0000001;
TCCR1B = B0000001;
for (byte w=0; w++; w<64){
analogWrite(9,w); //Blue
analogWrite(6,w); //green
analogWrite(5,w);
// delay(2);
}
sei();
if (digitalRead(7)==0){
noise_mode=1;}
else{
noise_mode=0;}
}