ADF example pipeline_raw_http 441.k/24b issue
Posted: Thu Jul 04, 2019 9:48 am
Hello everyone.
I've been trying different examples from esp-adf to get a feel of audio performance of esp32. I procured a LyraT v4.3 to conduct my experiments with. I was able to run pipeline_passthru example with I2S peripheral setup to 44.1k/24b which is a sampling freq/bit depth I'd like to use in future projects. I also tried running pipeline_raw_http example. It worked fine with standard settings, i.e. 16k/16b but .wav files captured with 44.1k/24b are just noise.
I played a bit with different settings and it seems like the issue is 24b encoding. When I try 44.1k/16b everything works just fine, but 16k/24b gives exact same results as 44.1k/24b. However when I take 44.1k/24b .wav file and modify the header to interpret the file content as 32b and 33.075k (which is 2/3 of 44.1k) you can clearly hear what was recorded, although pitch-shifted and with some noise still present.
Those experiments lead me to believe that I2S peripheral works fine (all signals look correct on the oscilloscope) and that there's an issue with (http)->(python server)->(wav encoding) part of the demo app but I'm having a hard time finding the exact cause. Can anyone shed some light? Have anyone tried this example with different than standard settings?
I've been trying different examples from esp-adf to get a feel of audio performance of esp32. I procured a LyraT v4.3 to conduct my experiments with. I was able to run pipeline_passthru example with I2S peripheral setup to 44.1k/24b which is a sampling freq/bit depth I'd like to use in future projects. I also tried running pipeline_raw_http example. It worked fine with standard settings, i.e. 16k/16b but .wav files captured with 44.1k/24b are just noise.
I played a bit with different settings and it seems like the issue is 24b encoding. When I try 44.1k/16b everything works just fine, but 16k/24b gives exact same results as 44.1k/24b. However when I take 44.1k/24b .wav file and modify the header to interpret the file content as 32b and 33.075k (which is 2/3 of 44.1k) you can clearly hear what was recorded, although pitch-shifted and with some noise still present.
Those experiments lead me to believe that I2S peripheral works fine (all signals look correct on the oscilloscope) and that there's an issue with (http)->(python server)->(wav encoding) part of the demo app but I'm having a hard time finding the exact cause. Can anyone shed some light? Have anyone tried this example with different than standard settings?