# Xbox360 Custom Soundtrack TCR

**URL:** <https://qa.fmod.com/t/xbox360-custom-soundtrack-tcr/11980>\
**Category:** FMOD Studio\
**Created:** [July 9, 2015, 2:14am UTC](https://qa.fmod.com/t/xbox360-custom-soundtrack-tcr/11980 "2015-07-09T02:14:57Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![bigant](https://avatars.discourse-cdn.com/v4/letter/b/eb9ed0/32.png) [@bigant](https://qa.fmod.com/u/bigant)\
**Post date:** [July 9, 2015, 2:14am UTC](https://qa.fmod.com/t/xbox360-custom-soundtrack-tcr/11980/1 "2015-07-09T02:14:57Z")

</div>

Hi,

In the FMOD Designer user manual under the Event Categories section, it states:

"The music category has a different, yet important purpose. Microsoft requires a title’s soundtrack be replaceable with the end-user’s own music files. The Xbox 360 allows end-users to import their own music using the Xbox 360 dashboard.

To comply with this requirement, all non-game related (soundtrack) music should be placed in the ‘music’ category. This allows the FMOD engine to automatically suspend the playback of audio in the music category and instead use the end-user supplied music tracks."

I could not find anything about how to follow this requirement in the FMOD Studio user manual, does similar functionality exist?

Cheers.

---

<div class="post-metadata">

**Author:** ![nick1](https://avatars.discourse-cdn.com/v4/letter/n/47e85d/32.png) [@nick1](https://qa.fmod.com/u/nick1)\
**Post date:** [July 9, 2015, 6:06am UTC](https://qa.fmod.com/t/xbox360-custom-soundtrack-tcr/11980/2 "2015-07-09T06:06:10Z")

</div>

There is not quite the same functionality in Studio. If you create a group bus called **music** in the studio tool you have two options.

Poll the system yourself once a frame and mute/pause the bus yourself

```
FMOD::Studio::Bus* musicBus;
studioSystem->getBus("bus:/music", &musicBus);

BOOL titlehascontrol = FALSE;
XMPTitleHasPlaybackControl(&titlehascontrol);
if (titlehascontrol)
{
    musicBus->setMute(false);
}
else
{
    musicBus->setMute(true);
}

```

Create a dummy channel group with the correct name for the driver to control it automatically

```
// Get the music bus
FMOD::Studio::Bus* musicBus;
studioSystem->getBus("bus:/music", &musicBus);
musicBus->lockChannelGroup();
studioSystem->flushCommands();

// Get the channel group for the music bus as well as it's parent
FMOD::ChannelGroup* musicBusCG;
musicBus->getChannelGroup(&musicBusCG);
FMOD::ChannelGroup* musicBusParentCG;
musicBusCG->getParentGroup(&musicBusParentCG);

// Create a new channel group with the correct name for the TCR code in the driver
// to find it and insert between the music bus channel group and it's parent
FMOD::ChannelGroup* tcrMusicCG;
lowLevelSystem->createChannelGroup("music", &tcrMusicCG);
musicBusParentCG->addGroup(tcrMusicCG);
tcrMusicCG->addGroup(musicBusCG);
```

---

<div class="post-metadata">

**Author:** ![bigant](https://avatars.discourse-cdn.com/v4/letter/b/eb9ed0/32.png) [@bigant](https://qa.fmod.com/u/bigant)\
**Post date:** [July 9, 2015, 11:59pm UTC](https://qa.fmod.com/t/xbox360-custom-soundtrack-tcr/11980/3 "2015-07-09T23:59:01Z")

</div>

> [@](#):
>
> There is not quite the same functionality in Studio. If you create a group bus called **music** in the studio tool you have two options.
> 
> Poll the system yourself once a frame and mute/pause the bus yourself
> 
> ```
> FMOD::Studio::Bus* musicBus;
> studioSystem->getBus("bus:/music", &musicBus);
> 
> BOOL titlehascontrol = FALSE;
> XMPTitleHasPlaybackControl(&titlehascontrol);
> if (titlehascontrol)
> {
> musicBus->setMute(false);
> }
> else
> {
> musicBus->setMute(true);
> }
> 
> ```
> 
> Create a dummy channel group with the correct name for the driver to control it automatically
> 
> ```
> // Get the music bus
> FMOD::Studio::Bus* musicBus;
> studioSystem->getBus("bus:/music", &musicBus);
> musicBus->lockChannelGroup();
> studioSystem->flushCommands();
> 
> // Get the channel group for the music bus as well as it's parent
> FMOD::ChannelGroup* musicBusCG;
> musicBus->getChannelGroup(&musicBusCG);
> FMOD::ChannelGroup* musicBusParentCG;
> musicBusCG->getParentGroup(&musicBusParentCG);
> 
> // Create a new channel group with the correct name for the TCR code in the driver
> // to find it and insert between the music bus channel group and it's parent
> FMOD::ChannelGroup* tcrMusicCG;
> lowLevelSystem->createChannelGroup("music", &tcrMusicCG);
> musicBusParentCG->addGroup(tcrMusicCG);
> tcrMusicCG->addGroup(musicBusCG);
> 
> ```

Thanks Nicholas.
