Jorgen Kragh Jakobsen d5c3d33c64 formating
d5c3d33c64 · 2020-05-27 16:45:05 +02:00
25 Commits
2020-05-24 22:55:19 +02:00
wip
2020-05-24 23:37:33 +02:00
2020-04-23 00:15:11 +02:00
2020-04-23 00:15:11 +02:00
2020-05-27 16:45:05 +02:00

Snapcast client for ESP32

Synchronous Multiroom audio streaming client for Snapcast ported to ESP32

Feature list

  • Opus decoding currently supported
  • Wifi connection hardcoded in app
  • Snapcast server address hardcoded
  • Buffers up to 150 ms on Wroom modules
  • Buffers more then enough on Wrover modules

Build

Clone this repo:

git clone https://github.com/jorgenkraghjakobsen/snapclint 

Update third party code:

git submodule update --init

Configure to match your setup:

  • Wifi network name and password
  • Audio coded setup

Build, compile and flash:

idf.py build flash monitor

Test

Setup a snapcast server on your network

On a linux box:

Clone snapcast build and start the server

./snapserver  

Pipe some audio to the snapcast server fifo

mplayer http://ice1.somafm.com/secretagent-128-aac -ao pcm:file=/tmp/snapfifo -af format=s16LE -srate 48000

Test the server config on other knowen platform

./snapclient  from the snapcast repo

Android : snapclient from the app play store

Task list

  • Integrate ESP wifi provision
  • Find and connect to Avahi broadcasted Snapcast server name
  • Add a client command interface layer like volume/mute control
  • Build a ESP-ADF branch
Description
snapclient on ESP32
Readme GPL-3.0 61 MiB
Languages
C 92.2%
Roff 3.4%
JavaScript 1.5%
C++ 1.2%
CMake 0.8%
Other 0.9%