Files
snapclient/README.md
jorgenkraghjakobsen 3b9e95dc1a task list update
2020-05-31 01:04:27 +02:00

1.7 KiB

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

  • Fix to alinge with above
  • kconfig
  • add codec description
  • Integrate ESP wifi provision
  • [ok] Find and connect to Avahi broadcasted Snapcast server name
  • Add a client command interface layer like volume/mute control
  • Build a ESP-ADF branch

Minor task

  • Propergate mute/unute from server message to DSP backend mute control.
    • soft mute - play sample in buffer with decresing volume
    • hard mute - pass on zero at the DSP hackend
  • Startup: do not start parsing on samples to codec before sample ring buffer hits requested buffer size.