I am also interested in a similar configuration, so i find it beneficial to write here. From this thread i see that 4 BIS streams is the max supported by the BLE audio controller.
My question is: to enable the 4 BIS streams (in my use case audio quality is not important) you just use the aforementioned flags in prj.conf ? (CONFIG_BT_AUDIO_BROADCAST_24_2_1=y, CONFIG_ENCODER_STACK_SIZE=16384, CONFIG_LC3_ENC_CHAN_MAX=4)
And if this was your only change to the default source code, how do you send the 4 streams to the board?
Can i send 4 mono streams from USB or 2 mono streams through USB and 2 through LINE IN?
br, catalinio
Cool, Looking forward to your progress on lc3 encoed audio streams transferred by UART/SPI.
Hi uzer123 ,
uzer123 said:My question is: to enable the 4 BIS streams (in my use case audio quality is not important) you just use the aforementioned flags in prj.conf ? (CONFIG_BT_AUDIO_BROADCAST_24_2_1=y, CONFIG_ENCODER_STACK_SIZE=16384, CONFIG_LC3_ENC_CHAN_MAX=4)
And if this was your only change to the default source code, how do you send the 4 streams to the board?Can i send 4 mono streams from USB or 2 mono streams through USB and 2 through LINE IN?
Please find below some suggestions from our developers.
Encoding each stream takes around 30% of the CPU time. Therefore, there might not be enough CPU time to encode 4 streams.
Current USB implementation only has 2 (stereo) endpoints. As USB endpoint is synchronous, it is controlled by PC clock. For avoiding the packet loss. synchronization of USB to I2S is required but you would be on your own in potentially achieving this.
With regard to config options, you would need to set CONFIG_BT_CTLR_CONN_ISO_STREAMS=4 and CONFIG_BT_CTLR_SYNC_ISO_STREAM_COUNT=4 in the controller's prj.conf.
In general, in trying to achieve 4 streams, issues might arise due to CPU, USB and clock sources. One could consider trying to find ways to transfer pre-encoded LC3 to the nrf5340 using for example SPI.
Best regards,
Dejan
Thank you for the detailed and clear answer