High quality 8 channel FLAC decoding using one or more ESP32s #1450
-
The following is cross-posted from my post on philschazmann.ch... Response from Phil noted that the ESP32 has insufficient I2S outputs for 8 channels. |
Beta Was this translation helpful? Give feedback.
Replies: 7 comments 6 replies
-
I2S is usually the preferred protocol for audio: Most cheap external DACs use I2S and there you are limited to 2 channels and using an ESP32 which has 2 ports, lets you output 4 channels in total: So one thing to investigate first would be, if you can receive, decode and output 4 channels, 24 bit at 96khz on an ESP32 reliably. I am usually working with an AudioKit/LyraT board and there you can only go up to 48000 samples per second and more is not supported. Some ESP32 like the ESP32-S3 support TDM which can provide more than 2 channels and this would be another solution to evaluate: You would need to find a DAC that supports TDM and should maybe do some more investigations into this direction. Another solution approach that you could try to investigate would be to use snapcast to distribute the audio and on the client side just output selected channels, e.g. on one ESP32 channels 0,1,2,3 and a second channel 4,5,6,7 or you could dedicate one ESP32 to output one channel only. The thing I don't quite understand is where your high end audio requirements of minimum 8 channels, 24-bit samples at 96 kHz come from and why you would like to solve this with a cheap but limited ESP32. I would not be able to distinguish the audio of 16 bits from 24 bits and 44100 from 48000. |
Beta Was this translation helpful? Give feedback.
-
Just a word of warning: The processing speed, floating point operations and network performance is very limited compared on what you get on the desktop: so the challenge is always to operate at the limit of the capabilities of these small devices and you might need to compromise on your settings to get things working reliably. Another cheap option that you could look into is to use a Rasperry PI via HDMI |
Beta Was this translation helpful? Give feedback.
-
Hi,@geoffw64 https://forum.pjrc.com/index.php?threads/cs42448-board-6-audio-inputs-8-outputs.72479/#post-338869 |
Beta Was this translation helpful? Give feedback.
-
Thanks for your input: I ordered a CS42448 and AD1938 based board in order to investigate how far we can get with an ESP32 or RP2040. Since this is just a hobby, I tried so far to keep it on the cheap side and these were by far the most expensive boards I have ever bought. It might also be interesting to have this running with a cheap stm32h7 microcontroller. |
Beta Was this translation helpful? Give feedback.
-
i've seen STM32H7can handle 10-12 audio channels, for 12€ the module looks very interesting, |
Beta Was this translation helpful? Give feedback.
-
teensy 4.1 is a 600 MHZ racer but also can be extra powered by psram up to 16Mo & spiflash working yet, up to 64Mo , |
Beta Was this translation helpful? Give feedback.
-
The CS42448 is today at 12,45€ big deal :) |
Beta Was this translation helpful? Give feedback.
I2S is usually the preferred protocol for audio: Most cheap external DACs use I2S and there you are limited to 2 channels and using an ESP32 which has 2 ports, lets you output 4 channels in total: So one thing to investigate first would be, if you can receive, decode and output 4 channels, 24 bit at 96khz on an ESP32 reliably. I am usually working with an AudioKit/LyraT board and there you can only go up to 48000 samples per second and more is not supported.
Some ESP32 like the ESP32-S3 support TDM which can provide more than 2 channels and this would be another solution to evaluate: You would need to find a DAC that supports TDM and should maybe do some more investigations into this dire…