Keyboard code

I am working on a keyboard project, and i was wondering if someone could take a look at this code, and tell me if there is a way to more or less turn the ISR on/off? I want to implement this code in another program, but I will not be able to if the interrupt routine cannot be controller properly. Thank you

/*
 /*
 Copyright 2007 Richard Cappels used with his permission
 www.projects.cappels.org
 This assumes an R/2R DAC (or other DAC) connected to PORTD, and
 Arduino 16mhz clock
 The frequency measured at the output of the DAC is 1.007 kHz.
 ported to arduino by hotcarrier
 output to pd7-pd2 with 6 bits- needs high order pd7 to work
 correctly
 */

#include <avr/interrupt.h>
#include <stdlib.h>
char sinetable [32];
volatile int myInt;
int  i ;
int j = 0;

void ioinit (void)
{
  //Initialize output ports
  PORTD = B11111111;
  DDRD  = B11111111;

}

void timer_setup(){
  TCCR2A = 0;
  TCNT2= 0;    //455 outputs 1.007khz
  TCCR2B = B00000010;
  //Timer2 Overflow Interrupt Enable
  TIMSK2 = 1<<TOIE2;
}

void setup()  {
  ioinit();
  arraysetup();
  cli();
  timer_setup();
  i = 0;
  sei();  
}

ISR(TIMER2_OVF_vect) {
  PORTD=(sinetable[i++]);
  TCNT2 = 455;
  if(i==32){
    i=0;
  }
}

void arraysetup(void){
  sinetable[0]=127;  // Put 32 step 8 bit sine table into array.
  sinetable[1]=152;
  sinetable[2]=176;
  sinetable[3]=198;
  sinetable[4]=217;
  sinetable[5]=233;
  sinetable[6]=245;
  sinetable[7]=252;
  sinetable[8]=254;
  sinetable[9]=252;
  sinetable[10]=245;
  sinetable[11]=233;
  sinetable[12]=217;
  sinetable[13]=198;
  sinetable[14]=176;
  sinetable[15]=152;
  sinetable[16]=128;
  sinetable[17]=103;
  sinetable[18]=79;
  sinetable[19]=57;
  sinetable[20]=38;
  sinetable[21]=22;
  sinetable[22]=10;
  sinetable[23]=3;
  sinetable[24]=0;
  sinetable[25]=3;
  sinetable[26]=10;
  sinetable[27]=22;
  sinetable[28]=38;
  sinetable[29]=57;
  sinetable[30]=79;
  sinetable[31]=103;
}
void loop()
{
        
}

sei() and cli() set it on and off, but that's global so not a good way to do this. You should be able to simply disable the specific timer interrupt (check the data sheet on details). You can set a flag that's checked for in the timer routine, and acted upon.

But it would be much better if you explain a bit more of what you're actually trying to accomplish with this and the code it's to be tied into.

You seem to mean a musical keyboard, not a computer keyboard?

You'll have to find out yourself, whether the wave sound quality is acceptable, and whether the achievable frequency is sufficient.