Arduino sin sonido

Buen dìa Colegas, mucho tiempo sin trabajar con arduinos y hoy me he topado con un problema que no puedo resolver y quiero ver si alquien me puede ayudar

tengo el siguiente còdigo el cual al intentar hacerlo con la interrupciòn externa no reproduce sonido alguno y en el monitor serial tarda pero si se ve el incremento de los números... alguien me podria ayudar por favor para ver que esta mal en el código y como corregir ya que al compilar no me marca error alguno.

#include <Tone.h>
#include <EEPROM.h>

Tone freq1;
Tone freq2;


const int DTMF_freq1[] = { NOTE_C4, NOTE_C5, NOTE_A3, NOTE_A4, NOTE_AS3, NOTE_AS4, 0, 0, 0, NOTE_C4, NOTE_C5, NOTE_A3, NOTE_A4, NOTE_AS3, NOTE_AS4, 0, 0, 0, NOTE_F3, NOTE_F4, NOTE_D3, NOTE_D4, NOTE_DS3, NOTE_DS4, 0, 0, 0, NOTE_F3, NOTE_F4, NOTE_D3, NOTE_D4, NOTE_DS3, NOTE_DS4, 0, 0, NOTE_DS4, NOTE_D4, NOTE_CS4, NOTE_C4, 0, NOTE_DS4, 0, NOTE_D4, 0, NOTE_GS3, 0, NOTE_G3, 0, NOTE_CS4, 0, NOTE_C4, NOTE_FS4, NOTE_F4, NOTE_E4, NOTE_AS4, NOTE_A4, NOTE_GS4, 0, NOTE_DS4, 0, NOTE_B3, 0, NOTE_AS3, 0, NOTE_A3, 0, NOTE_GS3, 0 };
const int DTMF_freq2[] = { NOTE_C3, NOTE_C4, NOTE_A2, NOTE_A3, NOTE_AS2, NOTE_AS3, 0, 0, 0, NOTE_C3, NOTE_C4, NOTE_A2, NOTE_A3, NOTE_AS2, NOTE_AS3, 0, 0, 0, NOTE_F2, NOTE_F3, NOTE_D2, NOTE_D3, NOTE_DS2, NOTE_DS3, 0, 0, 0, NOTE_F2, NOTE_F3, NOTE_D2, NOTE_D3, NOTE_DS2, NOTE_DS3, 0, 0, NOTE_DS3, NOTE_D3, NOTE_CS3, NOTE_C3, 0, NOTE_DS3, 0, NOTE_D3, 0, NOTE_GS2, 0, NOTE_G2, 0, NOTE_CS3, 0, NOTE_C3, NOTE_FS3, NOTE_F3, NOTE_E3, NOTE_AS3, NOTE_A3, NOTE_GS3, 0, NOTE_DS3, 0, NOTE_B2, 0, NOTE_AS2, 0, NOTE_A2, 0, NOTE_GS2, 0 };
const int DTMF_freq3[] = { NOTE_E3, NOTE_A5, NOTE_D5, NOTE_D4, NOTE_G4, NOTE_GS3, NOTE_D3, NOTE_CS2, NOTE_A3, NOTE_A5, NOTE_D5, NOTE_D4, NOTE_G4, NOTE_GS3, NOTE_G3, NOTE_CS4, NOTE_C4, NOTE_CS3, NOTE_C3, NOTE_B2, NOTE_A2, NOTE_GS2, NOTE_E2, NOTE_B2, NOTE_AS2, NOTE_G2, 0, NOTE_E3, NOTE_A5, NOTE_D5, NOTE_D4, NOTE_G4, NOTE_GS3, NOTE_D3, NOTE_CS2, NOTE_A3, NOTE_A5, NOTE_D5, NOTE_D4, NOTE_G4, NOTE_GS3, NOTE_G3, NOTE_CS4, NOTE_C4, NOTE_CS3, NOTE_C3, NOTE_B2, NOTE_A2, NOTE_GS2, NOTE_E2, NOTE_B2, NOTE_AS2, NOTE_G2, 0, NOTE_E3, NOTE_A5, NOTE_D5, NOTE_D4, NOTE_G4, NOTE_GS3, NOTE_D3, NOTE_CS2, NOTE_A3, NOTE_A5, NOTE_D5, NOTE_D4, NOTE_G4, NOTE_GS3, NOTE_G3, NOTE_CS4, NOTE_C4, NOTE_CS3, NOTE_C3, NOTE_B2, NOTE_A2, NOTE_GS2, NOTE_E2, NOTE_B2, NOTE_AS2, NOTE_G2, 0};
const int DTMF_freq4[] = { NOTE_E3, NOTE_A5, NOTE_D5, NOTE_D4, NOTE_G4, NOTE_GS3, NOTE_D3, NOTE_CS2, NOTE_A3, NOTE_A5, NOTE_D5, NOTE_D4, NOTE_G4, NOTE_GS3, NOTE_G3, NOTE_CS4, NOTE_C4, NOTE_CS3, NOTE_C3, NOTE_B2, NOTE_A2, NOTE_GS2, NOTE_E2, NOTE_B2, NOTE_AS2, NOTE_G2, 0, NOTE_E3, NOTE_A5, NOTE_D5, NOTE_D4, NOTE_G4, NOTE_GS3, NOTE_D3, NOTE_CS2, NOTE_A3, NOTE_A5, NOTE_D5, NOTE_D4, NOTE_G4, NOTE_GS3, NOTE_G3, NOTE_CS4, NOTE_C4, NOTE_CS3, NOTE_C3, NOTE_B2, NOTE_A2, NOTE_GS2, NOTE_E2, NOTE_B2, NOTE_AS2, NOTE_G2, 0, NOTE_E3, NOTE_A5, NOTE_D5, NOTE_D4, NOTE_G4, NOTE_GS3, NOTE_D3, NOTE_CS2, NOTE_A3, NOTE_A5, NOTE_D5, NOTE_D4, NOTE_G4, NOTE_GS3, NOTE_G3, NOTE_CS4, NOTE_C4, NOTE_CS3, NOTE_C3, NOTE_B2, NOTE_A2, NOTE_GS2, NOTE_E2, NOTE_B2, NOTE_AS2, NOTE_G2, 0};

int noteDurations[] = {166, 166, 166, 166, 166, 166, 300, 300, 300, 166, 166, 166, 166, 166, 166, 300, 300, 300, 166, 166, 166, 166, 166, 166, 300, 300, 300, 166, 166, 166, 166, 166, 166, 100, 100, 112, 112, 112, 112, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 107, 107, 107, 107, 107, 107, 107, 50, 150, 50, 150, 50, 150, 50, 150, 50, 150};
int noteDurations1[] = { 8, 16, 13, 2, 10, 3, 3, 8, 16, 13, 2, 9, 5, 2, 3, 9, 1, 4, 1, 2, 6, 10, 1, 8, 5, 7, 86, 8, 16, 13, 2, 10, 3, 3, 8, 16, 13, 2, 9, 5, 2, 3, 9, 1, 4, 1, 2, 6, 10, 1, 8, 5, 7, 86, 8, 16, 13, 2, 10, 3, 3, 8, 16, 13, 2, 9, 5, 2, 3, 9, 1, 4, 1, 2, 6, 10, 1, 8, 5, 7, 86};

#include <stdint.h>
#include <avr/interrupt.h>
#include <avr/io.h>
#include <avr/pgmspace.h>

void tocar()
{


  freq1.begin(11);
  freq2.begin(12);
  int address = 0;
  Serial.begin(9600);

    int i;
    int h;
    int j;
    
    j = EEPROM.read(address);
    j=j+1;
    EEPROM.write(address, j);
    Serial.print(j);
    
    if (j < 10){
      
      for(h = 0; h < 81; h ++)
      {
        int noteDuration = noteDurations1[h];
        playDTMF1(h, noteDuration);
        int pauseBetweenNotes = noteDuration * 1;
        delay(pauseBetweenNotes);
      }
    }
    else
    {
      for(h = 0; h < 81; h ++)
      {
        int noteDuration = noteDurations1[h];
        playDTMF1(h, noteDuration);
        int pauseBetweenNotes = noteDuration * 1;
        delay(pauseBetweenNotes);
      }
        
      delay(100);
      
      for(i = 0; i < 68; i ++)
      {
        int noteDuration = noteDurations[i];
        playDTMF(i, noteDuration);
        int pauseBetweenNotes = noteDuration * 1;
        delay(pauseBetweenNotes);
      }
      
      EEPROM.write(address, 0);
    }
}

void playDTMF(uint8_t number, long duration)
{
  freq1.play(DTMF_freq1[number], duration);
  freq2.play(DTMF_freq2[number], duration);

}

void playDTMF1(uint8_t number, long duration)
{
  freq1.play(DTMF_freq3[number], duration);
  freq2.play(DTMF_freq4[number], duration);

}

void setup(){
   attachInterrupt(0, tocar, RISING);

}

void loop()
{
 
}

de igual manera les doy las librerias que estoy utilizando
Muchas gracias

Tone.cpp (11.4 KB)

Tone.h (3.23 KB)