title: no matching function for call to '' (Arduino)
body: <p>I'm using the <a href="https://learn.adafruit.com/adafruit-music-maker-shield-vs1053-mp3-wav-wave-ogg-vorbis-player/installing-software" rel="nofollow noreferrer">Arduino VS1053 Music Player Library</a>. I'm not too familiar with Arduino code, and I'm working on a project for a friend with a deadline near. I'm just trying to cycle through a playlist of short sound files whenever a piezo sensor (Roland Drumpad) has sensed a connection (piezoV) over .25. Here is that section of code.</p>
  
  <pre><code>while (tracknum &lt;= 47)
      if (piezoV &gt;= 0.10) {
        Serial.println(piezoV);
        // Serial.println(F("Playing track " + tracknum +""));
        // String file = String(trackid) + String(tracknum) + String(ext);
        String file = trackid + tracknum + ext;
        Serial.println(file);
        musicPlayer.playFullFile(file);
        int tracknum = tracknum + 1;
      }
  </code></pre>
  
  <p><strong>Reason for the while loop:</strong> There are 47 tracks, and I want the pad to stop after all 47 have been cycled through.</p>
  
  <p>Unfortunately, when I try to run that code, I get the following error.</p>
  
  <p><code>no matching function for call to 'Adafruit_VS1053_FilePlayer::playFullFile(String)'</code></p>
  
  <p>Here is my entire code, if that helps in answering my issue.</p>
  
  <pre><code>#include &lt;SPI.h&gt;
  #include &lt;Adafruit_VS1053.h&gt;
  #include &lt;SD.h&gt;
  #include "string.h"
  using namespace std;
  
  // define the pins used
  //#define CLK 13       // SPI Clock, shared with SD card
  //#define MISO 12      // Input data, from VS1053/SD card
  //#define MOSI 11      // Output data, to VS1053/SD card
  // Connect CLK, MISO and MOSI to hardware SPI pins.
  // See http://arduino.cc/en/Reference/SPI "Connections"
  
  // These are the pins used for the breakout example
  #define BREAKOUT_RESET  9      // VS1053 reset pin (output)
  #define BREAKOUT_CS     10     // VS1053 chip select pin (output)
  #define BREAKOUT_DCS    8      // VS1053 Data/command select pin (output)
  // These are the pins used for the music maker shield
  #define SHIELD_RESET  -1      // VS1053 reset pin (unused!)
  #define SHIELD_CS     7      // VS1053 chip select pin (output)
  #define SHIELD_DCS    6      // VS1053 Data/command select pin (output)
  
  // These are common pins between breakout and shield
  #define CARDCS 4     // Card chip select pin
  // DREQ should be an Int pin, see http://arduino.cc/en/Reference/attachInterrupt
  #define DREQ 3       // VS1053 Data request, ideally an Interrupt pin
  
  
  Adafruit_VS1053_FilePlayer musicPlayer =
    // create breakout-example object!
    Adafruit_VS1053_FilePlayer(SHIELD_RESET, SHIELD_CS, SHIELD_DCS, DREQ, CARDCS);
  // create shield-example object!
  //Adafruit_VS1053_FilePlayer(SHIELD_RESET, SHIELD_CS, SHIELD_DCS, DREQ, CARDCS);
  
  void setup() {
    const int PIEZO_PIN = A0;
    int piezoADC = analogRead(PIEZO_PIN);
    float piezoV = piezoADC / 1023.0 * 5.0;
    String trackid = "/pad06";
    int tracknum = 001;
    String ext = ".mp3";
  
    Serial.begin(9600);
    Serial.println("Adafruit VS1053 Simple Test");
  
    if (! musicPlayer.begin()) { // initialise the music player
      Serial.println(F("Couldn't find VS1053, do you have the right pins defined?"));
      while (1);
    }
    Serial.println(F("VS1053 found"));
  
    if (!SD.begin(CARDCS)) {
      Serial.println(F("SD failed, or not present"));
      while (1);  // don't do anything more
    }
  
    // list files
    // printDirectory(SD.open("/"), 0);
  
    // Set volume for left, right channels. lower numbers == louder volume!
    musicPlayer.setVolume(20, 20);
  
    // Timer interrupts are not suggested, better to use DREQ interrupt!
    //musicPlayer.useInterrupt(VS1053_FILEPLAYER_TIMER0_INT); // timer int
  
    // If DREQ is on an interrupt pin (on uno, #2 or #3) we can do background
    // audio playing
    musicPlayer.useInterrupt(VS1053_FILEPLAYER_PIN_INT);  // DREQ int
  
    while (tracknum &lt;= 47)
      if (piezoV &gt;= 0.10) {
        Serial.println(piezoV);
        // Serial.println(F("Playing track " + tracknum +""));
        // String file = String(trackid) + String(tracknum) + String(ext);
        String file = trackid + String(tracknum) + ext;
        Serial.println(file);
        musicPlayer.playFullFile(file);
        int tracknum = tracknum + 1;
      }
  
    // Play another file in the background, REQUIRES interrupts!
    // Serial.println(F("Playing track 002"));
    // musicPlayer.startPlayingFile("/track002.mp3");
  }
  
  void loop() {
    // File is playing in the background
    if (musicPlayer.stopped()) {
      Serial.println("Done playing music");
      while (1) {
        delay(10);  // we're done! do nothing...
      }
    }
    if (Serial.available()) {
      char c = Serial.read();
  
      // if we get an 's' on the serial console, stop!
      // if (c == 's') {
      //   musicPlayer.stopPlaying();
      // }
  
      // if we get an 'p' on the serial console, pause/unpause!
      //   if (c == 'p') {
      //     if (! musicPlayer.paused()) {
      //       Serial.println("Paused");
      //       musicPlayer.pausePlaying(true);
      //     } else {
      //       Serial.println("Resumed");
      //       musicPlayer.pausePlaying(false);
      //     }
      //   }
      // }
  
      delay(100);
    }
  }
  </code></pre>
  
  <p>Thanks in advance.</p>