All Projects → schreibfaul1 → Esp32 Audioi2s

schreibfaul1 / Esp32 Audioi2s

Licence: gpl-3.0
Play mp3 files from SD via I2S

Projects that are alternatives of or similar to Esp32 Audioi2s

Esp8266audio
Arduino library to play MOD, WAV, FLAC, MIDI, RTTTL, MP3, and AAC files on I2S DACs or with a software emulated delta-sigma DAC on the ESP8266 and ESP32
Stars: ✭ 972 (+330.09%)
Mutual labels:  esp32, mp3, aac
Gogglesmm
Goggles Music Manager
Stars: ✭ 41 (-81.86%)
Mutual labels:  mp3, aac
Esp32 esp8266 wifi speaker oled
A MP3 streaming WiFi speaker for ESP8266 & ESP32 chips
Stars: ✭ 20 (-91.15%)
Mutual labels:  esp32, mp3
Webrtc apm
webrtc中apm相关代码的提取,包括AEC/NS/AGC/VAD ,另外还包括mp3/aac编码器、SoundTouch
Stars: ✭ 65 (-71.24%)
Mutual labels:  mp3, aac
nfc attendance system esp32
NFC Attendance System | 智慧校園NFC考勤系統 | 基於ESP32的智慧校園NFC考勤系統控制器
Stars: ✭ 27 (-88.05%)
Mutual labels:  esp32, mp3
Freac
The fre:ac audio converter project
Stars: ✭ 518 (+129.2%)
Mutual labels:  mp3, aac
Audioworks
A cross-platform, multi-format audio conversion and tagging suite
Stars: ✭ 35 (-84.51%)
Mutual labels:  mp3, aac
Mediafile
A unified reader of metadata from audio & video files.
Stars: ✭ 138 (-38.94%)
Mutual labels:  mp3, aac
Audiobookconverter
Improved AudioBookConverter based on freeipodsoftware release (mp3 to m4b converter)
Stars: ✭ 131 (-42.04%)
Mutual labels:  mp3, aac
Av Converter
[av-converter.com] Audio and Video Converter, and YouTube downloader. Convert to MP3, MP4, AAC, FLAC, AC3, WAV, etc.
Stars: ✭ 97 (-57.08%)
Mutual labels:  mp3, aac
slibs
Single file libraries for C/C++
Stars: ✭ 80 (-64.6%)
Mutual labels:  mp3, aac
Atldotnet
Fully managed, portable and easy-to-use C# library to read and edit audio data and metadata (tags) from various audio formats, playlists and CUE sheets
Stars: ✭ 180 (-20.35%)
Mutual labels:  mp3, aac
libwinmedia
[Archived] A cross-platform simple media playback library for C/C++.
Stars: ✭ 35 (-84.51%)
Mutual labels:  mp3, aac
Ion.sound
JavaScript plugin for playing sounds and music in browsers
Stars: ✭ 694 (+207.08%)
Mutual labels:  mp3, aac
loudgain
ReplayGain 2.0 loudness normalizer based on the EBU R128/ITU BS.1770 standard (-18 LUFS, FLAC, Ogg, MP2, MP3, MP4, M4A, AAC, ALAC, Opus, ASF, WMA, WAV, AIFF, WavPack, APE)
Stars: ✭ 127 (-43.81%)
Mutual labels:  mp3, aac
aplay-
a simple BitPerfect player
Stars: ✭ 23 (-89.82%)
Mutual labels:  mp3, aac
goicy
AAC and MPEG (MP1, MP2, MP3) Icecast/Shoutcast source client written in Go
Stars: ✭ 58 (-74.34%)
Mutual labels:  mp3, aac
arduino-audio-tools
Arduino Audio Tools (Music Player, Music Recorder supporting I2S, Microphones, DAC, ADC, A2DP, Url, MP3, AAC, AudioKit, ES8388)
Stars: ✭ 393 (+73.89%)
Mutual labels:  mp3, aac
Recordutil
support free record mp3 amr wav aac format可以录制android ios兼容的aac mp3格式切换录制格式也支持体积极少的amr格式,只需要改变工厂方法改变一句话就能实现,和iOS不撕逼录音,这是一个通用解决方案,你值得拥有!
Stars: ✭ 91 (-59.73%)
Mutual labels:  mp3, aac
Audio Steganography Algorithms
A Library of Audio Steganography & Watermarking Algorithms
Stars: ✭ 146 (-35.4%)
Mutual labels:  mp3, aac

ESP32-audioI2S

Plays mp3, m4a and wav files from SD card via I2S with external hardware. HELIX-mp3 and -aac decoder is included. Works with MAX98357A (3 Watt amplifier with DAC), connected three lines (DOUT, BLCK, LRC) to I2S. For stereo are two MAX98357A necessary. AudioI2S works with UDA1334A (Adafruit I2S Stereo Decoder Breakout Board) and PCM1502A. Other HW may work but not tested. Plays also icy-streams and GoogleTTS. Can be compiled with Arduino IDE. WIKI

#include "Arduino.h"
#include "WiFi.h"
#include "Audio.h"
#include "SD.h"
#include "FS.h"

// Digital I/O used
#define SD_CS          5
#define SPI_MOSI      23
#define SPI_MISO      19
#define SPI_SCK       18
#define I2S_DOUT      25
#define I2S_BCLK      27
#define I2S_LRC       26

Audio audio;

String ssid =     "*******";
String password = "*******";

void setup() {
    pinMode(SD_CS, OUTPUT);      digitalWrite(SD_CS, HIGH);
    SPI.begin(SPI_SCK, SPI_MISO, SPI_MOSI);
    Serial.begin(115200);
    SD.begin(SD_CS);
    WiFi.disconnect();
    WiFi.mode(WIFI_STA);
    WiFi.begin(ssid.c_str(), password.c_str());
    while (WiFi.status() != WL_CONNECTED) delay(1500);
    audio.setPinout(I2S_BCLK, I2S_LRC, I2S_DOUT);
    audio.setVolume(21); // 0...21

//    audio.connecttoFS(SD, "/320k_test.mp3");
//    audio.connecttohost("http://www.wdr.de/wdrlive/media/einslive.m3u");
//    audio.connecttohost("http://macslons-irish-pub-radio.com/media.asx");
//    audio.connecttohost("http://mp3.ffh.de/radioffh/hqlivestream.aac"); //  128k aac
      audio.connecttohost("http://mp3.ffh.de/radioffh/hqlivestream.mp3"); //  128k mp3
//    audio.connecttohost("https://github.com/schreibfaul1/ESP32-audioI2S/raw/master/additional_info/Testfiles/sample1.m4a"); // m4a
//    audio.connecttohost("https://github.com/schreibfaul1/ESP32-audioI2S/raw/master/additional_info/Testfiles/test_16bit_stereo.wav"); // wav
//    audio.connecttospeech("Wenn die Hunde schlafen, kann der Wolf gut Schafe stehlen.", "de");
}

void loop()
{
    audio.loop();
}

// optional
void audio_info(const char *info){
    Serial.print("info        "); Serial.println(info);
}
void audio_id3data(const char *info){  //id3 metadata
    Serial.print("id3data     ");Serial.println(info);
}
void audio_eof_mp3(const char *info){  //end of file
    Serial.print("eof_mp3     ");Serial.println(info);
}
void audio_showstation(const char *info){
    Serial.print("station     ");Serial.println(info);
}
void audio_showstreamtitle(const char *info){
    Serial.print("streamtitle ");Serial.println(info);
}
void audio_bitrate(const char *info){
    Serial.print("bitrate     ");Serial.println(info);
}
void audio_commercial(const char *info){  //duration in sec
    Serial.print("commercial  ");Serial.println(info);
}
void audio_icyurl(const char *info){  //homepage
    Serial.print("icyurl      ");Serial.println(info);
}
void audio_lasthost(const char *info){  //stream URL played
    Serial.print("lasthost    ");Serial.println(info);
}
void audio_eof_speech(const char *info){
    Serial.print("eof_speech  ");Serial.println(info);
}

Breadboard Breadboard Wiring Wiring Impulse diagram Impulse diagram

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].