FMOD Engine User Manual 2.03
FMOD is compiled using the following tools.
FMOD supports systems that provide ALSA v0.9.0rc4 or newer for the following architectures:
Substitute $ARCH with your desired architecture from the 'Compatibility' list above.
Core API library
Studio API library (used in conjunction with the Core API library)
FMOD defaults to using PulseAudio if available if no device is specified via System::setOutput. The environment variable FMOD_ALSA_DEVICE
can be used to override this behavior, causing FMOD to use ALSA by default. It will also select the device specified by the variable value, if found, by default. Device names are as specified by the output of aplay -L
.
Depending on the configuration of ALSA, a device that otherwise functions correctly may not be listed in the output of aplay -L
, and as a result won't be available to FMOD. If this is the case, you may need to either add a namehint to the device's .asoundrc
configuration file, or set defaults.namehint.showall
to on
in your ALSA configuration file /usr/share/alsa/alsa.conf
.
All threads will default to FMOD_THREAD_AFFINITY_CORE_ALL, it is not currently possible to override this with Thread_SetAttributes.
The relationship between FMOD platform agnostic thread priority and the platform specific values is as follows:
System::init returns FMOD_ERR_PLUGIN_MISSING:
This can happen if your machine is missing the ALSA library libasound.so.2
for the desired architecture, almost any version of it will be sufficient. Please note that if you are on an x86_64 platform running an x86 application using FMOD you will need the x86 version of ALSA installed also.
This section is a companion for the CPU Performance white paper and serves as a quick reference of facts targeting this platform.
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.
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.