Music Mode

Music mode is a new setting for transmitting a high-quality audio stream into a conference. With Music mode, the captured audio is transmitted as a high-quality stream. A standard stream is 32kHz/32kbps; music mode increases this to 48kHz/96kbps for mono or 48kHz/128kbps for stereo.

Setting the mode in a client changes the stream sent from that client and all other clients and recordings receive the high-quality stream.

Use cases

Music mode is designed to work well in the following use cases:

  • Webinars which include a segment where a live or prerecorded performance is played
  • Interactive music events with a music performance followed by a Q&A session
  • Online music lessons where a teacher and a student take turns playing music

Music mode is not designed to allow remote musicians to play together over the Internet.

Prerequisites

Using music mode in Dolby Voice conferences is supported in Web Client SDK 3.8 and later and using the mode in non-Dolby Voice conferences requires using the SDK 3.10 or later.

There are additional requirements for sending music. If music enhancement is desired, we recommend using either Chrome or Edge browser on a desktop operating system. Additionally, the minimum hardware requirements are:

  • i5 dual-core or Apple Silicon CPU
  • 8GB of RAM
  • 64-bit operating system

When used with other CPU-intensive features, such as bokeh for video, then a higher-performing CPU is required, such as i7 dual-core or Apple Silicon CPU.

Creating and joining a conference with music support

If you are using a Dolby Voice conference, you must first set the dolbyVoice parameter to true when creating the conference:

const createOptions = {
    alias: conferenceAlias,
    params: {
        dolbyVoice: true,
        ...
    }
};
await VoxeetSDK.conference.create(conference, createOptions);

Additionally, you must join the conference with the dvwc parameter enabled:

const joinOptions = {
    constraints: { audio: true, video: true },
    dvwc: true,
};
await VoxeetSDK.conference.join(conference, joinOptions);

The parameter setting cannot be modified during a call. Setting the dvwc parameter to true is not required to receive music.

If you are using Web SDK 3.10 or later and a non-Dolby Voice conference, no options are required at conference creation or join time.

Enabling Music mode

To send music, an application must set the capture mode. This is only required for the sender; receivers do not need to change the mode.

You can change the mode using the method setCaptureMode with a mode of "music":

await VoxeetSDK.audio.local.setCaptureMode({mode: "music"});

The mode can be set before or during a conference and can be changed as needed. Music mode can be turned off by changing to another mode, such as standard or unprocessed mode:

await VoxeetSDK.audio.local.setCaptureMode({mode: "standard"});

Music mode should be enabled only as needed by the application as this mode allows more background audio into a conference. If everyone is using Music mode, a conference may become too noisy. An application should swap between music and non-music modes as appropriate.

Echo cancellation

Echo cancellation prevents a participant’s microphone from capturing other participants' audio played from the participant's speakers. Without echo cancellation, if any participant uses speakers and a microphone, the other participants will hear themselves echoed back. To prevent this, echo cancellation is enabled by default.

However, additional audio processing required for echo cancellation can impact the quality of the music. Therefore, we recommend disabling echo cancellation and using Music mode with headphones that prevent echo.

The echo cancellation setting can be turned on or off when enabling Music mode. As it defaults to "on", the sample code mentioned before enabled music mode with echo cancellation. To disable echo cancellation and improve the quality of music, use the echo cancellation setting that is included in the mode options:

await VoxeetSDK.audio.local.setCaptureMode({mode: "music", modeOptions: {echoCancellation: "off"}});

Backward compatibility

Music mode is backward compatible with older SDKs. As these SDKs do not have music mode enhancements, the music stream is transmitted to the clients as a mono 32kHz/32kbps stream.

Troubleshooting

In the case of experiencing issues while using the mode, see the Troubleshooting guide.