Code Monkey home page Code Monkey logo

adafruit_mp3's Introduction

Adafruit_MP3 Build Status

This library sets up and performs native MP3 audio decoding on various Arduino-compatible platforms including Metro/Feather M4 (SAMD51 chip), teensy 3.6, teensy 3.2, and teensy 3.1. Audio output via the DAC pins. Uses Helix as underlying decoding. On the SAMD51 boards, TC2 is used to create the sample timer (usually 44.1khz or 48khz). Uses a decent chunk of RAM at this time!

UPDATE 6 October 2018

  • Fixed issues with Teensy support - The code NVIC_DisableIRQ(MP3_IRQn); applies only to the feather and metro m4 but was applied to all boards which resulted in MP3_IRQn being undefined. (Adafruit_MP3.cpp)
  • Added support for Teensy 3.5 - Added defined(__MK64FX512__) wherever defined(__MK66FX1M0__) was found
  • Added/modified comments on compiler directives for Teensy boards
  • Included test.mp3 sample file (58.3 KB)
  • Fix applied to library and the "play_from_SD.ino" example only. (Other examples may have the same errors so use the above notes to fix other examples if needed.)

This release was tested with the Teensy 3.5 only. It is expected that it will work with all other supported boards. (At least as supported as the previous version.)

Some notes regarding audio file format

The tutorial posted on https://learn.adafruit.com/native-mp3-decoding-on-arduino states:

This function is called from an interrupt, so it should be short and sweet. It's getting called 44,100 to 48,000 times per second for most MP3 files.

This means that the MP3 files should be encoded within this range. The code is written for stereo MP3 files so if you have a mono MP3 file, it will not play back using this code as is.

Best practice for producing playable MP3 files

  • Encode at constant 40kbps with a sample rate of 44,100 kHz
  • Stereo only

Resources for encoding audio

Other notes

  • SD Cards (at least on Teensy 3.5 & 3.6 need to be formatted with FAT32 file system. If a small card is used with FAT formatting, it will not work.
  • If you receive errors with Teensy 3.5 & 3.6 code regarding the parameters for SD card initialization, look for warnings regarding the SD library. Most likely you have multiple libraries installed and the Teensy SD library is being skipped/ignored. If this is the case, you will need to move or remove the one being used, at least temporarily, so that the Teensy library is used by the Arduino IDE.

adafruit_mp3's People

Contributors

adamwolf avatar bitbank2 avatar deanm1278 avatar evaherrada avatar hoffmannjan avatar jepler avatar ladyada avatar richteel avatar siddacious avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.