using "TeensyVariablePlayback library" getting short breaking cut in looping mode

charnjit

Well-known member
hello,,,
I am trying to make 16 pad loop sampler as coded in my sketch below . i assign 28buttons (16 for play a wav file in loop mode , 8 to control others functions, a pot to control audio volume, Rotary Enc to inc/dec playback speed control, inc/dec bank_number).
All buttons and controls are working fine.
please see sketch below . sorry if code is long to read.but every thing i need i wrote in code.

Code:
#include <Keypad.h>                               // 
#include <Arduino.h>
#include <Audio.h>
#include <SD.h>
#include <TeensyVariablePlayback.h>
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <Encoder.h>


const uint8_t ROWS = 7;  // 7 rows
const uint8_t COLS = 4;  //4 columns    //   Analog pin_22 ,  Enc (2,3)  ,
char keys[ROWS][COLS] = {
    { 1, 2, 3, 4 },
    { 5, 6, 7, 8 },
    { 9, 10, 11, 12 },
    { 13, 14, 15, 16 },
    { 17, 18, 19, 20 },
    { 21, 22, 23, 24 },
    { 25, 26, 27, 28 }
};
uint8_t rowPins[ROWS] = { 33, 34, 35, 36, 37, 38, 39 }; 
uint8_t colPins[COLS] = { 40, 41, 14, 16 };         
Keypad kpd = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);


// GUItool: begin automatically generated code
AudioPlaySdResmp playSdWav1;  //xy=324,457
AudioAmplifier           amp2;           //xy=256,670
AudioAmplifier           amp1;           //xy=271,613
AudioAmplifier           amp01;
AudioMixer4              mixer1;         //xy=404,620
AudioMixer4              mixer2;         //xy=411,722

AudioOutputI2S i2s2;          //xy=840.8571472167969,445.5714416503906
AudioConnection          patchCord1(playSdWav1, 0, amp1, 0);
AudioConnection          patchCord2(playSdWav1, 1, amp2, 0);
AudioConnection          patchCord4(amp2, 0, mixer2, 0);
AudioConnection          patchCord5(amp1, 0, mixer1, 0);
AudioConnection          patchCord7(mixer1, 0, i2s2, 0);
AudioConnection          patchCord8(mixer2, 0, i2s2, 1);

AudioControlSGTL5000 audioShield;

#define SCREEN_WIDTH 128  // OLED display width, in pixels
#define SCREEN_HEIGHT 32  // OLED display height, in pixels

#define OLED_RESET -1
#define SCREEN_ADDRESS 0x3C  ///< See datasheet for Address; 0x3D for 128x64, 0x3C for 128x32
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
Encoder myEnc(2, 3);

#define INC_BUTTON 24 
#define DEC_BUTTON 23 
#define ENCODER_BUTTON 25
#define KIT_BUTTON 17
#define TAP_BUTTON 18
#define SYNC_BUTTON 20
#define SHIFT_BUTTON 19 
#define FAST_BUTTON 22 
#define SLOW_BUTTON 21
String msg;
String INC_DEC_MODE = "BANK";

float Speed = 1.00;
float VOL = 0.9;
float VOL_A = 0.0;
float VOL_AA = 0.0;
int Bank = 3;
int Last_Bank = 3;
int  TAP_HOLD = 0;
unsigned long old_millis = 0;
float BPM = 110.00;
int Display_BPM = 110;
 int i= 0;
  int hold_status=0;
 int PRESS_A = 0;
 int PRESS_AA = 0;
 unsigned long PRESS_millis = 0;


void setup() {


    Serial.begin(57600);
    kpd.setHoldTime(2000);

    if (!display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS)) {
        Serial.println(F("SSD1306 allocation failed"));
        for (;;)
            ;  // Don't proceed, loop forever
    }
    display.display();
    delay(2000);
    display.clearDisplay();
    msg = "";

    if (!(SD.begin(BUILTIN_SDCARD))) {
        while (1) {
            Serial.println("Unable to access the SD card");
            delay(500);
        }
    }

    AudioMemory(24);
    audioShield.enable();
    audioShield.volume(1.0);
    amp1.gain(VOL);
    amp2.gain(VOL);
    playSdWav1.enableInterpolation(true);
      Serial.println("Loop Sampler 16 Pad");
     SCN_START ();
     delay(3000);
     SCN_MAIN();
}

long oldPosition  = -999;
 long Last_Position = 0;
void loop() {

  long newPosition = myEnc.read();
  if (myEnc.read() != oldPosition) {
  if  (myEnc.read() < oldPosition)  {     
    Serial.println(" -- ");     
      Speed = Speed + 0.01;      playSdWav1.setPlaybackRate(Speed);           SCN_SPEED ();      SCN_HOLD ();
  }
  else if  (myEnc.read() > oldPosition)  {     
    Serial.println(" ++ ");   
      Speed = Speed - 0.01;     playSdWav1.setPlaybackRate(Speed);     SCN_SPEED ();      SCN_HOLD ();
  }
    oldPosition = myEnc.read();  Serial.println(myEnc.read());
  }

      
    if (analogRead(22) ==1)       {VOL_A = 0.0;    }
      if (analogRead(22) ==85)   {VOL_A = 0.1;    }
      if (analogRead(22) ==170)  {VOL_A = 0.2;    }
        if (analogRead(22) ==255)   {VOL_A = 0.3;    }
         if (analogRead(22) ==341)   {VOL_A = 0.4;    }
          if (analogRead(22) ==426)   {VOL_A = 0.5;    }
           if (analogRead(22) ==511)   {VOL_A = 0.6;    }
           if (analogRead(22) ==597)   {VOL_A = 0.7;    }
            if (analogRead(22) ==682)   {VOL_A = 0.8;    }
              if (analogRead(22) ==767)   {VOL_A = 0.9;    }
               if (analogRead(22) ==852)   {VOL_A = 1.0;    }
                if (analogRead(22) ==938)   {VOL_A = 1.1;    }
                if (analogRead(22) ==1022)   {VOL_A = 1.2;    }

      if (VOL_A != VOL_AA) { 
        Serial.println( VOL_A);   
        amp1.gain(VOL_A);   
        amp2.gain(VOL_A);           
        VOL_AA = VOL_A; 
        SCN_VOL ();    SCN_HOLD ();
        }

        if (kpd.getKeys()) {
        for (int i = 0; i < LIST_MAX; i++) 
        {    int mykey = (kpd.key[i].kchar);
            if (kpd.key[i].stateChanged)  //  -----------------------------------------Key Changed----------------
            {      switch (kpd.key[i].kstate) {
                    case PRESSED:
                    Serial.println(mykey);    Serial.println("PRESSED");
                        break;
                    case RELEASED:
                     Serial.println(mykey);    Serial.println("RELEASED");
                        break;
                }
            }  //--------------------------------------------------------------------------------------------------   
             if ((kpd.key[i].stateChanged)  && (mykey ==1))  //  -----------------------------------------Key Changed----------------
            {      switch (kpd.key[i].kstate) {
                    case PRESSED:
                 Pad1();
                
                        break;
                }
            }  //--------------------------------------------------------------------------------------------------   
               if ((kpd.key[i].stateChanged)  && (mykey ==2))  //  -----------------------------------------Key Changed----------------
            {      switch (kpd.key[i].kstate) {
                    case PRESSED:
                 Pad2 ();
                        break;
                }
            }  //--------------------------------------------------------------------------------------------------
               if ((kpd.key[i].stateChanged)  && (mykey ==3))  //  -----------------------------------------Key Changed----------------
            {      switch (kpd.key[i].kstate) {
                    case PRESSED:
                 Pad3 ();
                        break;
                }
            }  //--------------------------------------------------------------------------------------------------
               if ((kpd.key[i].stateChanged)  && (mykey ==4))  //  -----------------------------------------Key Changed----------------
            {      switch (kpd.key[i].kstate) {
                    case PRESSED:
                 Pad4 ();
                        break;
                }
            }  //--------------------------------------------------------------------------------------------------
               if ((kpd.key[i].stateChanged)  && (mykey ==5))  //  -----------------------------------------Key Changed----------------
            {      switch (kpd.key[i].kstate) {
                    case PRESSED:
                 Pad5 ();
                        break;
                }
            }  //--------------------------------------------------------------------------------------------------
               if ((kpd.key[i].stateChanged)  && (mykey ==6))  //  -----------------------------------------Key Changed----------------
            {      switch (kpd.key[i].kstate) {
                    case PRESSED:
                 Pad6 ();
                        break;
                }
            }  //--------------------------------------------------------------------------------------------------
               if ((kpd.key[i].stateChanged)  && (mykey ==7))  //  -----------------------------------------Key Changed----------------
            {      switch (kpd.key[i].kstate) {
                    case PRESSED:
                 Pad7 ();
                        break;
                }
            }  //--------------------------------------------------------------------------------------------------
               if ((kpd.key[i].stateChanged)  && (mykey ==8))  //  -----------------------------------------Key Changed----------------
            {      switch (kpd.key[i].kstate) {
                    case PRESSED:
                 Pad8 ();
                        break;
                }
            }  //--------------------------------------------------------------------------------------------------
               if ((kpd.key[i].stateChanged)  && (mykey ==9))  //  -----------------------------------------Key Changed----------------
            {      switch (kpd.key[i].kstate) {
                    case PRESSED:
                 Pad9 ();
                        break;
                }
            }  //--------------------------------------------------------------------------------------------------
               if ((kpd.key[i].stateChanged)  && (mykey ==10))  //  -----------------------------------------Key Changed----------------
            {      switch (kpd.key[i].kstate) {
                    case PRESSED:
                 Pad10 ();
                        break;
                }
            }  //--------------------------------------------------------------------------------------------------
               if ((kpd.key[i].stateChanged)  && (mykey ==11))  //  -----------------------------------------Key Changed----------------
            {      switch (kpd.key[i].kstate) {
                    case PRESSED:
                 Pad11 ();
                        break;
                }
            }  //--------------------------------------------------------------------------------------------------
               if ((kpd.key[i].stateChanged)  && (mykey ==12))  //  -----------------------------------------Key Changed----------------
            {      switch (kpd.key[i].kstate) {
                    case PRESSED:
                 Pad12 ();
                        break;
                }
            }  //--------------------------------------------------------------------------------------------------
               if ((kpd.key[i].stateChanged)  && (mykey ==13))  //  -----------------------------------------Key Changed----------------
            {      switch (kpd.key[i].kstate) {
                    case PRESSED:
                 Pad13 ();
                        break;
                }
            }  //--------------------------------------------------------------------------------------------------
               if ((kpd.key[i].stateChanged)  && (mykey ==14))  //  -----------------------------------------Key Changed----------------
            {      switch (kpd.key[i].kstate) {
                    case PRESSED:
                 Pad14 ();
                        break;
                }
            }  //--------------------------------------------------------------------------------------------------
               if ((kpd.key[i].stateChanged)  && (mykey ==15))  //  -----------------------------------------Key Changed----------------
            {      switch (kpd.key[i].kstate) {
                    case PRESSED:
                 Pad15 ();
                        break;
                }
            }  //--------------------------------------------------------------------------------------------------
               if ((kpd.key[i].stateChanged)  && (mykey ==16))  //  -----------------------------------------Key Changed----------------
            {      switch (kpd.key[i].kstate) {
                    case PRESSED:
                 Pad16 ();
                   playSdWav1.setLoopType(looptype_none);
                        break;
                }
            }  //--------------------------------------------------------------------------------------------------
                          if ((kpd.key[i].stateChanged)  && (mykey == KIT_BUTTON))  //  -----------------------------------------Key Changed----------------
            {      switch (kpd.key[i].kstate) {
                    case PRESSED:
                    Last_Bank = Bank;
                    Bank = 31;   SCN_MAIN();
                        break;
                    case RELEASED:
                    Bank = Last_Bank;   SCN_MAIN();
                    break;
                }
            }  //--------------------------------------------------------------------------------------------------
              if ((kpd.key[i].stateChanged)  && (mykey ==TAP_BUTTON))  //  -----------------------------------------Key Changed----------------
            {      switch (kpd.key[i].kstate) {
                    case PRESSED:
                      BPM = 60000/(millis()-old_millis);
                   if ((BPM>50) && (BPM<220)) SYNC_BPM ();   SCN_BPM ();    //   switch (kpd.key[i].kstate) {  case 90:    /doing/ break;  }
                     old_millis = millis();     SCN_HOLD ();       
                                       INC_DEC_MODE = "VOL";
                        break;
                         case RELEASED:
                                       INC_DEC_MODE = "BANK";
                        break;
                }
            }  //--------------------------------------------------------------------------------------------------
 
             if ((kpd.key[i].stateChanged)  && (mykey == SYNC_BUTTON))  //  -----------------------------------------Key Changed----------------
            {      switch (kpd.key[i].kstate) {
                    case PRESSED:
                        break;
                    case RELEASED:
                    break;
                }
            }  //--------------------------------------------------------------------------------------------------
             if ((kpd.key[i].stateChanged)  && (mykey == DEC_BUTTON))  //  -----------------------------------------Key Changed-------(-)---------
            {      switch (kpd.key[i].kstate) {
                    case PRESSED:
                   if  (INC_DEC_MODE == "BANK")   { Bank--; SCN_MAIN(); }
                    if  (INC_DEC_MODE == "VOL")  {   VOL=VOL-0.1;  amp1.gain(VOL);    amp2.gain(VOL);  SCN_VOL ();   }  // vol --
                        break;
                }
            }  //-------------------------------------------------------------------------------------------------- 
             if ((kpd.key[i].stateChanged)  && (mykey == INC_BUTTON))  //  -----------------------------------------Key Changed--------(+)--------
            {      switch (kpd.key[i].kstate) {
                    case PRESSED:
                    if  (INC_DEC_MODE == "BANK")     { Bank++; SCN_MAIN();    }
                      if  (INC_DEC_MODE == "VOL")   {    VOL=VOL+0.1;  amp1.gain(VOL);    amp2.gain(VOL);   SCN_VOL (); }  // vol --
                        break;
                  
                }
            }  //-------------------------------------------------------------------------------------------------- 
             if ((kpd.key[i].stateChanged)  && (mykey == SLOW_BUTTON))  //  -----------------------------------------Key Changed----------------
            {      switch (kpd.key[i].kstate) {
                    case PRESSED:
                     Speed = Speed - 0.01;
            playSdWav1.setPlaybackRate(Speed);
                       SCN_SPEED ();      SCN_HOLD ();
                        break;
                }
            }  //-------------------------------------------------------------------------------------------------- 
             if ((kpd.key[i].stateChanged)  && (mykey == FAST_BUTTON))  //  -----------------------------------------Key Changed----------------
            {      switch (kpd.key[i].kstate) {
                    case PRESSED:
                     Speed = Speed + 0.01;
            playSdWav1.setPlaybackRate(Speed); 
                        SCN_SPEED ();      SCN_HOLD ();
                        break;
                }
            }  //--------------------------------------------------------------------------------------------------       
              if ((kpd.key[i].stateChanged)  && (mykey == ENCODER_BUTTON))  //  -----------------------------------------Key Changed----------------
            {      switch (kpd.key[i].kstate) {
                    case PRESSED:
                     Speed = 1.00;
            playSdWav1.setPlaybackRate(Speed);
                       SCN_SPEED ();      SCN_HOLD ();
                        break;
                }
            }  //--------------------------------------------------------------------------------------------------       
        }
    }   
//********************************************************************************************************

    if ((Bank > 32) && (Bank == 33)) { Bank = 1; }
     if ((Bank < 1 ) && (Bank == 0)) { Bank = 32; }
     if (VOL > 1.1) { VOL = 1.1;  }
      if (VOL < 0) { VOL = 0;  }

             if (millis() > (PRESS_millis+2000)) { PRESS_A =0;  }
     if (PRESS_A != PRESS_AA)   {PRESS_AA = PRESS_A;  if (PRESS_A == 0) {    Serial.println("Return Main SCN"); SCN_MAIN();   } }

  
} 

void SCN_MAIN() {
      Display_BPM = BPM;
    display.clearDisplay();
    display.setTextSize(1);               // Normal 1:1 pixel scale
    display.setTextColor(SSD1306_WHITE);  // Draw white text
    display.setCursor(0, 0);
    display.print("SPD: ");
    display.print(Speed);
    display.print("    ");
    display.print("BPM: ");
    display.print(Display_BPM);
    display.setCursor(0, 10);              // Start at top-left corner
    display.setTextSize(2);
   display.print("Bank: ");
    display.print(Bank);
    display.display();
}
void SCN_START ()
{
    display.clearDisplay();
    display.setTextSize(2);               // Normal 1:1 pixel scale
    display.setTextColor(SSD1306_WHITE);  // Draw white text
    display.setCursor(10, 0);              // Start at top-left corner
    display.print("Sampler");
     display.setCursor(20, 20);
    display.setTextSize(1);
     display.println("16 Pad");
    display.display();
}
void SCN_BPM ()  {
      display.clearDisplay();
    display.setTextSize(2);               // Normal 1:1 pixel scale
    display.setTextColor(SSD1306_WHITE);  // Draw white text
    display.setCursor(0, 0);              // Start at top-left corner
    display.print("BPM  ");
    display.setTextSize(3);
    display.setCursor(50, 3);
    display.print(BPM);
    display.display();
}
void SCN_VOL ()  {
      display.clearDisplay();
    display.setTextSize(2);               // Normal 1:1 pixel scale
    display.setTextColor(SSD1306_WHITE);  // Draw white text
    display.setCursor(0, 0);              // Start at top-left corner
    display.print("VOLUME ");
    display.setCursor(60, 16);
    int Display_VOL = (VOL_A*100);
    display.print(Display_VOL);
    display.display();
}
void SCN_SPEED ()  {
      display.clearDisplay();
    display.setTextSize(2);               // Normal 1:1 pixel scale
    display.setTextColor(SSD1306_WHITE);  // Draw white text
    display.setCursor(0, 0);              // Start at top-left corner
    display.print("SPEED");
    display.setCursor(60, 16);
    display.print(Speed);
    display.display();
}


   void SYNC_BPM ()   {
     if  (BPM < 125)  {
      // do set for 106x 
      float Reading = ((BPM -6.00)/100);
      Speed =  Reading; 
       playSdWav1.setPlaybackRate(Speed);   Bank = 3;  SCN_MAIN();   
        Serial.println(Speed);
     }
      if  (BPM > 125)  {
      // do set for 140x
        float Reading2 = ((BPM -40.00)/100);
      Speed =  Reading2;         
       playSdWav1.setPlaybackRate(Speed);     Bank = 7;  SCN_MAIN();   
        Serial.println(Speed);
     }
   }
  void SCN_HOLD ()
                { PRESS_millis = millis();   PRESS_A = 1;  }
  
void Pad1 () {

         if (Bank ==1)  {  playSdWav1.playWav("001_01.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
          if (Bank ==2)  {  playSdWav1.playWav("002_01.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
           if (Bank ==3)  {  playSdWav1.playWav("003_01.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
            if (Bank ==4)  {  playSdWav1.playWav("004_01.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
             if (Bank ==5)  {  playSdWav1.playWav("005_01.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
              if (Bank ==6)  {  playSdWav1.playWav("006_01.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
               if (Bank ==7)  {  playSdWav1.playWav("007_01.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                if (Bank ==8)  {  playSdWav1.playWav("008_01.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                 if (Bank ==9)  {  playSdWav1.playWav("009_01.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                  if (Bank ==10)  {  playSdWav1.playWav("010_01.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                   if (Bank ==11)  {  playSdWav1.playWav("011_01.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                    if (Bank ==12)  {  playSdWav1.playWav("012_01.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                     if (Bank ==13)  {  playSdWav1.playWav("013_01.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                      if (Bank ==14)  {  playSdWav1.playWav("014_01.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                       if (Bank ==15)  {  playSdWav1.playWav("015_01.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                        if (Bank ==16)  {  playSdWav1.playWav("016_01.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                         if (Bank ==17)  {  playSdWav1.playWav("017_01.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                          if (Bank ==18)  {  playSdWav1.playWav("018_01.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                           if (Bank ==19)  {  playSdWav1.playWav("019_01.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                            if (Bank ==20)  {  playSdWav1.playWav("020_01.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                              if (Bank ==31)  {  playSdWav1.playWav("031_01.WAV");        playSdWav1.setLoopType(looptype_none);  }
                   }
void Pad2 () {
         if (Bank ==1)  {  playSdWav1.playWav("001_02.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
          if (Bank ==2)  {  playSdWav1.playWav("002_02.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
           if (Bank ==3)  {  playSdWav1.playWav("003_02.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
            if (Bank ==4)  {  playSdWav1.playWav("004_02.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
             if (Bank ==5)  {  playSdWav1.playWav("005_02.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
              if (Bank ==6)  {  playSdWav1.playWav("006_02.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
               if (Bank ==7)  {  playSdWav1.playWav("007_02.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                if (Bank ==8)  {  playSdWav1.playWav("008_02.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                 if (Bank ==9)  {  playSdWav1.playWav("009_02.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                  if (Bank ==10)  {  playSdWav1.playWav("010_02.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                   if (Bank ==11)  {  playSdWav1.playWav("011_02.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                    if (Bank ==12)  {  playSdWav1.playWav("012_02.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                     if (Bank ==13)  {  playSdWav1.playWav("013_02.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                      if (Bank ==14)  {  playSdWav1.playWav("014_02.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                       if (Bank ==15)  {  playSdWav1.playWav("015_02.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                        if (Bank ==16)  {  playSdWav1.playWav("016_02.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                         if (Bank ==17)  {  playSdWav1.playWav("017_02.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                          if (Bank ==18)  {  playSdWav1.playWav("018_02.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                           if (Bank ==19)  {  playSdWav1.playWav("019_02.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                            if (Bank ==20)  {  playSdWav1.playWav("020_02.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                             if (Bank ==31)  {  playSdWav1.playWav("031_02.WAV");        playSdWav1.setLoopType(looptype_none);  }
                   }
void Pad3 () {
         if (Bank ==1)  {  playSdWav1.playWav("001_03.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
          if (Bank ==2)  {  playSdWav1.playWav("002_03.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
           if (Bank ==3)  {  playSdWav1.playWav("003_03.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
            if (Bank ==4)  {  playSdWav1.playWav("004_03.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
             if (Bank ==5)  {  playSdWav1.playWav("005_03.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
              if (Bank ==6)  {  playSdWav1.playWav("006_03.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
               if (Bank ==7)  {  playSdWav1.playWav("007_03.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                if (Bank ==8)  {  playSdWav1.playWav("008_03.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                 if (Bank ==9)  {  playSdWav1.playWav("009_03.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                  if (Bank ==10)  {  playSdWav1.playWav("010_03.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                   if (Bank ==11)  {  playSdWav1.playWav("011_03.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                    if (Bank ==12)  {  playSdWav1.playWav("012_03.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                     if (Bank ==13)  {  playSdWav1.playWav("013_03.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                      if (Bank ==14)  {  playSdWav1.playWav("014_03.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                       if (Bank ==15)  {  playSdWav1.playWav("015_03.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                        if (Bank ==16)  {  playSdWav1.playWav("016_03.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                         if (Bank ==17)  {  playSdWav1.playWav("017_03.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                          if (Bank ==18)  {  playSdWav1.playWav("018_03.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                           if (Bank ==19)  {  playSdWav1.playWav("019_03.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                            if (Bank ==20)  {  playSdWav1.playWav("020_03.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                            if (Bank ==31)  {  playSdWav1.playWav("031_03.WAV");        playSdWav1.setLoopType(looptype_none);  }
                   }
void Pad4 () {
         if (Bank ==1)  {  playSdWav1.playWav("001_04.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
          if (Bank ==2)  {  playSdWav1.playWav("002_04.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
           if (Bank ==3)  {  playSdWav1.playWav("003_04.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
            if (Bank ==4)  {  playSdWav1.playWav("004_04.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
             if (Bank ==5)  {  playSdWav1.playWav("005_04.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
              if (Bank ==6)  {  playSdWav1.playWav("006_04.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
               if (Bank ==7)  {  playSdWav1.playWav("007_04.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                if (Bank ==8)  {  playSdWav1.playWav("008_04.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                 if (Bank ==9)  {  playSdWav1.playWav("009_04.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                  if (Bank ==10)  {  playSdWav1.playWav("010_04.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                   if (Bank ==11)  {  playSdWav1.playWav("011_04.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                    if (Bank ==12)  {  playSdWav1.playWav("012_04.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                     if (Bank ==13)  {  playSdWav1.playWav("013_04.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                      if (Bank ==14)  {  playSdWav1.playWav("014_04.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                       if (Bank ==15)  {  playSdWav1.playWav("015_04.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                        if (Bank ==16)  {  playSdWav1.playWav("016_04.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                         if (Bank ==17)  {  playSdWav1.playWav("017_04.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                          if (Bank ==18)  {  playSdWav1.playWav("018_04.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                           if (Bank ==19)  {  playSdWav1.playWav("019_04.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                            if (Bank ==20)  {  playSdWav1.playWav("020_04.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                               if (Bank ==31)  {  playSdWav1.playWav("031_04.WAV");        playSdWav1.setLoopType(looptype_none);  }
                   }
void Pad5 () {
         if (Bank ==1)  {  playSdWav1.playWav("001_05.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
          if (Bank ==2)  {  playSdWav1.playWav("002_05.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
           if (Bank ==3)  {  playSdWav1.playWav("003_05.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
            if (Bank ==4)  {  playSdWav1.playWav("004_05.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
             if (Bank ==5)  {  playSdWav1.playWav("005_05.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
              if (Bank ==6)  {  playSdWav1.playWav("006_05.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
               if (Bank ==7)  {  playSdWav1.playWav("007_05.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                if (Bank ==8)  {  playSdWav1.playWav("008_05.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                 if (Bank ==9)  {  playSdWav1.playWav("009_05.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                  if (Bank ==10)  {  playSdWav1.playWav("010_05.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                   if (Bank ==11)  {  playSdWav1.playWav("011_05.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                    if (Bank ==12)  {  playSdWav1.playWav("012_05.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                     if (Bank ==13)  {  playSdWav1.playWav("013_05.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                      if (Bank ==14)  {  playSdWav1.playWav("014_05.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                       if (Bank ==15)  {  playSdWav1.playWav("015_05.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                        if (Bank ==16)  {  playSdWav1.playWav("016_05.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                         if (Bank ==17)  {  playSdWav1.playWav("017_05.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                          if (Bank ==18)  {  playSdWav1.playWav("018_05.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                           if (Bank ==19)  {  playSdWav1.playWav("019_05.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                            if (Bank ==20)  {  playSdWav1.playWav("020_05.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                             if (Bank ==31)  {  playSdWav1.playWav("031_05.WAV");        playSdWav1.setLoopType(looptype_none);  }
                   }
void Pad6 () {
         if (Bank ==1)  {  playSdWav1.playWav("001_06.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
          if (Bank ==2)  {  playSdWav1.playWav("002_06.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
           if (Bank ==3)  {  playSdWav1.playWav("003_06.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
            if (Bank ==4)  {  playSdWav1.playWav("004_06.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
             if (Bank ==5)  {  playSdWav1.playWav("005_06.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
              if (Bank ==6)  {  playSdWav1.playWav("006_06.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
               if (Bank ==7)  {  playSdWav1.playWav("007_06.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                if (Bank ==8)  {  playSdWav1.playWav("008_06.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                 if (Bank ==9)  {  playSdWav1.playWav("009_06.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                  if (Bank ==10)  {  playSdWav1.playWav("010_06.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                   if (Bank ==11)  {  playSdWav1.playWav("011_06.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                    if (Bank ==12)  {  playSdWav1.playWav("012_06.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                     if (Bank ==13)  {  playSdWav1.playWav("013_06.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                      if (Bank ==14)  {  playSdWav1.playWav("014_06.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                       if (Bank ==15)  {  playSdWav1.playWav("015_06.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                        if (Bank ==16)  {  playSdWav1.playWav("016_06.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                         if (Bank ==17)  {  playSdWav1.playWav("017_06.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                          if (Bank ==18)  {  playSdWav1.playWav("018_06.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                           if (Bank ==19)  {  playSdWav1.playWav("019_06.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                            if (Bank ==20)  {  playSdWav1.playWav("020_06.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                            if (Bank ==31)  {  playSdWav1.playWav("031_06.WAV");        playSdWav1.setLoopType(looptype_none);  }
                   }
void Pad7 () {
         if (Bank ==1)  {  playSdWav1.playWav("001_07.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
          if (Bank ==2)  {  playSdWav1.playWav("002_07.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
           if (Bank ==3)  {  playSdWav1.playWav("003_07.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
            if (Bank ==4)  {  playSdWav1.playWav("004_07.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
             if (Bank ==5)  {  playSdWav1.playWav("005_07.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
              if (Bank ==6)  {  playSdWav1.playWav("006_07.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
               if (Bank ==7)  {  playSdWav1.playWav("007_07.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                if (Bank ==8)  {  playSdWav1.playWav("008_07.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                 if (Bank ==9)  {  playSdWav1.playWav("009_07.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                  if (Bank ==10)  {  playSdWav1.playWav("010_07.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                   if (Bank ==11)  {  playSdWav1.playWav("011_07.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                    if (Bank ==12)  {  playSdWav1.playWav("012_07.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                     if (Bank ==13)  {  playSdWav1.playWav("013_07.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                      if (Bank ==14)  {  playSdWav1.playWav("014_07.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                       if (Bank ==15)  {  playSdWav1.playWav("015_07.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                        if (Bank ==16)  {  playSdWav1.playWav("016_07.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                         if (Bank ==17)  {  playSdWav1.playWav("017_07.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                          if (Bank ==18)  {  playSdWav1.playWav("018_07.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                           if (Bank ==19)  {  playSdWav1.playWav("019_07.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                            if (Bank ==20)  {  playSdWav1.playWav("020_07.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                             if (Bank ==31)  {  playSdWav1.playWav("031_07.WAV");        playSdWav1.setLoopType(looptype_none);  }
                   }
void Pad8 () {
         if (Bank ==1)  {  playSdWav1.playWav("001_08.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
          if (Bank ==2)  {  playSdWav1.playWav("002_08.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
           if (Bank ==3)  {  playSdWav1.playWav("003_08.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
            if (Bank ==4)  {  playSdWav1.playWav("004_08.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
             if (Bank ==5)  {  playSdWav1.playWav("005_08.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
              if (Bank ==6)  {  playSdWav1.playWav("006_08.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
               if (Bank ==7)  {  playSdWav1.playWav("007_08.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                if (Bank ==8)  {  playSdWav1.playWav("008_08.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                 if (Bank ==9)  {  playSdWav1.playWav("009_08.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                  if (Bank ==10)  {  playSdWav1.playWav("010_08.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                   if (Bank ==11)  {  playSdWav1.playWav("011_08.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                    if (Bank ==12)  {  playSdWav1.playWav("012_08.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                     if (Bank ==13)  {  playSdWav1.playWav("013_08.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                      if (Bank ==14)  {  playSdWav1.playWav("014_08.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                       if (Bank ==15)  {  playSdWav1.playWav("015_08.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                        if (Bank ==16)  {  playSdWav1.playWav("016_08.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                         if (Bank ==17)  {  playSdWav1.playWav("017_08.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                          if (Bank ==18)  {  playSdWav1.playWav("018_08.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                           if (Bank ==19)  {  playSdWav1.playWav("019_08.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                            if (Bank ==20)  {  playSdWav1.playWav("020_08.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                            if (Bank ==31)  {  playSdWav1.playWav("031_08.WAV");        playSdWav1.setLoopType(looptype_none);  }
                   }
void Pad9 () {
         if (Bank ==1)  {  playSdWav1.playWav("001_09.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
          if (Bank ==2)  {  playSdWav1.playWav("002_09.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
           if (Bank ==3)  {  playSdWav1.playWav("003_09.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
            if (Bank ==4)  {  playSdWav1.playWav("004_09.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
             if (Bank ==5)  {  playSdWav1.playWav("005_09.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
              if (Bank ==6)  {  playSdWav1.playWav("006_09.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
               if (Bank ==7)  {  playSdWav1.playWav("007_09.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                if (Bank ==8)  {  playSdWav1.playWav("008_09.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                 if (Bank ==9)  {  playSdWav1.playWav("009_09.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                  if (Bank ==10)  {  playSdWav1.playWav("010_09.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                   if (Bank ==11)  {  playSdWav1.playWav("011_09.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                    if (Bank ==12)  {  playSdWav1.playWav("012_09.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                     if (Bank ==13)  {  playSdWav1.playWav("013_09.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                      if (Bank ==14)  {  playSdWav1.playWav("014_09.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                       if (Bank ==15)  {  playSdWav1.playWav("015_09.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                        if (Bank ==16)  {  playSdWav1.playWav("016_09.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                         if (Bank ==17)  {  playSdWav1.playWav("017_09.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                          if (Bank ==18)  {  playSdWav1.playWav("018_09.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                           if (Bank ==19)  {  playSdWav1.playWav("019_09.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                            if (Bank ==20)  {  playSdWav1.playWav("020_09.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                             if (Bank ==31)  {  playSdWav1.playWav("031_09.WAV");        playSdWav1.setLoopType(looptype_none);  }
                   }
void Pad10 () {
         if (Bank ==1)  {  playSdWav1.playWav("001_10.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
          if (Bank ==2)  {  playSdWav1.playWav("002_10.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
           if (Bank ==3)  {  playSdWav1.playWav("003_10.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
            if (Bank ==4)  {  playSdWav1.playWav("004_10.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
             if (Bank ==5)  {  playSdWav1.playWav("005_10.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
              if (Bank ==6)  {  playSdWav1.playWav("006_10.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
               if (Bank ==7)  {  playSdWav1.playWav("007_10.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                if (Bank ==8)  {  playSdWav1.playWav("008_10.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                 if (Bank ==9)  {  playSdWav1.playWav("009_10.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                  if (Bank ==10)  {  playSdWav1.playWav("010_10.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                   if (Bank ==11)  {  playSdWav1.playWav("011_10.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                    if (Bank ==12)  {  playSdWav1.playWav("012_10.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                     if (Bank ==13)  {  playSdWav1.playWav("013_10.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                      if (Bank ==14)  {  playSdWav1.playWav("014_10.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                       if (Bank ==15)  {  playSdWav1.playWav("015_10.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                        if (Bank ==16)  {  playSdWav1.playWav("016_10.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                         if (Bank ==17)  {  playSdWav1.playWav("017_10.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                          if (Bank ==18)  {  playSdWav1.playWav("018_10.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                           if (Bank ==19)  {  playSdWav1.playWav("019_10.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                            if (Bank ==20)  {  playSdWav1.playWav("020_10.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                             if (Bank ==31)  {  playSdWav1.playWav("031_10.WAV");        playSdWav1.setLoopType(looptype_none);  }
                   }
void Pad11 () {
         if (Bank ==1)  {  playSdWav1.playWav("001_11.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
          if (Bank ==2)  {  playSdWav1.playWav("002_11.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
           if (Bank ==3)  {  playSdWav1.playWav("003_11.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
            if (Bank ==4)  {  playSdWav1.playWav("004_11.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
             if (Bank ==5)  {  playSdWav1.playWav("005_11.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
              if (Bank ==6)  {  playSdWav1.playWav("006_11.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
               if (Bank ==7)  {  playSdWav1.playWav("007_11.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                if (Bank ==8)  {  playSdWav1.playWav("008_11.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                 if (Bank ==9)  {  playSdWav1.playWav("009_11.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                  if (Bank ==10)  {  playSdWav1.playWav("010_11.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                   if (Bank ==11)  {  playSdWav1.playWav("011_11.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                    if (Bank ==12)  {  playSdWav1.playWav("012_11.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                     if (Bank ==13)  {  playSdWav1.playWav("013_11.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                      if (Bank ==14)  {  playSdWav1.playWav("014_11.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                       if (Bank ==15)  {  playSdWav1.playWav("015_11.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                        if (Bank ==16)  {  playSdWav1.playWav("016_11.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                         if (Bank ==17)  {  playSdWav1.playWav("017_11.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                          if (Bank ==18)  {  playSdWav1.playWav("018_11.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                           if (Bank ==19)  {  playSdWav1.playWav("019_11.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                            if (Bank ==20)  {  playSdWav1.playWav("020_11.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                            if (Bank ==31)  {  playSdWav1.playWav("031_11.WAV");        playSdWav1.setLoopType(looptype_none);  }
                   }
void Pad12 () {
         if (Bank ==1)  {  playSdWav1.playWav("001_12.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
          if (Bank ==2)  {  playSdWav1.playWav("002_12.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
           if (Bank ==3)  {  playSdWav1.playWav("003_12.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
            if (Bank ==4)  {  playSdWav1.playWav("004_12.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
             if (Bank ==5)  {  playSdWav1.playWav("005_12.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
              if (Bank ==6)  {  playSdWav1.playWav("006_12.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
               if (Bank ==7)  {  playSdWav1.playWav("007_12.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                if (Bank ==8)  {  playSdWav1.playWav("008_12.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                 if (Bank ==9)  {  playSdWav1.playWav("009_12.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                  if (Bank ==10)  {  playSdWav1.playWav("010_12.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                   if (Bank ==11)  {  playSdWav1.playWav("011_12.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                    if (Bank ==12)  {  playSdWav1.playWav("012_12.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                     if (Bank ==13)  {  playSdWav1.playWav("013_12.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                      if (Bank ==14)  {  playSdWav1.playWav("014_12.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                       if (Bank ==15)  {  playSdWav1.playWav("015_12.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                        if (Bank ==16)  {  playSdWav1.playWav("016_12.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                         if (Bank ==17)  {  playSdWav1.playWav("017_12.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                          if (Bank ==18)  {  playSdWav1.playWav("018_12.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                           if (Bank ==19)  {  playSdWav1.playWav("019_12.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                            if (Bank ==20)  {  playSdWav1.playWav("020_12.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                            if (Bank ==31)  {  playSdWav1.playWav("031_12.WAV");        playSdWav1.setLoopType(looptype_none);  }
                   }
void Pad13 () {
         if (Bank ==1)  {  playSdWav1.playWav("001_13.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
          if (Bank ==2)  {  playSdWav1.playWav("002_13.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
           if (Bank ==3)  {  playSdWav1.playWav("003_13.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
            if (Bank ==4)  {  playSdWav1.playWav("004_13.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
             if (Bank ==5)  {  playSdWav1.playWav("005_13.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
              if (Bank ==6)  {  playSdWav1.playWav("006_13.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
               if (Bank ==7)  {  playSdWav1.playWav("007_13.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                if (Bank ==8)  {  playSdWav1.playWav("008_13.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                 if (Bank ==9)  {  playSdWav1.playWav("009_13.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                  if (Bank ==10)  {  playSdWav1.playWav("010_13.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                   if (Bank ==11)  {  playSdWav1.playWav("011_13.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                    if (Bank ==12)  {  playSdWav1.playWav("012_13.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                     if (Bank ==13)  {  playSdWav1.playWav("013_13.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                      if (Bank ==14)  {  playSdWav1.playWav("014_13.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                       if (Bank ==15)  {  playSdWav1.playWav("015_13.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                        if (Bank ==16)  {  playSdWav1.playWav("016_13.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                         if (Bank ==17)  {  playSdWav1.playWav("017_13.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                          if (Bank ==18)  {  playSdWav1.playWav("018_13.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                           if (Bank ==19)  {  playSdWav1.playWav("019_13.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                            if (Bank ==20)  {  playSdWav1.playWav("020_13.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                            if (Bank ==31)  {  playSdWav1.playWav("031_13.WAV");        playSdWav1.setLoopType(looptype_none);  }
                   }
void Pad14 () {
         if (Bank ==1)  {  playSdWav1.playWav("001_14.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
          if (Bank ==2)  {  playSdWav1.playWav("002_14.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
           if (Bank ==3)  {  playSdWav1.playWav("003_14.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
            if (Bank ==4)  {  playSdWav1.playWav("004_14.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
             if (Bank ==5)  {  playSdWav1.playWav("005_14.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
              if (Bank ==6)  {  playSdWav1.playWav("006_14.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
               if (Bank ==7)  {  playSdWav1.playWav("007_14.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                if (Bank ==8)  {  playSdWav1.playWav("008_14.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                 if (Bank ==9)  {  playSdWav1.playWav("009_14.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                  if (Bank ==10)  {  playSdWav1.playWav("010_14.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                   if (Bank ==11)  {  playSdWav1.playWav("011_14.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                    if (Bank ==12)  {  playSdWav1.playWav("012_14.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                     if (Bank ==13)  {  playSdWav1.playWav("013_14.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                      if (Bank ==14)  {  playSdWav1.playWav("014_14.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                       if (Bank ==15)  {  playSdWav1.playWav("015_14.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                        if (Bank ==16)  {  playSdWav1.playWav("016_14.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                         if (Bank ==17)  {  playSdWav1.playWav("017_14.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                          if (Bank ==18)  {  playSdWav1.playWav("018_14.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                           if (Bank ==19)  {  playSdWav1.playWav("019_14.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                            if (Bank ==20)  {  playSdWav1.playWav("020_14.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                            if (Bank ==31)  {  playSdWav1.playWav("031_14.WAV");        playSdWav1.setLoopType(looptype_none);  }
                   }
void Pad15 () {
         if (Bank ==1)  {  playSdWav1.playWav("001_15.WAV");        playSdWav1.setLoopType(looptype_none);  }
          if (Bank ==2)  {  playSdWav1.playWav("002_15.WAV");        playSdWav1.setLoopType(looptype_none);  }
           if (Bank ==3)  {  playSdWav1.playWav("003_15.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
            if (Bank ==4)  {  playSdWav1.playWav("004_15.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
             if (Bank ==5)  {  playSdWav1.playWav("005_15.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
              if (Bank ==6)  {  playSdWav1.playWav("006_15.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
               if (Bank ==7)  {  playSdWav1.playWav("007_15.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                if (Bank ==8)  {  playSdWav1.playWav("008_15.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                 if (Bank ==9)  {  playSdWav1.playWav("009_15.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                  if (Bank ==10)  {  playSdWav1.playWav("010_15.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                   if (Bank ==11)  {  playSdWav1.playWav("011_15.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                    if (Bank ==12)  {  playSdWav1.playWav("012_15.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                     if (Bank ==13)  {  playSdWav1.playWav("013_15.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                      if (Bank ==14)  {  playSdWav1.playWav("014_15.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                       if (Bank ==15)  {  playSdWav1.playWav("015_15.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                        if (Bank ==16)  {  playSdWav1.playWav("016_15.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                         if (Bank ==17)  {  playSdWav1.playWav("017_15.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                          if (Bank ==18)  {  playSdWav1.playWav("018_15.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                           if (Bank ==19)  {  playSdWav1.playWav("019_15.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                            if (Bank ==20)  {  playSdWav1.playWav("020_15.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                             if (Bank ==31)  {  playSdWav1.playWav("031_15.WAV");        playSdWav1.setLoopType(looptype_none);  }
                   }
void Pad16 () {
         if (Bank ==1)  {  playSdWav1.playWav("001_16.WAV");        playSdWav1.setLoopType(looptype_none);  }
          if (Bank ==2)  {  playSdWav1.playWav("002_16.WAV");        playSdWav1.setLoopType(looptype_none);  }
           if (Bank ==3)  {  playSdWav1.playWav("003_16.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
            if (Bank ==4)  {  playSdWav1.playWav("004_16.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
             if (Bank ==5)  {  playSdWav1.playWav("005_16.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
              if (Bank ==6)  {  playSdWav1.playWav("006_16.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
               if (Bank ==7)  {  playSdWav1.playWav("007_16.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                if (Bank ==8)  {  playSdWav1.playWav("008_16.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                 if (Bank ==9)  {  playSdWav1.playWav("009_16.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                  if (Bank ==10)  {  playSdWav1.playWav("010_16.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                   if (Bank ==11)  {  playSdWav1.playWav("011_16.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                    if (Bank ==12)  {  playSdWav1.playWav("012_16.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                     if (Bank ==13)  {  playSdWav1.playWav("013_16.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                      if (Bank ==14)  {  playSdWav1.playWav("014_16.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                       if (Bank ==15)  {  playSdWav1.playWav("015_16.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                        if (Bank ==16)  {  playSdWav1.playWav("016_16.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                         if (Bank ==17)  {  playSdWav1.playWav("017_16.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                          if (Bank ==18)  {  playSdWav1.playWav("018_16.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                           if (Bank ==19)  {  playSdWav1.playWav("019_16.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                            if (Bank ==20)  {  playSdWav1.playWav("020_16.WAV");        playSdWav1.setLoopType(looptype_repeat);  }
                             if (Bank ==31)  {  playSdWav1.playWav("031_16.WAV");        playSdWav1.setLoopType(looptype_none);  }
                   }
i placed only 32 wav file on SD card to check. (003_01.WAV to 003_16.WAV) , (007_01.WAV to 007_16.WAV) .each 1-2 seconds long drum patterns.
sometimes ,when device is power on . i play any wav file in loop mode . it is start very well. but after 5-7 minutes from power on , it start giving a small breaking cut in looping .what disturb seamless looping. i tried changed others file, but player does it for all files. i have to power off an restart it to get working fine looping.
Note: it is happening some times (not Always).
please see my above code . where is fault to my problem???
is there any overloading functions written in sketch to make tired teensy.??
or Any issue in library files ???
is it normal or can be fix ???
,,,,,,,,,,,,,,,,,,,,thank you.
 
@charnjit: For changing between & playing multiple WAV files, [ICODEAudioMemory(24);][/ICODE] seems low. Have you tried bumping up the amount of audio memory allocated ?? Have you tried adding a periodic call to AudioMemoryUsage(); & AudioMemoryUsageMax(); from your loop() function to see how much audio memory is reported as being used ?? I would investigate if you are possibly running out of audio memory.

In my TeensyMIDIPolySynth (TMPS) project, I was getting very strange behavior, which made it appear like it was missing notes. My TMPS is a 12-poly 3-voice synthesizer. Occasionally, with all three voices enabled, when I played a note on the keyboard, one or more of the voices would fail to produce sound. As it turned out, I had to bump the amount of audio memory up to a level which was even higher than was was reported as being used (MAX). Doing so alleviated the problem completely.

Hope that helps . . .

Mark J Culross
KD5RXT
 
Thank you ,,,
Mark J Culross
KD5RXT
now i tried read
Code:
AudioMemoryUsage();
&
Code:
AudioMemoryUsageMax();
in
Code:
void loop() {     }
when i switched on it . i got--- Usage =0 & usageMax =0.
when i play first loop wav file . i got--- Usage =2 & usageMax =2. looping was fine.
i changed loop wav files about 50 times . i got--- Usage =2 & usageMax =2. looping was fine.
i stopped it . i got--- Usage =0 & usageMax =2.
i left stopped for 3-4 minutes . i got---Usage =4 & usageMax =4.
i re-play loop wav file i got---Usage =6 & usageMax =6.
i stopped it . i got---Usage =4 & usageMax =6. looping was fine.
please check my next post also. i will write (Usage & usageMax ) after getting small breaking cut in looping.
thank you,,,,,,
 
There's a new version of the TeensyVariablePlayback library just released - if AudioMemory(128) doesn't fix things maybe this will?
 
Thank you all my seniors,,,
i want to tell more about my problem what today i faced.
as i had placed these below Audiomemory functions in [void loop() { } ]to monitor Usage on oled Display.
Code:
    display.clearDisplay();
    display.setTextSize(1);               
    display.setTextColor(SSD1306_WHITE); 
    display.setCursor(0, 21);           
    display.setTextSize(1);
   display.print("M_Usage: ");
    display.print(AudioMemoryUsage());
    display.print("   M_UsageMax: ");
    display.print(AudioMemoryUsageMax());
    display.display();
Today I test playing loops files for long time . Till 30 minutes , looping was proper . AudioMemoryUsage was 6 & AudioMemoryUsageMax was 6. Monitoring of [AudioMemoryUsage] & [AudioMemoryUsageMax] on oled display was clearly visible .
but , after playing 30 mins, suddenly looping of wav file start giving a small breaking cut. then i noticed that [AudioMemoryUsage] & [AudioMemoryUsageMax] was 6 seen on oled display. so i seemed issue not related AudioMemory.
second thing i saw -- Monitoring of [AudioMemoryUsage] & [AudioMemoryUsageMax] & [All text on oled display] was vibrating a bit , when breaking cut was occurring in looping.
After 8-10repeats of loop with breaking cut , it automatically changed to fine looping with on breaking cut again. And Monitoring of [AudioMemoryUsage] & [AudioMemoryUsageMax] & [All text on oled display] stopped vibrating on display and clearly visible on display like beginning. i did not understand what teensy is doing this sometimes .
please suggest me. what is left to investigate to fix this???
thank you
 
what is left to investigate to fix this???
I can think of a few things:
  • create a simple sketch without the keypad, encoder and OLED display code;
    • test it with the sample that you played for 30 minutes, for long enough to be sure it reproduces the problem
    • post the sketch and sample so others can try it (you'll have to ZIP them together, the forum doesn't accept WAV attachments)
  • tell us which version of TeensyVariablePlayback you're using - exact repository, branch and version number (you can find the last in libraries/teensy-variable-playback/library.json, or in the report at the end of compilation, if you've set it to verbose mode in Preferences)
  • post the sample, together with a recording of the output when the "breaking cut" is happening; ideally you'd do that by enabling the Teensy's USB audio and then recording it directly on your PC, but that itself might make things worse (or better!). A good quality phone recording should be OK, as long as it's loud enough and has no background noise
  • of course, if the simple example sketch doesn't reproduce the problem, it's likely to be due to one of the things you removed - put each one back in turn until the problem recurs, then you have some idea where the problem is.
  • given your observation of a "vibrating" display, I'd be inclined to suspect that as the culprit: check if display calls are using most or all of the CPU time
 
thank you H4n0nnym0u5e for response to this topic.
I am using TeensyVariablePlayback library from library manager
Teensy library.jpg

it by nic Newdigate version 1.0.16 link
ok i will test it with simple sketch. before it i would like ask something ....
in simple sketch ,what should be input method to play wav file??
i have two input method to play wav file
[1] input wia serial monitor ,
[2]write play funtion in void setup or use of "millis()" in void loop () .
  • if serial monitor, i will have to record output on phone voice recorder because when my teensy is plugged in usb,there is no sound on my pc for all audio program and don't know about [ enable teensy usb audio] . and here i can also change to others wav files to player .
  • is it write play function in void setup() or use of millis() in void loop() ????
  • if input method is write play function in void setup() or use of millis() in void loop(),,, then i can record it on pc using Audacity software by line out from teensy to pc .here only one wav file will be played for long time. may be breaking not occur ,
  • do you need long recording from power on to occur problem?? or liten that part ,inwhich looping is being disturbed.


these are the last lines after compile
Code:
Memory Usage on Teensy 4.1:
  FLASH: code:159508, data:21024, headers:8904   free for files:7937028
   RAM1: variables:25088, code:155960, padding:7880   free for local variables:335360
   RAM2: variables:8448  free for malloc/new:515840
"C:\\Program Files\\Arduino\\hardware\\teensy/../tools/stdout_redirect" "C:\\Users\\acer\\AppData\\Local\\Temp\\arduino_build_169410/mixing_kpd_TeensyVariablePlayback.ino.lst" "C:\\Program Files\\Arduino\\hardware\\teensy/../tools/arm/bin/arm-none-eabi-objdump" -d -S -C "C:\\Users\\acer\\AppData\\Local\\Temp\\arduino_build_169410/mixing_kpd_TeensyVariablePlayback.ino.elf"
Multiple libraries were found for "TeensyVariablePlayback.h"
 Used: C:\Users\acer\Documents\Arduino\libraries\TeensyVariablePlayback
 Not used: C:\Users\acer\Documents\Arduino\libraries\teensy-variable-playback-master
Multiple libraries were found for "Encoder.h"
 Used: C:\Program Files\Arduino\hardware\teensy\avr\libraries\Encoder
 Not used: C:\Users\acer\Documents\Arduino\libraries\Encoder-1.4.2
Multiple libraries were found for "Keypad.h"
 Used: C:\Program Files\Arduino\hardware\teensy\avr\libraries\Keypad
 Not used: C:\Users\acer\Documents\Arduino\libraries\Keypad-3.1.1
Multiple libraries were found for "Audio.h"
 Used: C:\Program Files\Arduino\hardware\teensy\avr\libraries\Audio
 Not used: C:\Users\acer\Documents\Arduino\libraries\Audio-feature-buffered-SD
Multiple libraries were found for "SD.h"
 Used: C:\Program Files\Arduino\hardware\teensy\avr\libraries\SD
 Not used: C:\Program Files\Arduino\libraries\SD
Using library Keypad at version 3.1.1 in folder: C:\Program Files\Arduino\hardware\teensy\avr\libraries\Keypad
Using library Audio at version 1.3 in folder: C:\Program Files\Arduino\hardware\teensy\avr\libraries\Audio
Using library SPI at version 1.0 in folder: C:\Program Files\Arduino\hardware\teensy\avr\libraries\SPI
Using library SD at version 2.0.0 in folder: C:\Program Files\Arduino\hardware\teensy\avr\libraries\SD
Using library SdFat at version 2.1.2 in folder: C:\Program Files\Arduino\hardware\teensy\avr\libraries\SdFat
Using library SerialFlash at version 0.5 in folder: C:\Program Files\Arduino\hardware\teensy\avr\libraries\SerialFlash
Using library TeensyVariablePlayback at version 1.0.16 in folder: C:\Users\acer\Documents\Arduino\libraries\TeensyVariablePlayback
Using library LittleFS at version 1.0.0 in folder: C:\Program Files\Arduino\hardware\teensy\avr\libraries\LittleFS
Using library Wire at version 1.0 in folder: C:\Program Files\Arduino\hardware\teensy\avr\libraries\Wire
Using library Adafruit_GFX_Library at version 1.7.5 in folder: C:\Users\acer\Documents\Arduino\libraries\Adafruit_GFX_Library
Using library Adafruit_SSD1306 at version 2.5.7 in folder: C:\Users\acer\Documents\Arduino\libraries\Adafruit_SSD1306
Using library Encoder at version 1.4.4 in folder: C:\Program Files\Arduino\hardware\teensy\avr\libraries\Encoder

i will post wav files in . zip with output recording after simple sketch.

text on display were vibrating only when breaking cut in looping occur. not when wav file is being played please understand like this image.
same wav file is being played in three style. (single shot, without brebaking cut & with breaking cut.)
loop cut jp.jpg

note: -- today i played a wav file in looping for 70 minutes , breaking cut not occured. may be it is some time (not always).
sometimes it occur in 18 minutes from power on .i am really puzzle ,, there is not any fix time of bad behavior of teensy .
but for , i will try to record output when i caught breaking cut.
 
Hi there. OK, some clues there.
  • Arduino Library Manager isn't showing TeensyVariablePlayback version 1.1.0 as available - I've asked the repo owner to release it, which I think is what's needed. It is possible to download it manually, but he's very responsive so let's leave that for a while
  • from your screen grabs it looks as if the whole file is being played OK, but not re-starting immediately the sample ends
    • is that correct?
    • are you using playSdWav1.setLoopType(looptype_repeat); or re-starting from your code?
  • for triggering playback, whatever's closest to what your code does is best: I'm guessing that's "pretending" a pad has been hit, from inside loop(). I assume you're not sitting there for 70 minutes tapping a pad...
  • I guess you'll have to record a long file on your PC to capture the sound when it has the breaking cut ... but please trim that before you zip and attach it! Just a few seconds of OK playback and incorrect playback will be fine - maybe about 5 repeats of the sample in each state?
 
Hello. I'm using "TeensyVariablePlayback.h" version 1.1.0 and "flashloader.h" and playing 8 samples simultaneously in loop mode. I'm using 16MB PSRAM on the Teensy 4.1. It runs for minutes without any problems.

 
That’s good news … though I’m not sure I’d be able to hear if there were problems in that demo! Thanks for giving the new release a workout :)
 
i was trying to record wav playing with breaking cut from 5days. but i could not record missings. i have already told here in post#1 that i am getting breaking cut sometime neither always nor after a fix time from power on. before making a simple sketch , i was testing with code written in post#1.I also need this code in my project. Till now there is no occuring breaking cut in looping in 5 days.
it is true i am playing it daily minimum for 10 min maximum for 50 min with my music keyboard.
today i played it 1hour40min in audacity recording .
long rec.jpg

you can see it was being record with fine looping .if i found breaking cut in future, i will record and post it . untill it is good , i request you to advice me more changes to continue my project for best performance something like :
-use of latest version of library 1.1.0
- use
Code:
AudioMemory(128);
- & more things??
..................waiting for your suggestions..
 
Without simple example code to reproduce your issue, it’s fairly pointless trying to give further advice. I’m not 100% sure I understand your post, but it sounds as if you can no longer reproduce the issue yourself…

Are you now using v1.1.0 of TeensyVariablePlayback? If so, that may well account for the issue’s disappearance.
 
Back
Top