Files
snapclient/README.md

65 lines
1.7 KiB
Markdown
Raw Normal View History

2020-05-27 00:30:43 +02:00
# Snapcast client for ESP32
2020-05-27 00:12:46 +02:00
2020-05-27 00:30:43 +02:00
### Synchronous Multiroom audio streaming client for [Snapcast](https://github.com/badaix/snapcast) ported to ESP32
2020-05-27 00:12:46 +02:00
2020-05-27 00:30:43 +02:00
## 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
2020-05-27 00:12:46 +02:00
2020-05-27 00:30:43 +02:00
## Build
Clone this repo:
2020-05-27 16:45:05 +02:00
git clone https://github.com/jorgenkraghjakobsen/snapclint
2020-05-27 00:30:43 +02:00
Update third party code:
2020-05-27 16:49:06 +02:00
git submodule update --init
2020-05-27 00:12:46 +02:00
2020-05-27 00:30:43 +02:00
Configure to match your setup:
2020-05-27 00:12:46 +02:00
- Wifi network name and password
- Audio coded setup
2020-05-27 00:30:43 +02:00
Build, compile and flash:
2020-05-27 16:49:06 +02:00
idf.py build flash monitor
2020-05-27 00:12:46 +02:00
2020-05-27 00:30:43 +02:00
## Test
2020-05-27 00:12:46 +02:00
Setup a snapcast server on your network
2020-05-27 00:30:43 +02:00
2020-05-27 00:12:46 +02:00
On a linux box:
2020-05-27 00:30:43 +02:00
2020-05-27 00:12:46 +02:00
Clone snapcast build and start the server
2020-05-27 00:30:43 +02:00
2020-05-27 16:45:05 +02:00
./snapserver
2020-05-27 00:30:43 +02:00
2020-05-27 00:12:46 +02:00
Pipe some audio to the snapcast server fifo
2020-05-27 00:30:43 +02:00
2020-05-27 16:45:05 +02:00
mplayer http://ice1.somafm.com/secretagent-128-aac -ao pcm:file=/tmp/snapfifo -af format=s16LE -srate 48000
2020-05-27 00:30:43 +02:00
2020-05-27 00:12:46 +02:00
Test the server config on other knowen platform
2020-05-27 00:30:43 +02:00
2020-05-27 16:45:05 +02:00
./snapclient from the snapcast repo
2020-05-27 00:30:43 +02:00
2020-05-27 00:12:46 +02:00
Android : snapclient from the app play store
2020-05-27 16:49:06 +02:00
## Task list
- [ ] Fix to alinge with above
* kconfig
* add codec description
2020-05-27 00:12:46 +02:00
- [ ] Integrate ESP wifi provision
2020-05-31 01:04:27 +02:00
- [ok] Find and connect to Avahi broadcasted Snapcast server name
2020-05-27 00:12:46 +02:00
- [ ] Add a client command interface layer like volume/mute control
- [ ] Build a ESP-ADF branch
2020-05-31 01:04:27 +02:00
## 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.