Arduino Project 5: Digital audio player


So far in this series we’ve had a diverse look at how Arduino can interact with a range of real-world devices from servo motors to ultrasonic range finders TVs to humidity sensors. Now we’ll see if we could get the Arduino to make a few sounds. We’ll actually do a bit better than that – we’ll look at the importance of pulse width modulation (PWM) to microcontrollers by building our own digital audio player called Auduino.


The two versions of our Auduino audio player. The Ethernet shield version (bottom) gives better results with more flash cards.

What we’re building

A few months ago I stumbled across a simple single-button digital audio player based around a Raspberry Pi developed by a guy for his 90-year-old grandmother who needed something simple to use. All it had was a single button and an LED and it was programmed to play digital audiobooks. The button pressed quickly would pause and play while holding it down for more than four seconds would play the previous track.


A digital audiobook player using a Raspberry Pi.

I couldn’t help wondering if we could do something similar and simpler with an Arduino. Well you can. We’ve combined an Arduino Uno microcontroller a $1.50 SD card reader module from eBay computer speakers and some other components to create a simple single-button digital audio player. There’ll be a small amount of soldering involved.

Admittedly our player’s WAV file support is modest (mono 8-bit up to 19kHz) but the quality is still more than good enough to handle music and digital audiobooks. However don’t miss the bigger picture – an audio player we can digitally control opens up a world of possibilities.


Making the WAV files

If you’re wondering where you’ll find 19kHz/8-bit/mono WAV files we’ve got that covered. I’ve created an easy-to-use audio converter that integrates into Windows Explorer and converts any audio file into the required WAV format. You can even convert multiple files at the same time and it automatically turns those files into the 8.3 filenames our player requires. All you do then is copy the WAV files to the root of a FAT32-formatted Class 4 SDHC card (we’ve tested cards up to 8GB). Load the card into the player’s SD card reader module press the button and the first track will begin playing.


How it works

The ability to turn digital data – 1s and 0s – into a proportional analogue voltage is a fundamental tenement of digital audio and it’s where the digital-to-analogue converter (DAC) gets its most celebrated use. Audio DACs appear in every smartphone tablet MP3 player PC and laptop. They’re everywhere. DACs are also used to control motors and sensors LEDs and more – anywhere where you need to turn a digital number into a real-world analogue voltage. One of the simplest ways to do it is what makes microcontrollers so popular – it’s called Pulse Width Modulation (PWM).

The problem for all microcontrollers is that their standard digital outputs only have two positions: high and low. The output will either be at the supply rail (Arduino’s 5V) or ground (0V); there’s no in between. This is where PWM comes in. It starts with a clock signal output that runs at a much higher rate than we need; in our case beyond the 20kHz audio spectrum. That clock signal is a squarewave meaning it spends half the time at digital-1 and half at digital-0 in each clock cycle. In geek speak we say it has a duty cycle of 50%.

What PWM allows us to do is modulate that duty cycle so that when its pulse waveform output is fed and filtered through a particular device the waveform is averaged and becomes an analogue voltage that’s proportional to the duty cycle. So if the waveform signal varies between 0 and 5V and has a 10% duty cycle it’ll have an average analogue voltage of 0.5V. At 50% duty cycle it’ll be 2.5V; at 90% it’ll be 4.5V.

This is how the pulsating LED on your iPhone or iPad works. The LED will be fed with a PWM waveform that varies between 0 and 100% duty cycle at a high enough frequency so you can’t see the LED flashing.

Your typical music file is the result of the reverse process: turning a complex analogue voltage into a digital representation. Audio CDs capture two channels (stereo) at a 44.1kHz sample rate with 16-bit resolution. What that means is there are 216 or 65536 distinct voltage levels that can be captured every 22.6 milliseconds or so.

It’s called Pulse-Coded Modulation (PCM) and it’s the basic format used by Windows’ WAV file format. Look at a WAV file and you’ll see a long series of 16-bit numbers that represents the audio (one per sample and one per channel). Turning those digital samples back into an analogue voltage is what every audio player does.

One way of doing this happens to be PWM. Remember how we said before that a PWM signal is modulated to create a variable duty cycle waveform? Guess what we use to modulate the clock signal with? The digital audio samples from our WAV file. So what we end up with is a PWM waveform output whose duty cycle is proportional to the PCM audio data in the WAV file. We feed the output into an audio amplifier and hey presto! We hear that digital audio WAV file coming through the speakers.


PWM can create an analogue voltage that’s proportional to its duty cycle.


Arduino limitations

While we love Arduino this is where we run into its limitations – it only has an 8-bit bus and combined with its limited 16MHz clock speed and our audio code library we only have enough speed to handle WAV files with a 19kHz sample rate and 8-bit depth. That said I’ve worked on our simple audio converter to tweak the encoding so it produces good-sounding files with a better than AM radio frequency bandwidth which is good enough for music and certainly more than enough for digital audiobooks.


Convert any audio file into ‘Auduino’ format

01 Download Auduino

Download the ‘’ file from and unzip it to the ‘C:Auduino’ folder on your C: drive. Launch the ‘InstallWavConverter.reg’ file. This installs a Shell registry key that adds a new menu entry to Windows Explorer’s context menu. (Open the REG file in Notepad and you can see how it works.) Click the ‘Yes’ button to confirm and then ‘OK’ when it’s completed (‘RemoveWavConverter.reg’ deletes the registry key if you wish).


02 Convert an audio file

Use Windows Explorer to find an audio file you wish to convert right-click the file and select ‘Convert to APC/Auduino format’. You’ll see a Command Prompt screen appear briefly and when it disappears you’ll have a new WAV file in the original file’s location. You can even select multiple files to encode all at once.

Looking for free downloadable digital audiobooks? Try LibriVox and Books Should Be Free. These are usually in MP3 or OGG format with books separated into chapter files. Our encoder can easily turn these into the necessary WAV format.


03 Transfer & play

Copy this file(s) to the root folder of a Class 4 FAT32-formatted SD card up to 8GB and transfer the card to the Auduino player. Files can be up to 2GB. Power up the player and press the button.


Building the Auduino

We’re building our prototype this month on the same breadboard we used for our LED dice and weather station projects as it makes it easier to troubleshoot and program the Arduino. You can see how it goes together from the circuit diagram the overlay diagram and the photos. The SD card module has two rows of pins and each pair is wired together so it can plug straight into the breadboard.


The circuit diagram for our digital audio player.


Voltage Level Translation

If there’s a tricky part of the circuit it’ll be the diodes connecting the Arduino to the SD card module. It may look like the diodes are facing the wrong way but they’re not. We’ve got a small problem in this project that the diodes are helping to fix for us. Basically the Arduino runs on a 5V logic level (that means the digital outputs swing from 0V to 5V) but SD cards only run on 3.3V. If we feed 5V into the data lines of the SD card module we risk blowing up the card.

The diodes therefore act as a voltage level translator. The SD card module has pull-up resistors on three of the four data lines which lightly connect these lines to the supply rail. When the Arduino digital output swings low the diodes are forward-biased by the current through the pull-up resistor and the SD module control line drops low to 0.6V. When the Arduino output rises up to 5V the diode becomes reverse-biased and no current flows from the Arduino to the SD module. The pull-up resistor lifts the data line to the 3.3V supply rail so we get our digital-1 at the required 3.3V instead of the Arduino’s 5V so everyone’s happy. (The SD module has a 3.3V voltage regulator on board that drives the pull-up resistors.)

Electrical engineers would argue that this is a dodgy fix and we should be using a dedicated level translator chip like a 74HC4050 and they’re right. The diode option does work although as we’ve discovered not reliably. We tested it with half a dozen different SD cards and found two of the six worked well one sort of worked and three didn’t work at all. Some SD cards expect to see digital signals that snap between 0V and 5V in no more than five nanoseconds while others are more tolerant and they’re the ones that work.


The layout diagram of our digital audio player using an 840-point breadboard.


Choosing SD cards

The SD card module talks to the Arduino over the SPI (Serial Peripheral Interconnect) bus but SPI is really just a 1-bit economy mode interface that’s easy to implement whereas SD cards normally communicate over a 4-bit wide bus. Combine our low-level translation circuitry with the fact that not all SD cards do SPI well and that unfortunately limits the cards we can use. We recommend Class 2 or Class 4 SD cards that are preferably 8GB or smaller. You can try larger Class 4 cards (we’ve used a 32GB card successfully) although you’ll need to make some changes to our Arduino code: change the cardType variable from oldCard to newCard . Basically the newer or larger the card the slower we need to run the SPI bus so doing this drops it back from 8MHz (half-speed) to 4MHz (quarter-speed). Any slower than 4MHz however and the data rate becomes too slow and you can hear the continual jitter in the sound output. We purchased new 4GB and 8GB Class 4 Verbatim cards. The 4GB card didn’t work but the 8GB card worked perfectly at the 8MHz/half-speed rate.

Our modified SD library still works with all existing Arduino programs (sketches) but adds a new instruction that allows us to adjust the Arduino’s SPI speed and allow more cards to work.


Alternative option

We’ve also come up with a more reliable option which involves ditching the $1.50 SD card reader and replacing it with a $10 Ethernet Shield that includes a microSD card slot. You remove the components connected to pins 10 11 12 13 and change the sketch by setting the chipSelect variable to 4 (this is marked in the sketch code). You also need to set the cardType variable to oldCard . The Ethernet Shield has the proper level translation built in to reliably work with any microSD card. The Shield sits on top of the Arduino and you use the same I/O pins for the switch and audio out.


Solder the stereo socket

Our Auduino player doesn’t have a built-in amplifier yet so we need external speakers and a way of getting our audio signal to them. That’s what the 3.5mm stereo socket is for. We need to solder it up so to do this first grab a couple of Dupont wires. Cut them in half strip the insulation off tin them and solder them to the three tags on the socket. These give us connections to a 3.5mm plug’s tip ring and sleeve (TRS) connections. Given that we’re only using mono audio we feed the audio output to both channels so when you plug in the 3.5mm cable to your stereo amplifier you’ll hear sound coming out of both speakers.


Software libraries

We’ll need the ‘tmrpcm’ and a modified ‘SD’ card library. You’ll find these in the zip file you can download from (look under the Project 5 heading). Copy the ‘SD’ and ‘tmrpcm’ folders to the ‘libraries’ folder in your Arduino IDE folder (yes overwrite the original ‘SD’ library) and restart the IDE if you’ve had it running already.

The ‘apc_05_audioplayer.ino’ file is our sketch which ties everything together. It boots up the Arduino turns on the SD module checks the card and waits for you to press the button. Press it for less than a second and it’ll load and play the first file. If you press the button again for less than a second it’ll pause playback; pressing it again resumes playback. Press it for more than a second and it’ll automatically skip forward to the next audio track and begin playback. There are no volume controls – you adjust this at your amplified speakers.

Unfortunately the ‘tmrpcm’ library creates a pop whenever a track stops or starts. A low-pass filter will help a little but it’s caused by the PWM signal turning on and off.


Parts List

The specific parts for this project should cost you less than $40 if you choose the SD card module option. The hardest thing to find will be the SD card module itself – we bought ours from eBay for just US$1.48 (including shipping) from Hong Kong. The rest of the parts can be picked up from your local Jaycar Electronics or most online electronics stores.

  A super-cheap SDHC card module for under $1.50 on eBay.


Give it a crack

A digital audio player we can control offers plenty of ideas. Just a few I can think of off the top of my head include a talking robot a voice-warning security system a talking weather station and I’m sure you can come up with a few of your own. By building this project you’ll learn more about digital audio and even be able to incorporate some of the techniques into your own Arduino projects.


Arduino parts list

Part Cost per unit Source
Arduino Uno R3 US$14 eBay
LC Studio SD card module US$1.48 eBay
Push-button momentary switch $1.25 Jaycar
1N4148 signal diode $0.40 Jaycar
5mm red LED $0.25 Jaycar
100uF/16VW electrolytic capacitor $0.36 Jaycar
0.1uF MKT capacitor $0.40 Jaycar
0.0015uF MKT capacitor $0.35 Jaycar
1kΩ/0.25W metal-film resistor $0.46 Jaycar
4.7kΩ/0.25W metal-film resistor $0.46 Jaycar
10kΩ/0.25W metal-film resistor $0.46 Jaycar
47kΩ/0.25W metal-film resistor $0.46 Jaycar
4GB Class 4 Verbatim SDHC card $6.75 Various retailers (including Officeworks)
3.5mm stereo socket $1.35 Jaycar
3.5mm male-to-male cable $4.95 Jaycar
Dupont wires US$3.66 eBay
Ethernet Shield (alternative) US$9.62 eBay


  • Tom Steyer

    hi, thanks for this compete article, your solution is a good option to listen music, i have a question about the voltage for SDHC card module, you use 5v, why you don’t use directly 3,3v? i have the same module and i use 3,3v to make it works. thanks

    • Hi Tom,
      The card module has a 3.3V voltage regulator on board, so the card runs at 3.3V. However, the Arduino, running out 5V, has its outputs hitting that 5V mark. Feeding 5V outputs into a 3.3V-expecting input on the SDHC card normally doesn’t do the card any good.

      • dunedon

        I think his issue was that the Uno HAS a 3.3V output (it’s right above the 5V output) … so why are you not just using that directly?

        • Dunedon, you’re missing the point – it’s not just the voltage level of the card module. The card module has to interface with the Arduino board. The board runs at 5V; the card at 3.3V. Feeding the module with 3.3V from the Arduino doesn’t change the fact that the Arduino I/O logic levels swing between 0V and 5V while the card is only 0V to 3.3V. This doesn’t change simply because you supply 3.3V from the Arduino.

  • javier

    does the sketch need to be modified?

  • Modified for what?

    • Karen

      As the code stands, I get this error message:
      exit status 1
      ‘INPUT_PULLUP’ was not declared in this scope

      It doesn’t like the line: pinMode(inSwitch,INPUT_PULLUP);

      But I also didn’t go through Projects 2-4, so I guess I’ll look through those first in case this was declared in a previous update to another library?

  • muhammad zulqarnain

    hi, i’m sorry for asking, how do we generated the pwm like the picture
    you show using the coding on arduino. the changealbe duty cycle. sorry
    if i’m asking to much. because if the normal one i think i can do it. tq

  • Sidney

    Is there a circuit diagram for the network version? I am finding it hard to follow from the picture

    • Use the circuit diagram shown, but ignore everything in the box ‘not required if using the ethernet shield instead’.

      • Sidney

        Sorry, this is my first project so I may be a little slow on the uptake. I meant the other kind of drawing, where I can see how its plugged in on the breadboard.

        Also, is there a way to make a box for this project? Maybe something custom printed to the right sizes or is there a site with off the shelf ones (as in your example?)

        Thank you,


  • willi

    I hve installed InstallWavConverter.reg but it dosn’t work.
    The Command Prompt screen appears and disappears but nothing else happend.
    Me OS ist Windows 7 prof. 64 bit.

    • Have you followed the instructions eg. copied the folder to your C: drive? You need to copy the inner folder to the root of your C: drive. What’s happening sounds like the ffmpeg converter cannot be found, likely because of this.

      • willi

        That was the reason. now it works.
        Thank you!

  • willi

    Sorry for another question:
    The Soft- and Hardware works now, but the sound is chopped.
    Do you know a reason?

    • willi

      The Sound is overlaid with rattle, interrupted.
      plaese excuse my bad english.

      • Been a while since I wrote the software but check to see if there is a option to encode with a lower sample rate or bit rate. If you’ve built the basic circuit, you can only use 8-bit audio.

        • willi

          Iam using the hardware above: Arduino Uno and an Ethernetshield with an 8GB-SynDisc SD-Card

          • willi

            Plese give me your mail-adress and I send you a short WMA-File with the sound.

  • Not sure what you mean – can you be more specific?

    • willi

      Another fact: the D13-LED is flickering, is this correct?

      • IIRC, it flickers when retrieving data from the card.

  • Saúl Valencia

    i’m a bit confused, i used the first method with the diodes and the 2$ shield, then i changed the diodes for a buffer a resistors, but either way it didn’t work, nothing happened, evend e red led didn’t turn n at all, i’ve checked more than twice and i don’t see my error, is it possible that the sd shield is defective?, i just bought it today and i haven’t tested it before, do you know how?, by the way, i was using a 74hc244 as buffer instead of the 4050, because it’s all i had, but the buffer is tested.

    • Saúl Valencia

      hi again, well i went to my local store and found a 74hc4050, it worked just fine instead of the diodes, but there is a problem, the volume level is very very low, i had to use a pair of cheap headphones and still very low, when i used a speaker, it barely sound, but in both cases it was without noise.
      Later, i added a amp circuit based on the lm386, i have tested it many time and works as it shoul, but when i connect it to you proyect there is noise when no playing any file, really awfull, i can’t find the problem, could you help?, bye

      • Well, the reason the output is low is because the output isn’t designed to drive a speaker. Just because there’s an audio output doesn’t mean you can connect it straight to a speaker. That output is what’s called ‘high impedance’ – it is a low-power, low-signal-level output. It’s designed to be fed to an audio amplifier. (This was mentioned in the story – please re-read. Thanks).

  • dear sirs.
    Step 2 is not working with me.
    i did all you explain, but
    You’ll see a Command Prompt screen appear briefly and when it disappears you’ll have a new WAV file in the original file’s location. You can even select multiple files to encode all at once.
    but the NEW WAV file looks the same, seens nothing happened. I run ino program, but erro msg about wav file is showed

    please help me

  • Sirs,
    is there a WAY to Know whem the play WAV filnish? when the music stoped???
    i want to make a LOOP, one unique music playing all the time
    could you help me?

    • Derek Roberts

      Hi Marcus,

      Did you get this to work as a loop? I want to try something like this, too.

      Thanks for any advice.

  • Gonzalo Muñoz Rojas

    Hi, I´m using arduino mega + shield ethernet also i use your libraries but the circuit does not work…. please give advice about this problem

    PD: Sorry for my bad english

  • Harrison Walker

    How do you connect it to a circuit that when the button is pressed, an LED turns on?

  • Drroach

    Thanks to you, I succeeded accessing my SD Card with three diodes. But I didn’t use the 10k resistor and the 100uF capacitor at CS line. Why did you use them, and why were they necessary?

    • Well, the circuit diagram for the SD card reader itself says that it requires a pull-up resistor – so that’s why the 10kohm resistor is there. The 100uF capacitor is not on the CS line – it’s on the 5V rail. Its purpose is to decouple and smooth the 5V rail. It’s just good design.

      • Drroach

        Well but, the sd card module itself should have a pull-up resistor for cs, right? Since the mosi and the clk lines don’t have any extra pull-ups, but why cs needs one?

        • Oh, I don’t know – ask the person who designed the SD card module. Maybe it’s an active-low CS, the Arduino pin pulls low, stays low and the pull-up resistor does nothing forever more.
          I just followed the recommendation – if you don’t need the pull-up resistor, great – don’t use it. Cheers.

          • Drroach

            Thank you for the reply!

        • Look, I don’t know – I didn’t designed the SD card module. I just followed the recommendation. If you don’t need the pull-up resistor, great – don’t use it. Cheers.

  • No worries.

  • Rukayya Tilde

    please is it possible to convert a microphone output into ARDUINO format????

    • By that, are you meaning is it possible to plug a microphone into the Arduino? The answer is yes, but you need more circuitry. Microphones on their own produce very low signal levels – for the Arduino’s ADC to pick them up, they need to be amplified, by a factor of around 1,000 (60dB). To do that, you’ll need what’s called a ‘small-signal audio amplifier’ circuit. I can’t draw one here, but I’d suggest looking up a low-cost operational amplifier (opamp) circuit using something like an LM358 dual op-amp IC. It’s not super-high quality, but it’s common and cheap – also the Arduino is only 8-bit quality, which means around 1% total harmonic distortion (THD). The LM358 is definitely better than that – and having two opamps, you have more flexibility in how you wire them up to get your 60dB of gain.
      The alternative is a pre-made microphone module supposedly designed for Arduino use you can pick up on eBay for $2 or so, but as far as I’m aware, it uses an LM393, which is a comparator, not an opamp and rarely used for audio.
      I’m sure this answer is more technical than you were expecting or looking for, but that’s how the Arduino (and almost all microcontrollers) work I’m afraid.

  • Irina Kim

    Hello, I’m irinakim and WIZnet Engineer.
    Thank you to use the posting WIZnet products.
    If you ever need my help, send an e-mail to
    Can I share your posts on my blog?

  • Budi Wahyu Nugroho

    hello sir, thank you for the article.
    sorry I am still confused with the schematic of arduino to the speakers.
    I’ve made a circuit like the picture, but no sound came out.
    is there any that can provide a solution to my problem?

    sorry my english is bad

  • PeloBlanco

    Would the Sparkfun Audio Amp Kit be sufficient as an amplifier?

    • Any amp capable of driving a loudspeaker should be fine.

  • PeloBlanco

    I get this error message when I try to upload the APC_05_audioplayer.ino:

    Arduino: 1.6.5 (Windows 8.1), Board: “Arduino/Genuino Uno”
    APC_05_AudioPlayer.ino: In function ‘void setup()’:
    APC_05_AudioPlayer:39: error: no matching function for call to ‘SDClass::begin(const int&, int&)’
    APC_05_AudioPlayer.ino:39:36: note: candidate is:
    In file included from APC_05_AudioPlayer.ino:5:0:
    C:Program Files (x86)ArduinolibrariesSDsrc/SD.h:68:11: note: boolean SDClass::begin(uint8_t)
    boolean begin(uint8_t csPin = SD_CHIP_SELECT_PIN);
    C:Program Files (x86)ArduinolibrariesSDsrc/SD.h:68:11: note: candidate expects 1 argument, 2 provided
    no matching function for call to ‘SDClass::begin(const int&, int&)’

    This report would have more information with
    “Show verbose output during compilation”
    enabled in File > Preferences

    Your help will be greatly appreciated,


    • Nope, not sure about that one. The code was designed on the old v1.0.5 I think. I’m assuming you have the supplied libraries copied across to the Arduino IDE folder. Other than that, it should work.
      It’s possible there’s been a change to the SD library. Try installing v1.0.5, using the libraries from our code zip and giving that a go.
      I can’t guarantee it works with v1.6.5.

      • PeloBlanco

        I tried installing it with
        v1.0.5 and it compiled and transferred fine by simply copying the SD and tmrpcm
        folders to the IDE libraries folder. By first deleting the SD folder from the
        v1.6.5 libraries folder and then copying the SD and tmrpcm folders, the
        transfer took place without error.

        However, when I pushed the button, I got the
        following from the Serial Monitor with both versions:

        SD card…done.
        Not a WAV

        SampleRate Too High: 44100
        Setting SR to 22000
        Bits Per Sample: 16
        Completed playback.

        I did convert the file to .wav as per instructions.


      • PeloBlanco

        Call off the dogs, I got it working in Windows 10.

        • Good to hear, because I was scratching my head at what was next.

          • PeloBlanco

            FYI, I deleted the IDE’s original SD folder before I copied the ‘AudioPlayer’s” SD to the libraries folder. I then rerecorded the audio from the web using the Stereo Mix setting. It was in a m4a format which I then converted to a .wav as per your instructions to a Class 4 8GB SD micro. and it worked fine.
            The SD folder deletion worked in both versions 1.0.5 and 1.6.5.

  • Hi everyone,
    Just a quick note, I am working on a new version digital audio player combining the Arduino Nano with a new MicroSD card reader incorporating proper voltage translation for better reliability. It’ll be a new story on APC in our Arduino Masterclass in a coming issue.
    I’ve got a bunch of cool stories coming up in future issues of APC on taking Arduino to the next level I’m really excited about that hopefully inspire to think about ‘Internet of Things’ and thinking about how to make your own tech.
    Enjoy the long weekend,

  • Thejas Bv


    • Ignoring the components in the grey box, the 4.7kohm resistor and 0.0015uF capacitor form a single-order low-pass filter to reduce the pulse-width modulation (PWM) component in the audio output signal. Ideally, a fourth-order filter would be better, but so would 16-bit audio output. The 0.1uF capacitor provides AC coupling to ensure the Arduino’s D9 output isn’t directly-coupled and the 47kohm resistor ensures the 0.1uF capacitor is charged when power is applied and doesn’t create a ‘thump’ when you plug in the audio cable to your amplifier.

  • eleck

    TCRPCM Library is working fine..when i combined with sd fat library it is not supported…

  • Hamza Nisar

    Please tell me from where i can get the coding

  • Codrin

    Hi Darren,

    Great project. I got it to work, but I have some problems with the sound. Once every couple of seconds, it jumps ahead for about 0.5s or so. I had a look at the TMRpcm library to see if I figure out a potential problem but no luck so far. I was wondering if you experienced something similar with one of your setups.
    My setup is: Arduino Uno R3
    ITEAD SD shield (voltage translator included)
    SANDISK 2Gb card
    Please let me know if you have any ideas as to what the cause and the solution might be.
    Many thanks!

    • Codrin,
      Haven’t used that shield before so I don’t know much about it. Sorry.
      I also no longer use the TMRpcm library – the current June 2016 issue of APC magazine has a new audio player project called ‘nanoPlayer 2’ that uses my own code to allow playback of 8-bit stereo WAV files up to 48kHz sample rate.
      I haven’t turned the code into a library yet as I’m pretty flat-stick at the moment, but hopefully will get time at some point.