int ereaseRow = 0; boolean doErease = false; boolean doRec = false; void setBeat(int index, int sample) { samples[sample][index] = true; } void keyPressed() { println(keyCode); if(keyCode >= 48 && keyCode < 57) { // From 0 to 9 ereaseRow = keyCode-48; } else if(keyCode >= 74) { // From P to Z if(key == 'p') { controller[0] = controller[0] == "PLAY" ? "STOP" : "PLAY"; beat=0; } if(key == 'r') { controller[1] = controller[1] == "UNSET" ? "REC/OVERDUB" : "UNSET"; doRec = true; } if(key == 'x') { controller[1] = "EREASE"; } } else { // From A to O int sample = keyCode-65; ereaseRow = controller[1] == "EREASE" ? keyCode-64 : 0; doErease = ereaseRow>0; if(sample >= 0 && sample < numSounds && !doErease) { if(controller[1] != "EREASE" && controller[1] != "UNSET") { setBeat(beat, sample); } } } }