I've figured out how to isolate the issue, at this point I believe that the issue come from some priority issue related to the IntervalTimer as implied from https://forum.pjrc.com/threads/26686...t-based-timing. Here is the main code.
Code:
#include "audioInfra.h"
#include "Audio.h"
IntervalTimer myTimer;
class Kick
{
public:
Kick()
{
patch9 = new AudioConnection(wav, 0, s_out, 0);
s_out.gain(1.0);
}
void noteOn(byte velocity)
{
if (wav.play("KICK1.RAW"))
{
count++;
}
Serial.printf("played %d times", count);
}
int count = 0;
AudioAmplifier s_out;
private:
AudioPlaySerialflashRaw wav;
AudioConnection *patch9;
};
Kick *k;
AudioConnection *patchCord1;
void setup()
{
Serial.begin(112500);
while (!Serial)
;
Serial.println("serial is up");
audioInfra->setup();
Serial.println("audio infra setup done");
k = new Kick();
patchCord1 = new AudioConnection(k->s_out, 0, audioInfra->output1, 0);
Serial.println("objects allocated");
int sixteenth = (int)(1000.0 * 15000.0 / 240.0);
myTimer.begin(sendMidiClock, sixteenth);
Serial.println("general setup finished");
}
void loop()
{
}
void sendMidiClock()
{
k->noteOn(127);
}
And here is the AudioInfra.h file
Code:
#include <Audio.h>
#include <i2c_t3.h>
#include <SD_t3.h>
#include <functional>
#include <EEPROM.h>
#include <SerialFlash.h>
#ifndef _AUDIO_INFRA_H_
#define _AUDIO_INFRA_H_
#define SDCARD_CS_PIN 10
#define SDCARD_MOSI_PIN 7
#define SDCARD_SCK_PIN 14
#define SFLASH_PIN 6
class AudioInfra
{
public:
void setup()
{
AudioMemory(60);
sgtl5000_1.enable();
sgtl5000_1.volume(0.8);
audioInfraPatch1 = new AudioConnection(output1, 0, internalMixer, 0);
audioInfraPatch2 = new AudioConnection(output2, 0, internalMixer, 1);
audioInfraPatch3 = new AudioConnection(internalMixer, 0, audioOutput, 0);
audioInfraPatch4 = new AudioConnection(internalMixer, 0, audioOutput, 1);
SPI.setMOSI(SDCARD_MOSI_PIN);
SPI.setSCK(SDCARD_SCK_PIN);
SerialFlash.begin(SFLASH_PIN);
delay(100);
Serial.println("serial flash begun");
}
AudioMixer4 output1;
AudioMixer4 output2;
AudioAmplifier _input;
private:
AudioOutputI2S audioOutput;
AudioConnection *audioInfraPatch1;
AudioConnection *audioInfraPatch2;
AudioConnection *audioInfraPatch3;
AudioConnection *audioInfraPatch4;
AudioMixer4 internalMixer;
AudioControlSGTL5000 sgtl5000_1;
};
AudioInfra *audioInfra = new AudioInfra();
#endif