Creating multiple BIGs with one gateway (nRF5340 Audio DK)

My project goal is to broadcast four different languages simultaneously using Auracast. Each language will be transmitted on its own BIG so that Auracast-compatible devices, such as Galaxy Buds, can select and listen to the desired language.

As a first step, I am currently trying to receive two language streams and create two BIGs.

Before starting this work, I successfully built and ran the broadcast_source sample from the nrf_audio application in nRF Connect SDK.

I have two questions:

  1. I would like to receive audio for multiple languages over a single USB connection by using multiple USB audio channels (or another recommended USB audio architecture). Is this the recommended approach? If so, are there any examples or documentation that I should refer to?
  2. Before creating multiple BIGs, my understanding is that each audio stream needs to be encoded separately in encoder_thread() before being sent to the corresponding BIG. Is my understanding correct? If so, could you point me to the relevant source files, documentation, or examples that explain how this part of the audio pipeline is implemented?

I have tried to find documentation and examples related to these two topics, but I have not been able to find any useful references.

I would greatly appreciate it if you could provide some guidance on where I should start looking or which parts of the source code and documentation I should study.

Thank you very much.

  • Yes, I have resolved all of the previous issues. Therefore, I believe you only need to focus on the content of the last two replies, specifically the discussion related to subgroup_send().

    Thank you in advance for your time and feedback.

  • Hello, 

    Thank you for confirming the scope of your current issue. I have not reached a conclusion quite yet, but I'm still on it. 

    So far I have only looked into the code itself, but I plan on running this on a DK tomorrow. 

    I also have a quick question: Have you experimented with the ordering of calling subgroup_send? Do you get the same result when calling subgroup_send(eng_idx, audio_eng) before subgroup_send(kor_idx, audio_kor)? 

    Thank you for your patience. 

    Best regards,

    Maria

  • I tested all four possible combinations of the index order and the audio order.

    In summary, regardless of whether asubgroup_send call was made first or second, only the audio assigned to subgroup 0 was audible. In addition, even after increasing the number of subgroups in the broadcast configuration without assigning any audio to the newly created subgroups, I could still hear the audio from subgroup 0.

  • Hello, 

    Thank you for your patience. My current status is that I'm trying to reproduce this issue by using the nrf_auraconfig sample together with a broadcast sink (modified nRF Audio). At this point I have not seen the same issue that you are seeing, that is, when the broadcast sink correctly syncs to subgroups other than sugbroup 0, the correct audio is heard.

    I did however have some challenges with getting the broadcast sink to actually sync to other subgroups. To resolve these challenges I had to modify the behaviour or the broadcast sink, so my solution would not be of much help to you unfortunately. However, using another receiver with logging possibilities may help to find out if your auracast source correctly sets up the subgroups or not. Currently it is not possible for me to tell if the earbuds are correctly syncing to other subgroups when selected or if they stay synced to subgroup 0. Do you have a device with logging possibilities available which you can use as a broadcast sink? 

    Alternatively, if you could send .hex files or the source code for your application I can test with my broadcast sink.

    Best regards,

    Maria

Related