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.

Parents
  • Hello,

    Thanks for registering your question with us. Please note that Nordic Semiconductor is currently in a summer break period and many of our resources are out of office. We will provide an answer back in a timely manner, and update you as soon as possible. In advance, thank you for you patience.


    I've forwarded your question internally and hope to have an answer within 3 business days.

    Kind regards,
    Øyvind

  • I have a few additional questions regarding a mono audio broadcasting configuration.

    Assuming that I use mono audio, I would like to create 4 BIGs, where each BIG contains a single BIS (for a total of 4 BIGs and 4 BIS streams).

    My questions are:

    1. Is it sufficient to run four LC3 encoders (one encoder per BIS) in this configuration?
    2. Is it possible to implement this on a single nRF5340 Audio DK?

    In addition, I would like to ask about the following:

    1. How can I configure the nRF5340 Audio DK to broadcast mono audio using 4 BIGs, with each BIG containing a single BIS (4 BIGs / 4 BIS in total)?
    2. If I receive a single USB Audio stream from a host (e.g., Jetson), what is the recommended way to separate it into four channels (KOR, ENG, JAP, CHA) and feed them to four LC3 encoders? Is this architecture supported or recommended? (As I understand it, the audio_system.c receives audio as two channels (L/ R stereo))

    Thank you for your help.

  • Hello, 

    I just want to let you know that Øyvind is out of office and I will support you from now on. I have started to look into your code so far and I will share some initial feedback before Thursday this week. 

    Just to make sure that I'm not omitting anything important: You note that all previous issues have been resolved in one of your most recent replies. Should I only focus on the content of your reply from July 18th/19th (depending on time zone)?

    Best regards,

    Maria

  • 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

Reply
  • 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

Children
No Data
Related