Core audio utils library used in cspot and euphonium projects.
What's included:
HTTPServer
,HTTPClient
- no need to explainBufferedStream
- wrapper forByteStream
with a worker-thread ring buffer- Crypto (openssl and mbedtls backed)
- Audio sinks interface:
- for Unix/Cygwin: ALSA, PortAudio, named pipe outputs (see root CMakeLists for options)
- for ESP32: DACs (
AC101
,ES8388
,ES9018
,PCM5102
,TAS5711
), S/PDIF over I2S, internal DAC output - → see
src/audio/sinks/esp
for pin configuration, etc.
- Abstraction layer over multiple audio codecs: (disable with
BELL_DISABLE_CODECS
)- AAC - using
libhelix-aac
- enabled withBELL_CODEC_AAC
- MP3 - using
libhelix-mp3
- enabled withBELL_CODEC_MP3
- Vorbis - using Xiph.org's
tremor
- enabled withBELL_CODEC_VORBIS
- Opus - using Xiph.org's reference Opus impl - enabled with
BELL_CODEC_OPUS
- AAC - using
- Audio container reading classes, with random access support:
Mpeg4Container
- supports MPEG-4 and QuickTime files, either with or without video, fragmented or not
- cJSON library with JSONObject wrapper (disable with
BELL_DISABLE_CJSON
) - Logging utilities
- Nanopb protobuf library, for use in CMake
- Semaphore implementations for multiple platforms