Teensy 4.0 and mp3 and audio library

WA2MZG

Member
I am using the Teensy 4.0 with the audio shield and FrankBs Arduino-Teensy-Codec-lib.
I successfully compiled and ran the example program Mp3FilePlayer.
It plays the sample mp3 files from the library but it will not play mp3 files I create from my CDs.
Where should I look or what needs to be adjusted?
Thank You
 
Hi,
Where is the SDMp3 player in the teensy editor?
The FrankBs Arduino-Teensy-Codec-lib mention in the sketch: AudioPlaySdMp3 playMp31;
I want to compile the mp3player sketch but i've got this error:
"AudioPlaySdMp3' does not name a type; did you mean 'AudioPlaySdWav"
 
I don't understand i have a lot of errors as well for teensy 4.0 or teensy 4.1 - i have the last teensy 1.59

Code:
C:\Users\trans\Documents\Arduino\libraries\Arduino-Teensy-Codec-lib\audiobuffer.h:42:7: error: redefinition of 'class AudioBuffer'
   42 | class AudioBuffer
      |       ^~~~~~~~~~~
In file included from C:\Users\trans\Documents\Arduino\libraries\Audio/play_wav_buffered.h:34,
                 from C:\Users\trans\Documents\Arduino\libraries\Audio/Audio.h:130,
                 from C:\Users\trans\Documents\Arduino\libraries\Arduino-Teensy-Codec-lib\audiobuffer.h:40,
                 from C:\Users\trans\Documents\Arduino\libraries\Arduino-Teensy-Codec-lib\play_sd_flac.h:43,
                 from C:\Users\trans\Documents\Arduino\libraries\Arduino-Teensy-Codec-lib\play_sd_flac.cpp:36:
C:\Users\trans\Documents\Arduino\libraries\Audio/AudioBuffer.h:121:7: note: previous definition of 'class AudioBuffer'
  121 | class AudioBuffer : public MemBuffer
      |       ^~~~~~~~~~~
C:\Users\trans\Documents\Arduino\libraries\Arduino-Teensy-Codec-lib\play_sd_flac.cpp: In function 'FLAC__StreamDecoderWriteStatus write_callback(const FLAC__StreamDecoder*, const FLAC__Frame*, const FLAC__int32* const*, void*)':
C:\Users\trans\Documents\Arduino\libraries\Arduino-Teensy-Codec-lib\play_sd_flac.cpp:283:31: error: 'class AudioBuffer' has no member named 'getBufsize'; did you mean 'bufSize'?
  283 |         if (obj->audiobuffer->getBufsize() == 0)
      |                               ^~~~~~~~~~
      |                               bufSize
C:\Users\trans\Documents\Arduino\libraries\Arduino-Teensy-Codec-lib\play_sd_flac.cpp:286:35: error: 'class AudioBuffer' has no member named 'allocMem'
  286 |                 obj->audiobuffer->allocMem(FLAC_BUFFERS(numbuffers));
      |                                   ^~~~~~~~
C:\Users\trans\Documents\Arduino\libraries\Arduino-Teensy-Codec-lib\play_sd_flac.cpp:293:35: error: 'class AudioBuffer' has no member named 'available'; did you mean 'getAvailable'?
  293 |                 obj->audiobuffer->available() < numbuffers
      |                                   ^~~~~~~~~
      |                                   getAvailable
C:\Users\trans\Documents\Arduino\libraries\Arduino-Teensy-Codec-lib\play_sd_flac.cpp:314:70: error: 'class AudioBuffer' has no member named 'alloc'
  314 |                                 int16_t *abufPtr = obj->audiobuffer->alloc();
      |                                                                      ^~~~~
C:\Users\trans\Documents\Arduino\libraries\Arduino-Teensy-Codec-lib\play_sd_flac.cpp:336:70: error: 'class AudioBuffer' has no member named 'alloc'
  336 |                                 int16_t *abufPtr = obj->audiobuffer->alloc();
      |                                                                      ^~~~~
C:\Users\trans\Documents\Arduino\libraries\Arduino-Teensy-Codec-lib\play_sd_flac.cpp:358:70: error: 'class AudioBuffer' has no member named 'alloc'
  358 |                                 int16_t *abufPtr = obj->audiobuffer->alloc();
      |                                                                      ^~~~~
C:\Users\trans\Documents\Arduino\libraries\Arduino-Teensy-Codec-lib\play_sd_flac.cpp: In member function 'virtual void AudioPlaySdFlac::update()':
C:\Users\trans\Documents\Arduino\libraries\Arduino-Teensy-Codec-lib\play_sd_flac.cpp:386:43: error: 'class AudioBuffer' has no member named 'used'
  386 |         if (_channels > 0 && audiobuffer->used() >= _channels)
      |                                           ^~~~
C:\Users\trans\Documents\Arduino\libraries\Arduino-Teensy-Codec-lib\play_sd_flac.cpp:397:58: error: 'class AudioBuffer' has no member named 'get'
  397 |                         int16_t *abufptrL = audiobuffer->get();
      |                                                          ^~~
C:\Users\trans\Documents\Arduino\libraries\Arduino-Teensy-Codec-lib\play_sd_flac.cpp:398:58: error: 'class AudioBuffer' has no member named 'get'
  398 |                         int16_t *abufptrR = audiobuffer->get();
      |                                                          ^~~
C:\Users\trans\Documents\Arduino\libraries\Arduino-Teensy-Codec-lib\play_sd_flac.cpp:410:58: error: 'class AudioBuffer' has no member named 'get'
  410 |                         int16_t *abufptrL = audiobuffer->get();
      |                                                          ^~~
C:\Users\trans\Documents\Arduino\libraries\Arduino-Teensy-Codec-lib\play_sd_flac.cpp:438:26: error: 'class AudioBuffer' has no member named 'getBufsize'; did you mean 'bufSize'?
  438 |         if (audiobuffer->getBufsize() > 0 && audiobuffer->available() < minbuffers) return;
      |                          ^~~~~~~~~~
      |                          bufSize
C:\Users\trans\Documents\Arduino\libraries\Arduino-Teensy-Codec-lib\play_sd_flac.cpp:438:59: error: 'class AudioBuffer' has no member named 'available'; did you mean 'getAvailable'?
  438 |         if (audiobuffer->getBufsize() > 0 && audiobuffer->available() < minbuffers) return;
      |                                                           ^~~~~~~~~
      |                                                           getAvailable

What a mess!!
Someone here to point me somewhere :unsure:
 
This looks like a clash between my buffered SD play/record library, and Frank's codec library - we've both created a class called AudioBuffer. You'll have to disable one or the other; I generally do that by having a libraries-unused folder and moving the library I want to disable into that.
 
That's what i did,i kept paul steffrogen audio library and now that's cool for playing,
what do you preconise as format?
constant,variable,average 44100khz,48000khz;128->320khz?
I'm using audacity for converting
 
I just deal with 44.1kHz WAV, as I was aiming mainly at playing or recording multiple samples/tracks. For MP3 you’ll need Frank’s library, and I can’t tell you what he supports, sorry.
 
Back
Top