FMOD Engine User Manual 2.03

4. Platform Details | Universal Windows Platform

UWP Specific Starter Guide

SDK Version

FMOD is compiled using the following tools.

Compatibility

FMOD supports devices of the below architectures running Windows 10.

Libraries

The provided libs are import libraries which require the corresponding DLL to be present at runtime. Substitute $ARCH your desired architecture from the 'Compatibility' list above.

Core API library

Studio API library (used in conjunction with the Core API library)

Plug-ins

FMOD includes a media foundation plug-in codec that can optionally be included in your game.

This has been separated in order to support Windows N by default - the media foundation plug-in is NOT compatible with Windows N unless the user installs the appropriate Media Feature Pack for Windows.

If included, FMOD can use the codec to support WMA, ASF, WMV, M4A and MP4 files.

Permissions

Some functionality inside of FMOD will require you set relevant capabilities in your manifest file.

Thread Affinity

All threads will default to FMOD_THREAD_AFFINITY_CORE_ALL, this is recommended due to the wide variety of PC hardware but can be customized with Thread_SetAttributes.

Thread Priority

The relationship between FMOD platform agnostic thread priority and the platform specific values is as follows:

Port Support

UWP supports the following port types when using FMOD_OUTPUTTYPE_WINSONIC:

Background Music

The background music will bypass the operating system's virtual speaker processing.

Below is a usage demonstration with error checking omitted for brevity:

FMOD::ChannelGroup *bgm;
system->createChannelGroup("BGM", &bgm);
system->attachChannelGroupToPort(FMOD_PORT_TYPE_MUSIC, FMOD_PORT_INDEX_NONE, bgm);

FMOD::Channel* channel;
system->playSound(music, bgm, false, &channel);

Pass Through

Use this port to bypass the operating system's virtual speaker processing for non-diegetic sounds.

Below is a usage demonstration with error checking omitted for brevity:

FMOD::ChannelGroup *passthrough;
system->createChannelGroup("PASSTHROUGH", &passthrough);
system->attachChannelGroupToPort(FMOD_PORT_TYPE_PASSTHROUGH, FMOD_PORT_INDEX_NONE, passthrough);

FMOD::Channel *channel;
system->playSound(your_non_diegetic_sound, passthrough, false, &channel);

Known Issues

Performance Reference

This section is a companion for the CPU Performance white paper and serves as a quick reference of facts targeting this platform.

Format Choice

Each compression format provided in FMOD has a reason for being included, the below list will detail our recommendations for this platform. Formats listed as primary are considering the best choice, secondary formats should only be considered if the primary doesn't satisfy your requirements.

Channel Count

To give developers an idea about the costs of a particular format we provide synthetic benchmark results. These results are based on simple usage of the Studio API using recommended configuration settings.

Settings

Test Device

Results