Ok well that was quick, yes and I love Laser Puzzle, good code too, it even solved my issue!
For sure setting the loop start/end on the same byte used to work. It doesn't work anymore, so:
Code: Select all
const struct PatchStruct patches[] PROGMEM = {
{2,RibbitWave,NULL,sizeof(RibbitWave)-1,sizeof(RibbitWave)-1},
...
Needs to instead be:
Code: Select all
const struct PatchStruct patches[] PROGMEM = {
{2,RibbitWave,NULL,sizeof(RibbitWave)-2,sizeof(RibbitWave)-1},
To be fair, I can see how the looping logic actually makes more sense for that, just need to make sure the last 2 bytes of a sample are 0 instead of just the last one. Anyway if someone has the same "runaway PCM" issue, it's probably this.
Pretty sure the PCM tutorial still offers the old way, which is setting someone up to fail now if someone wants to fix it. I'm still locked out of the Wiki unfortunately.