Fmod Designer
Fmod Designer
USER MANUAL
http://www.fmod.org
Updated: June 08
FMOD DESIGNER
LEGAL NOTICE
The information in this document is subject to change without notice and does not
represent a commitment on the part of Firelight Technologies. This document is
provided for informational purposes only and Firelight Technologies makes no
warranties, either express or implied, in this document. Information in this document,
including URL and other Internet Web site references, is subject to change without
notice. The entire risk of the use or the results of the use of this document remains
with the user. Complying with all applicable copyright laws is the responsibility of the
user. Without limiting the rights under copyright, no part of this document may be
reproduced, stored in or introduced into a retrieval system, or transmitted in any form
or by any means (electronic, mechanical, photocopying, recording, or otherwise), or
for any purpose, without the express written permission of Firelight Technologies.
2005-2008 Firelight Technologies Pty. Ltd. All rights reserved.
Other product and company names mentioned herein may be the trademarks of their
respective owners.
USER MANUAL
TABLE OF CONTENTS
LEGAL NOTICE ............................................................................................... 2
CHAPTER ONE: FMOD DESIGNER............................................................... 11
WHAT IS FMOD DESIGNER? ........................................................................ 13
PLATFORM SUPPORT................................................................................... 13
CONTACT DETAILS ...................................................................................... 14
CHAPTER TWO: GETTING STARTED............................................................ 15
LEARNING THE INTERFACE.......................................................................... 17
OVERVIEW OF KEY TERMS ................................................................................................... 17
A HIERARCHY OF FMOD OBJECTS...................................................................................... 18
PROJECTS...................................................................................................... 32
CREATING A NEW PROJECT ................................................................................................. 32
LOADING A PROJECT ........................................................................................................... 32
SAVING A PROJECT ............................................................................................................... 33
CHOOSING A TARGET PLATFORM ..................................................................................... 33
WHY IS MY PLATFORM NOT AVAILABLE?.......................................................................... 33
DEVELOPING CONTENT FOR MULTIPLE LANGUAGES .................................................... 34
SETTING PROJECT PROPERTIES............................................................................................ 35
PROTECTING PROJECT DATA .............................................................................................. 35
CLEANING A PROJECT .......................................................................................................... 35
MERGING PROJECT DATA.................................................................................................... 36
BUILDING A PROJECT........................................................................................................... 36
ADVANCED BUILDING USING BUILD COMMANDS ........................................................ 38
CLOSING A PROJECT ............................................................................................................ 39
FMOD DESIGNER
EVENTS ......................................................................................................... 40
EVENT GROUPS .....................................................................................................................40
Adding a New Event Group ..............................................................................................40
Deleting an Existing Event Group .....................................................................................41
Setting an Event Group's Properties ..................................................................................41
EVENT CATEGORIES ..............................................................................................................41
Adding a New Event Category ..........................................................................................42
Deleting an Existing Event Category .................................................................................42
Setting an Event Category's Properties ..............................................................................43
MAINTAINING EVENTS .........................................................................................................43
Adding an Event to an Event Group..................................................................................43
Deleting an Event from the Event Group ..........................................................................44
Adding an Event to a Event Category................................................................................44
Setting an Event's Properties .............................................................................................44
EVENT LAYERS ........................................................................................................................45
What is a Layer? ................................................................................................................45
Adding a Layer...................................................................................................................46
Deleting a Layer ................................................................................................................46
Modifying Layer Properties ...............................................................................................46
PARAMETERS ................................................................................................ 53
WHAT IS A PARAMETER?.......................................................................................................53
AUTOMATIC PARAMETERS ...................................................................................................55
ADDING A PARAMETER ........................................................................................................55
MODIFYING THE PROPERTIES OF A PARAMETER..............................................................55
ASSIGNING A PARAMETER TO AN EVENT LAYER ..............................................................56
EFFECTS ........................................................................................................ 57
ADDING AN EFFECT ..............................................................................................................57
SELECTING THE EFFECT PROPERTIES...................................................................................58
SETTING EFFECT PROPERTY..................................................................................................58
CREATING AN EFFECT ENVELOPE........................................................................................59
REMOVING AN EFFECT ENVELOPE POINT .........................................................................60
CHANGING THE COLOUR OF AN ENVELOPE ...................................................................60
REMOVING AN EFFECT .........................................................................................................60
USER MANUAL
SOUND DEFINITIONS.................................................................................. 62
CREATING FOLDERS ............................................................................................................. 63
SETTING SOUND DEFINITION PROPERTIES....................................................................... 63
DELETING SOUND DEFINITIONS AND FOLDERS.............................................................. 64
REVERB ......................................................................................................... 68
ADDING AN EMPTY REVERB DEFINITION.......................................................................... 68
REVERB DEFINITION PROPERTIES ....................................................................................... 68
Preset Reverb Properties ................................................................................................... 69
User-Defined Reverb Properties ....................................................................................... 69
DELETING A REVERB DEFINITION ....................................................................................... 70
AUDITIONING ............................................................................................. 71
BASIC AUDITIONING............................................................................................................ 71
USING THE AUDITION TOOLS ............................................................................................ 72
USING THE RECORD MODE ................................................................................................ 72
Setting the Recording Directory........................................................................................ 72
Starting and Stopping the Record Mode........................................................................... 73
Rendering Multiple Events to Audio Files ........................................................................ 73
NETWORK AUDITIONING ................................................................................................... 74
CREATING WITH A NEW NETWORK CONNECTION ........................................................ 75
CONNECTING WITH EXISTING CONNECTION DETAILS.................................................. 75
AUDITIONING VIA THE NETWORK .................................................................................... 76
DISCONNECTING FROM THE NETWORK .......................................................................... 76
DELETING CONNECTION DETAILS ..................................................................................... 77
USER PROPERTIES......................................................................................... 77
CREATING A USER DEFINED PROPERTY............................................................................. 77
EDITING A USER DEFINED PROPERTY ................................................................................ 78
DELETING A USER DEFINED PROPERTY ............................................................................. 78
LOCALIZATION ............................................................................................ 79
MAINTAINING LANGUAGES................................................................................................ 79
Selecting a Language ........................................................................................................ 80
Adding a language ............................................................................................................ 80
Editing a language ............................................................................................................. 80
Removing a language........................................................................................................ 80
FMOD DESIGNER
SETTING THE PREFIX..............................................................................................................81
MISSING FILES AT BUILD TIME .............................................................................................81
USER MANUAL
FMOD DESIGNER
USER MANUAL
WHAT ARE START SEGMENTS? .......................................................................................... 182
WHAT ARE STOP SEGMENTS?............................................................................................ 183
TARGET CONDITIONS ........................................................................................................ 183
What is 'Targeting a Theme'? ......................................................................................... 183
What is 'Targeting a Conclusion'? .................................................................................. 183
FLOURISHES (CONCURRENT THEMES)............................................................................. 184
10
FMOD DESIGNER
PLAYLIST PROPERTIES .........................................................................................................203
USER MANUAL
1
This manual contains instructions,
reference material, performance optimizations and tips on getting the best results using the
FMOD Designer software. In this chapter an introduction to FMOD designer is given.
Key topics in this chapter.
A description of FMOD Designer
Platform Support
Contact Details
11
12
FMOD DESIGNER
This page is intentionally blank
USER MANUAL
PLATFORM SUPPORT
The FMOD Designer software is currently available for the following platforms:
Microsoft Windows series
Macintosh OS X
FMOD Designer can create content for the following platforms:
13
14
FMOD DESIGNER
CONTACT DETAILS
The FMOD team can be contacted via the following channels:
USER MANUAL
In this chapter, the FMOD Designer user interface is explored. To help users navigate
through all the FMOD Designer functionalities, a suggested workflow philosophy is
explained and the basic operations of the software are described.
Key topics in this chapter.
Exploring the basic operations of FMOD Designer
Learning the FMOD Designer User Interface
The functionality provided by the main tabs in the FMOD
15
16
FMOD DESIGNER
This page is intentionally blank
USER MANUAL
Descrip tio n
Workspace
Project
Event Category
Event Group
Event
Event Layer
Parameter
Effect
Sound Definition
Oscillator
Wave bank
Reverb
Note: Key terms and objects used exclusively in the Interactive Music Tab are
explained Chapter 9.
17
18
FMOD DESIGNER
EVENT
LAYER
PARAMETER
EFFECT
SOUND DEFINITION
WAVETABLE
OSCILLATOR
WAVEBANK
REVERB
USER MANUAL
In the next section, the role of each tab will be briefly described.
19
20
FMOD DESIGNER
As stated in the first chapter, it is the role of the Sound Designer to create the events
and define the behavior of the sound in the game.
The Programmer is responsible for starting and stopping events, as well as, updating
event data from the game code. While the Programmer updates values at run-time,
the audio content and behavior is defined within the Sound Designer's event.
Consider the following example of a first-person shooting game. Each time an ingame player fires a weapon, a sound event (or events) is triggered.
The Sound Designer is responsible for tasks such as:
The 'Events' tab is responsible for creating and organizing events. Event definitions
are created using the 'event hierarchy view', under the Events tab. This tab can be
seen in the figure on the next page.
USER MANUAL
21
22
FMOD DESIGNER
Note:
USER MANUAL
The parameter bar is the cause of much confusion to new users. While the parameter
bar looks very much like a 'timeline' in its default setting the bar has no relationship to
the time domain. Instead, the bar simply represents the current value of a parameter.
Parameters are typically used to represent variable data from the game engine such
as engine RPM or the distance between the listener and the location of the sound
emitter. Using parameters a Sound Designer can create dynamic and non-linear
sequenced sound events from otherwise static samples.
Note:
Audio files can be dragged from an operating system
window
to
FMOD
Designer
and
dropped
into
event
23
24
FMOD DESIGNER
USER MANUAL
25
26
FMOD DESIGNER
USER MANUAL
27
28
FMOD DESIGNER
USER MANUAL
In this chapter, the instructions for all basic FMOD Designer operations will be discussed.
29
30
FMOD DESIGNER
This page is intentionally blank
USER MANUAL
WORKSPACES
WHAT IS A WORKSPACE?
A workspace allows Sound Designers to open multiple projects simultaneously within
FMOD Designer. A workspace can be thought of as a list of open project files. Sound
Designers may save and load these lists as needed. Workspace data is saved as a
FMOD Designer workspace file, with the extension '.fdw'.
As previously stated, while multiple projects may be opened within a workspace, each
project is saved to its own project file (.fdp) and can be used independently from a
particular workspace.
When multiple projects are opened within FMOD Designer, the Sound Designer may
choose the current project using the 'Project' dropdown list, shown in the figure
below.
Figure 10: Selecting the project 'LevelOne' from the dropdown list
OPENING A WORKSPACE
To open a workspace:
1
Select 'File' from the main menu. A menu dialog should appear.
appear.
3
Press 'OK'. The workspace and project data will now be loaded. Sound
Designers can check the message log (by pressing the [CTRL] key + L) to
ensure all data was loaded successfully.
Projects opened within the workspace can now be selected using the
'Project' dropdown list.
SAVING A WORKSPACE
The list of open projects within a workspace can be saved to disk using the 'Save
Workspace' or 'Save Workspace As' menu items under File from the main menu.
Choosing to save a workspace will also cause all projects within the workspace to be
saved.
To save a workspace to a new file:
1
Select 'File' from the main menu. A menu dialog should appear.
31
32
FMOD DESIGNER
2
appear.
3
Press 'OK'. The workspace and all open projects will now be saved to
their respective files.
CLOSING A WORKSPACE
Closing a workspace causes all open projects to be closed and removed from the
current workspace's list of projects. To close a workspace:
1
Select 'File' from the main menu. A menu dialog should appear.
PROJECTS
CREATING A NEW PROJECT
To create a new project, complete the following steps:
1
Enter the name and a location of the FMOD designer project (.fdp) file.
The created '.fdp' file will contain all the data to be exported to the game. The location
of any audio files relating to this project will be relative to the location of this file.
LOADING A PROJECT
To load an existing project file:
1
appear.
3
USER MANUAL
SAVING A PROJECT
To save a new project:
1
Select the menu option 'Save As'. A file selection dialog screen should
appear.
'Build directory'. This property can be found in the 'Events' tab in the 'Project
Property' panel.
'Compression'. This property can be found in the 'Wave banks' tab for each
wave bank.
'Disable Layer icon'. This icon is found in the Event Editor' tab, on the Layer
panel.
'Layer Effects'. The special effects played on layers can be enabled or disabled
on a 'per-platform' basis using the 'Enabled effect' checkbox. DSP effects not
supported by a platform are automatically disabled.
33
34
FMOD DESIGNER
Console platforms such as PS2, PSP, PS3, Xbox, Xbox 360, Gamecube etc, will only
appear in the platform list box when the relevant SDK is included. For example,
FMOD Designer will automatically detect the Microsoft XDK and make the Xbox and
Xbox 360 available in the platform dropdown list.
FMOD Designer will also detect if the FMOD programmer API for a particular platform
is installed. If a console's FMOD programmer API is installed after FMOD designer,
the installer for the programmer API will automatically enable the platform to be listed
in the FMOD Designer's platform dropdown list.
Note:
Unfortunately FMOD Designer cannot list all platforms by
default.
Some
platforms
require
Non-Disclosure
USER MANUAL
Move to the 'Properties' panel that has the name of the current project.
] button in the
] button in the
CLEANING A PROJECT
Before a project is exported to a game title, all unused media and data that are not
used should be removed. This procedure is referred to as 'cleaning the project'.
FMOD Designer provides an automated method to remove unused sound definitions
and audio media. To clean the project:
1
35
36
FMOD DESIGNER
2
Select 'Yes'.
All unused sound definitions and waveforms will now be removed from
the project.
Open the target project '.fdp' file by selecting 'File' then 'Open...' from
the main menu. An open file dialog should appear.
To import event data from another project, select 'File' then 'Merge...'
from the main menu. A file selection dialog should appear.
If the source audio cannot be found, FMOD Designer will prompt for the
new location. Press 'OK' from the warning message, then select the
source audio file location using the file selection dialog window.
The new data has been merged into the target project file.
Note: If an existing project tries to import duplicate data from a merging project file,
the merging data will be ignored and the existing data will remain unchanged.
BUILDING A PROJECT
Once all the content has been created, the Sound Designer must process their data
into a form that can be exported to the game title. The process is known as 'Building
the Project'. The output files of the build process are placed in the directory specified
in the project property 'Build Directory'. The build process must be repeated for each
target platform.
The Programmer (and game title) requires the following files:
The .FEV file. This file contains all the definitions and properties for the events,
event groups, sound definitions, etc. This file contains no audio data.
All .FSB files. Each .FSB files represents one of the wave banks defined in the
project. The .FSB file is a binary file that contains the audio data in the format
specified in the wave bank definition.
The .TXT file [Optional]. This file is intended to be a project reference guide for
the Programmer. It contains a list of all the major objects used in the project,
along with index, range and important property values.
The .H file [Optional]. This file is a source code header file that allows the
Programmer to call the EventGroup::getEventByID() method, which uses a
numbered index, rather than the EventGroup::getEvent() method.
USER MANUAL
The building process will also create cache files, used to speed up any subsequent
build of the project. The Programmer does not require these files.
Before building a project:
1
Complete all the desired events, sound definitions and wave bank contents
to be exported to the game title.
Select the language to build from the 'Language' dropdown list. Ensure all
audio files for the language are in the correct location (as specified by the
wave bank's 'Filename Prefix' attribute).
Click on the 'Events' tab and ensure the 'Build Directory' in the 'Project
Properties' panel is set to the desired location.
To build a project:
1
Select the option 'Build project '. A window dialog should appear.
Select the desired language from the 'Language' drop-down list and the
target platform from the 'Platform' drop-down list.
If you require a listing of the files within the sound bank (useful if you
intend to re-build the .fsb file using the fsbankex utility) click the 'Build
wave bank listings (.LST)' checkbox.
Select (or deselect) the wave banks to be created using the checkboxes in
the 'Select which wave banks to build' panel.
To see compilation messages during the build process, press the 'Output'
button.
The newly created files will now be in the directory specified in the project
property 'Build Directory'.
37
38
FMOD DESIGNER
ALERT:
When
building
projects
using
XMA,
some
rare
Macro
Description
ProjectName
ProjectDir
AudioSourceDir
BuildDir
BuildFiles
USER MANUAL
CLOSING A PROJECT
To close the current project:
1
39
40
FMOD DESIGNER
EVENTS
Once a project file has been created and the project properties set, then construction
of the event content begin. Typically a project will contain:
An event group
An event
A layer
One or more audio files
One parameter
EVENT GROUPS
As mentioned in Chapter Two, events are the sounds that are triggered by the actions
occurring within the game. A project can add as many events as required. To provide
organization and efficiency when loading data into memory during game execution,
event groups are required.
Each event group contains events or other event groups, making it possible to create a
full hierarchy to organize your game audio. All events and event groups are visible in
the Event Hierarchy tree view, as shown in the figure below.
Right click the Hierarchy tree view. A menu dialog should appear (as
shown in the figure above).
USER MANUAL
The new event group name should appear in the hierarchy tree view and above the
properties panel.
Right-click on the Event Group (in the Hierarchy tree view) to be deleted.
A menu dialog should appear.
Select the menu item 'Delete'. A dialog window will ask for confirmation.
When selected, the properties of the 'event group' will be displayed in the
lower panel.
Enter the desired value into the 'Name', 'Notes' or 'User Property' value cell
and press the [enter] key.
When changing the name property, the new event group name should appear in the
hierarchy tree view and above the properties panel.
EVENT CATEGORIES
Events can be organized into categories as well as groups. The event categories
hierarchy can be seen on the Events tab (click on the 'Category' tab).
Unlike event groups, an event category allows the Sound Designer to change the
volume and pitch of all events within the category in one location. This is very useful
when fine-tuning the relative mix of many events.
There are two default event categories that cannot be deleted - the master and music
categories. The master category represents the top level of the hierarchy and
contains all other categories.
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
41
42
FMOD DESIGNER
suspend the playback of audio in the music category and instead use the end-user
supplied music tracks.
When the end-user disables their own music from the dashboard, FMOD will
automatically resume the playback of the events in the music category.
All events are visible in the event category tree view, as shown in the figure on the
next page.
Right click the Category tree view. A menu dialog should appear.
a name to be entered.
4
The new event category name should appear in the category tree view and above the
properties panel.
Select the menu item 'Delete'. A dialog window will ask for confirmation.
USER MANUAL
Enter the desired value into the property value cell and press the [enter]
key. All Event category properties are explained in Chapter Four,
Reference Guide.
When changing the name property, the new event category name should appear in
the hierarchy tree view and above the properties panel.
MAINTAINING EVENTS
Starting a new project will create a default event group that contains a default event.
This and any other event can be selected from the Hierarchy tree view.
Tip:
Multiple
events may
be selected and
should appear.
updated at the
same time.
Use shift-click to
block select or ctrlclick to individually
select properties.
43
44
FMOD DESIGNER
Right-click on the Event (in the Hierarchy tree view) to be deleted. A menu
dialog should appear.
Select the menu item 'Delete'. A dialog window will ask for confirmation.
Click (all hold) the event to move. Drag and drop the event into desired
event category.
To expand the Event Group, double-click the Event Group (from the Event
Hierarchy Tree) in which the event is placed.
USER MANUAL
45
46
FMOD DESIGNER
'The mute icon'. When clicked, the mute icon will silence all 'Sound Definition
Instances' on the layer. This is useful when auditioning events with multiple
layers. Note: Muted layers are locked from modification.
'The sound lock icon'. When clicked, the sound lock icon will disable any
repositioning of the 'Sound Definition Instances' on the layer.
'The effect lock icon'. When clicked, the effect lock icon will disable any
changes being made to the effects on the layer.
Adding a Layer
A layer can be added in the following way:
1
Right-click on the layer panel and select the menu option 'Add layer'.
Deleting a Layer
To delete an existing layer:
1
Right-click on the layer name and select the menu option 'Delete layer'. A
dialog window for confirmation should appear.
Press 'Yes'.
USER MANUAL
2
Right-click on the layer name (the default layer is called 'layer00') and
select the menu option 'Layer properties
'.
Change the 'Name', 'Control Parameter', and 'Priority' values to the desired
value. Note: Only parameter set as the 'control parameter' determines
which sound definition on the layer is audible.
Press 'OK'.
If the layer's name is changed, the interface should now display the new
name.
47
48
FMOD DESIGNER
Select the menu option 'Add sound'. A dialog window should appear.
Click the 'New wavetable' button. A dialog window to select files should
appear.
Select an audio file (or files) to add to the sound. Press 'OK' to add the
files.
[Optional] The added files can be auditioned by selecting the file and
pressing the play button.
The sound definition should appear as a white box inside the layer.
Note:
It is important to realize that a 'sound definition' has been
added to the event not an audio file!
USER MANUAL
To add an oscillator:
1
Select the menu option 'Add sound'. A dialog window should appear.
Click the 'New oscillator' button. A dialog window to configure the signal
should appear.
Select the wave type and the frequency of the signal in Hertz. Each wave
type is described in Chapter Four: Reference Guide.
[Optional] The added files can be auditioned by selecting the file and
pressing the play button.
49
50
FMOD DESIGNER
2
Select the menu option 'Add sound'. A dialog window should appear.
[Optional] The added files can be auditioned by selecting the file and
pressing the play button.
An instance of the sound definition will appear as a box inside the layer.
If not selected, view the Event in the Event Editor tab by double-clicking
on the Event in the hierarchy tree view under the Events tab.
will appear.
4
Modify the properties value to the desired setting. Each property in this
dialog window is discussed in detail in Chapter Four: Reference Guide.
[Optional] Press the play button in this dialog screen to audition the
property changes made to the audio.
Move the mouse pointer to the left or right vertical edge of the instance
box to be resized.
USER MANUAL
4
Extend (or reduce) the size of the box with a left or right movement.
Press and hold the mouse button on the instance box to be repositioned.
Using the mouse, click (and hold) the top border of the sound instance
object.
While holding down the mouse button, drag the mouse downwards. A
horizontal blue line should appear and follow the mouse pointer down.
To change the volume position, click (and hold) the horizontal blue line
and drag it to its new position.
51
52
FMOD DESIGNER
Click (and hold) the second instance and overlap the first instance, at the
point where the crossfading should begin.
Once the instances are overlapped, two blue lines representing the volume
change of each instance should appear. This is demonstrated in the figure
below.
The type of crossfade can also be specified. The type of crossfade varies
the relative rates of change in volume between the two instances. This is
done by right-clicking the cross faded section. A dialog window should
appear.
USER MANUAL
7
Place the mouse over the menu option 'Crossfade type', a sub-menu
should appear.
The sound of the crossfade is not just influenced by the crossfade type but also by the
size of the overlap. The size of the overlap must be sized and positioned appropriately
in relation to the parameter value. Parameters are explained later in the chapter.
appear.
4
Select the new sound definition and press the 'OK' button.
DELETING AN INSTANCE
To delete a sound definition instance:
1
Select 'Yes'.
PARAMETERS
WHAT IS A PARAMETER?
An event parameter is a structure created by the Sound Designer to:
To select which sound instance(s) to play
Manipulate an effect or sound property during run-time.
53
54
FMOD DESIGNER
For example, an event simulating a car engine noise might use a parameter with the
name 'rpm' with a range of 0 to 10,000. As the in-game engine revs harder, the 'rpm'
parameter changes, signaling the event to use a different sound definition to simulate
the change in engine noise.
Parameters are optional. If an event does not need to be controlled by the game after
it has started, parameters can be ignored. Most events in a game behave this way,
especially simple one-shot sounds. Parameters must be manually added by the Sound
Designer or included in an event template. Parameters are not included in an event
by default.
[N ote: Some older versions of FMOD Designer do add a default parameter called
'param00' to new events]
The effect of a parameter change on the audible sound is specified at design-time,
providing the Sound Designer near complete control of the audio. The Programmer is
only responsible for providing the parameter's value in real-time (during the game's
execution).
Common examples of parameter use would be, controlling the volume of the sound,
changing the pitch of the sound, and setting the 3D position of the sound.
In FMOD Designer, a parameter is visible as a 'ruler' above the layers in the Event
Editor screen. The Sound Designer may specify the range and unit dividers displayed
for each parameter. By default, the range is 0.0 to 1.0 but this can be changed to
whatever the Sound Designer desires. This is shown in the figure below.
USER MANUAL
AUTOMATIC PARAMETERS
Within FMOD there are three special parameters that are automatically updated by
the FMOD engine. These parameters do not require programmer intervention to
update their values. Instead the sound designer must set the event 'Mode' property
to 3D and add one or more of the following parameters. The automatic parameters
are:
3D Distance Represents the distance between the listener and the event.
This can be used to implement custom roll volume off and (or) 2D/3D pan
morphing.
3D Event Angle Represents the absolute angle between the event's direction
and the location of the listener (ranging 0 to 180). This can be used to
implement custom cone roll off behavior.
3D Event Angle Represents the angle between the listener's direction and
the location of the event (ranging -180 to 180). This can be used to
implement custom head related transfer functionality.
To add an automatic parameter, right-click the parameter panel and select the desired
3D parameter to add.
ADDING A PARAMETER
To add a parameter:
1
If not already selected, view the Event in the Event editor by doubleclicking on the Event in the hierarchy tree view under the Events tab.
Right-click on the parameter bar (the panel above the 'ruler'). If there are
currently no parameters, you can right-click on the message Right-click
here to add an event parameter. A menu dialog will appear.
Press 'OK'.
Right-click on the parameter bar (the panel above the ruler). A menu
dialog will appear.
55
56
FMOD DESIGNER
4
Press 'OK'.
The selected parameter will now act as the 'control parameter' for this
layer.
'.
USER MANUAL
EFFECTS
FMOD provides a number of free DSP (Digital Signal Processing) effect plug-ins.
These plug-ins process the digital signal to change the characteristics of the audio in
real-time. FMOD includes effects such as low pass filtering, distortion, flanger, etc.
Event layers can use one or more DSP effects the only limitation is the amount of CPU
power available. Each effect placed on a layer may be individually enabled or
disabled on a per platform basis. To do this, select the desired platform using the
platform dropdown list and then set the 'Enabled effect' checkbox to the appropriate
on or off value
A complete reference to the FMOD effects is given in Chapter Four, Reference Guide.
ADDING AN EFFECT
An effect can be added to layer by:
1
Select the menu option 'Add effect'. A dialog window should appear.
The effect parameter should appear in the Layer panel and a parameter
vector is also shown.
Each visible effect parameter is designated a color. In the figure below, the volume
effect parameter is set to 50% (the value of effect parameter is displayed as a
horizontal red line)
57
58
FMOD DESIGNER
1
Apply the effect by right-clicking the target layer. A menu dialog should
appear.
Any effects parameter should appear in the Layer panel and a parameter
vector shown.
appear.
3
Press 'OK'.
The effect parameters will now be visible within the layer on the Event
Editor tab.
Not all effects have multiple properties. A comprehensive guide to FMOD effects can
be found in Chapter Four, Reference Guide.
Clicking on the parameter value box (to the left of the parameter name).
A vertical slider should appear.
To make the vertical slider disappear simply click on the layer space.
USER MANUAL
Right-click on the line representing the effect property. The color of the
line is denoted in the effect property list in the Layer Panel. A menu dialog
should appear.
A point will appear on the effect envelope. Using the mouse, grab the
point and move it to the desired position. Moving the point left or right
changes the effect parameter's relationship with the event parameter,
while moving the point up or down changes the parameter value.
The figure below demonstrates an effect envelope that produces a dynamic volume
change. As the event parameter moves from 0 to 0.3, the volume effect property
changes from approximately 50% to 100%.
Linear
Logarithmic
Flat Middle
Flat Ended
Right-click the point in the envelope effect in the Layer. A menu dialog
should appear.
Select the curve shape desired. For example, Curve Shape: Logarithmic.
59
60
FMOD DESIGNER
3
The transition between the selected point and the next point on the
envelope will change accordingly.
appear.
4
Select the desired color from the color palette and press the 'OK' button.
REMOVING AN EFFECT
To remove an effect from a layer:
1
EVENT TEMPLATES
To increase workflow and reduce repetitive actions, FMOD Designer provides 'Event
Templates'. Event templates allow the Sound Designer to create their own preset
events or starting points for events. For example, a template could be created as a
starting point for gunshot events, car events, etc.
Each event created using the template will share characteristics such as event
properties, layers and effects. The Sound Designer can even choose which event
properties are part of the template!
USER MANUAL
Note: Templates only operate at the project level. Sound Designers cannot create a
single template for all projects within the workspace.
CREATING A TEMPLATE
Before a template can be created, an event must be made. This event will serve as
the starting point for the derived events.
A template is created using the following steps:
1
Click on the event that will become the template, in the 'Event Hierarchy'
tree. The event properties should appear in the 'Event Properties' panel.
Click on the [
Click on the 'is a template' radio button. The template properties panel
The event will now display a template icon in the 'Event Hierarchy Tree.
61
62
FMOD DESIGNER
2
Right-click on the 'Event Group' that will hold the event, from the 'Event
Hierarchy' tree. A dialog menu should appear.
Click on the 'use this template' radio button. The template drop-down list
should become enabled.
The newly created event will now use the same properties, number of
layers and effects as defined in the event template.
Click on the 'Edit' option in the main menu. A dialog menu should appear.
All changes to the event template have been applied to the derived events.
SOUND DEFINITIONS
A sound definition is more than just an audio file or collection of audio files and
oscillators. Using the correct properties, sound definitions can be used to add
dynamic or random behavior to event playback. Using sound definitions to create
randomized behavior is demonstrated in later chapters.
Sound Definitions can contain:
The purpose of the first two categories has been explained in earlier sections.
Programmer sounds and don't play entries must be explained further.
Programmer sounds allow the Sound Designer to create sound definition entries that
do not specify the source audio filename at design time. Instead the Programmer
must supply the filename at runtime using a callback. A programmer sound entry is
useful when using a large amount (10,000) of audio files and an algorithm to
USER MANUAL
determine which audio file to use. Using a single event with a sound definition
containing a programmer sound entry is a very memory efficient method for handling
large amounts of dialogue audio. This is discussed in greater detail later in the
manual.
The 'Don't play' entry allows the Sound Designer to insert silent entries into a sound
definition. These entries are useful when combined with random entry selection. This
allows the Sound Designer to add greater variation or randomness to dynamic events.
CREATING FOLDERS
A typical game title may use upwards of a hundred (some even use more than a
thousand) sound definitions. To keep this number of sound definitions manageable,
FMOD Designer provides 'Sound Definition Folders'.
To create a 'Sound Definition Folder':
1
appear.
4
Enter the desired name of the folder and press the 'OK' button.
The sound definition property will now display the new value.
63
64
FMOD DESIGNER
USER MANUAL
WAVE BANKS
Wave banks represent the organization of the final package of audio data that is
exported from FMOD Designer to the game title.
The new bank will appear in the 'Wave Bank List' panel.
Right-click on the wave bank to set as current, from the 'Bank List' panel.
A menu dialog should appear.
The wave bank icon should turn from blue to red, indicating it is now the
current bank.
65
66
FMOD DESIGNER
Click on the wave bank to edit, from the 'Bank List'. The properties should
appear in the 'Wave Bank Properties' panel.
Click on the property to change, and set the 'Value' cell to the desired
value. If the value property requires text input, press the [enter] key.
Create a wave bank and set its properties. These wave bank properties
will be used as the new default settings.
Right-click on the wave bank to use as default, from the bank hierarchy
tree. A dialog menu should appear.
Any wave banks that are added from this point will be initialized with
these properties.
USER MANUAL
The second function applies the properties of one wave bank to all the other banks.
To do this:
1
Right-click on the wave bank (with the desired properties), from the bank
hierarchy tree panel.
Select the option 'Apply properties to all exist wave banks'. A confirmation
dialog should appear.
Click on the wave bank that contains the file to transfer, from the bank
hierarchy tree.
Select the file to transfer (or select multiple files using [SHIFT]+Click) and
drag and drop the file (or files) into the desired wave bank.
Right-click on the wave bank to be deleted from the bank hierarchy tree
panel. A menu dialog should appear.
The wave bank should disappear from the bank hierarchy tree.
67
68
FMOD DESIGNER
REVERB
The 'Reverb' Tab makes it possible to define the reverb used in the game title. This
reverb should not be confused with the reverb DSP effect that is applied to individual
event layers. The DSP effects are used to apply reverb to individual events (or event
layers), whereas the reverb specified in this tab are used by the programmer and may
be applied to all events to simulate an environment.
For example, when the game character enters a cave, the 'scary cave' reverb would be
applied to all sounds using the reverb defined in the 'Reverb' tab.
The 'Reverb' Tab allows the Sound Designer to define the reverb and audition the
reverb using the same sounds that will be used in the game title.
should appear.
4
USER MANUAL
Select the definition to edit from the 'Reverb Definition List' panel. The
properties of the definition should appear in the 'Reverb Definition
Properties' screen.
Press the dropdown list arrow and select the desired preset. A
confirmation dialog should appear.
The new properties should now appear in the 'Reverb Definition Properties'
screen.
69
70
FMOD DESIGNER
2
Select the definition to edit from the 'Reverb Definition List' panel. The
properties of the definition should appear in the 'Reverb Definition
Properties' screen.
Click on the property to be changed. Enter the new value in the 'Value' cell
and press the [enter] key. If this reverb definition was previously a 'preset
definition', the preset property will automatically change to 'User'.
The new property value should now appear in the 'Reverb Definition
Properties' screen.
Right-click the definition to delete from the 'Reverb Definition List' panel.
A menu dialog should appear.
The reverb definition should now disappear from the 'Reverb Definition
List' panel.
USER MANUAL
AUDITIONING
BASIC AUDITIONING
With a valid event, event layer and sound definition in place, the resulting audio can
be auditioned. The audio can be heard by pressing the play button.
71
72
FMOD DESIGNER
It is important to understand these tools are not exported to or used by the game title,
they are provided to help the Sound Designer in setting properties or auditioning
events using a simple GUI.
Each tool is discussed in detail in Chapter Four, Reference Guide.
'. A directory
Press the 'OK' button. The target directory has now been set.
USER MANUAL
Click 'Edit' from the main menu. A menu dialog should appear.
Note: Events or sound definitions that use loops will not be rendered, as
the Recording Mode is designed for one-shot sounds, and will ignore any
looped audio.
Click 'Edit' from the main menu. A menu dialog should appear.
Click 'Edit' from the main menu. A menu dialog should appear.
Select the event(s) to render from the 'Event Hierarchy Tree View'. [CTRL]
+ click or [SHIFT] + Click can be used to select multiple events.
73
74
FMOD DESIGNER
7. Enter the number of recording passes required for each event. The Sound
Designer will generally choose to record multiple variations if the event
contains randomized behavior, such as randomized volume, pitch or sound
definition playback. Press the [enter] key. A progress dialog should
appear.
8
NETWORK AUDITIONING
When using FMOD Ex and FMOD Designer, it is possible to audition properties setting
from inside the game title whilst running on the target platform. This allows Sound
Designers to hear their events, effects and sound definitions on the target platform,
therefore removing any guess work and time needed to fine-tune balances, effects,
etc.
To establish a connection with a console (or FMOD AuditionClient), the programmer
must first enable the audition network from the console or PC using the FMOD Ex
engine. For more information about this, please refer to the FMOD Ex API
Documentation.
Developers of PlayStation3 and Xbox 360 titles may also use the ready-made Audition
Client application to establish a network connection between FMOD Designer and the
target console.
USER MANUAL
Enter the IP address of the target machine in the 'IP Address' field.
Press the 'Connect' button. This will save the connection details.
75
76
FMOD DESIGNER
USER MANUAL
appear.
3
Press the 'Delete' button. The connection details will now be deleted.
USER PROPERTIES
User Defined Properties are a provided by FMOD Designer to allow Sound Designers
to add their own properties to events and event groups.
Enter the 'name' and 'description', then select the data 'type' from the Userproperty frame.
77
78
FMOD DESIGNER
Select the event (or event group) with the user property to edit.
Edit the 'name' and 'description', or 'type' from the User-property frame.
USER MANUAL
LOCALIZATION
As more and more games are released worldwide, Sound Designers find themselves
handling content for each language of the target markets.
How can a Sound Designer work with multiple languages?
Previously this situation required the Sound Designer to duplicate their project work
for each language. Such redundancy slows the Sound Designer's workflow and is not
a productive use of their time.
Localization within FMOD Designer eliminates the need for duplicate event data.
From within the application, the Sound Designer can construct events using a primary
language, and then easily substitute secondary languages when auditioning events or
building the project's FSB files.
This section details FMOD Designer localization support and provides instructions on
its use.
MAINTAINING LANGUAGES
FMOD Designer implements localization control using filename prefixes to identify the
language the file belongs to.
For example, if our primary language is English and the project uses the following
filenames:
hello.wav
howistheweather.wav
goodbye.wav
All subsequent languages will derive their filenames and location from these
filenames. Continuing this example, the secondary language is German. In this case
the German versions of the files will be identified with the prefix 'de_'. The following
files must be provided:
de_hello.wav
de_howistheweather.wav
de_goodbye.wav
Some users may choose to keep the different language files in different directories.
This can be done using a prefix such as 'german/', which would require the files to be
placed in a 'german' directory. Finally, both a directory and filename prefix can be
used together in a prefix, such as 'german/de_'.
Projects must contain at least one language, (acting as a 'primary' language). When
starting a new project, the primary language is set to 'default'. Whilst the primary
language does not require a prefix, one may be used. If the primary language has a
prefix, it is removed before the secondary language prefix is added.
79
80
FMOD DESIGNER
Selecting a Language
The target language is selected using the 'Language' dropdown list. Simply click the
down arrow, and select the language from the menu that appears.
Adding a language
To add a target language, complete the following steps:
1
Enter the new language name into the 'Name' text field.
Press 'OK'.
'.
Editing a language
To rename a target language, complete the following steps:
1
Enter the new language name into the 'Name' text field.
Press 'OK'.
'.
Removing a language
Removing a language will also delete any wave bank language prefixes attached to
the language. To delete a target language, complete the following steps:
1
'.
USER MANUAL
3
Press 'OK'.
Enter the desired prefix into the 'Filename prefix' cell and press the [enter]
key.
The path and (or) filenames of the waveforms inside the wave bank should change
accordingly.
Prefixes are set on a per wave bank basis. This allows the Sound Designer maximum
flexibility when associating wave banks with languages.
For example, imagine we are creating a sport title in both English and German. The
audio, in part, includes a 'commentary' wave bank featuring the vocal talent and the
'on-court' environment sounds wave bank. While the 'commentary' wave bank would
require both English and German versions of the audio files, the audio for the 'oncourt' wave bank could be the same for both language versions.
In this situation where the audio is shared, the wave bank 'Filename prefix' attribute
for both languages should be set blank. This will ensure both languages use the same
files.
81
82
FMOD DESIGNER
This page is intentionally blank
USER MANUAL
This chapter provides a comprehensive reference guide to FMOD Designer. Readers are
encouraged to read this section before attempting to produce complex soundscapes. The
purpose of this chapter is to provide a simple explanation for each property, option box,
menu item or effect contained in FMOD Designer.
Key topics in this chapter.
Reference guide for all screens
Reference guide for all property dialog windows
Reference guide for FMOD effects
83
84
FMOD DESIGNER
This page is intentionally blank
USER MANUAL
Project Properties
Property
Sub-Properties
Name
[none]
Encryption
key
[none]
Audio source
directory
[none]
Build
directory
[none]
Pre build
commands
[none]
Post build
commands
[none]
Pre save
commands
[none]
Post save
commands
[none]
Notes
[none]
Sub-Properties
Name
[none]
Volume
[none]
Pitch
[none]
Notes
[none]
Sub-Properties
Name
[none]
Notes
[none]
User
properties
[none]
85
86
FMOD DESIGNER
Event Properties
Property
Sub-Properties
Name
[none]
Volume
[none]
Volume
Randomization
[none]
Pitch
[none]
Pitch units
[none]
Pitch
Randomization
[none]
Priority
[none]
Max playbacks
USER MANUAL
Property
Sub-Properties
Max playbacks
behavior
Mode
Steal oldest
Steal newest
Steal quietest
Just fail
3D Rolloff
[3D events only]
87
88
FMOD DESIGNER
Property
Sub-Properties
Logarithmic
Linear
Custom
3D Min distance
[3D events only]
USER MANUAL
Property
Sub-Properties
3D Max distance
Head Relative
3D Position
Randomization
[3D events only]
89
90
FMOD DESIGNER
Property
Sub-Properties
3D Cone
3D Cone outside
angle
[3D events only]
3D Cone outside
volume
USER MANUAL
Property
Sub-Properties
Speaker
LS
RS
LR
RR
LFE
[none]
[none]
Oneshot
[none]
Fadein time
[none]
Fadeout time
[none]
Spawn intensity
[none]
Spawn intensity
randomization
[none]
Template
[none]
Use template
[none]
Notes
[none]
91
92
FMOD DESIGNER
Property
Sub-Properties
User properties
[none]
USER MANUAL
Sub-Properties
Start position
[none]
Length
[none]
Start mode
Loop mode
Loop Count
[none]
Autopitch
enabled
[none]
93
94
FMOD DESIGNER
Property
Sub-Properties
Autopitch
reference
[none]
Autopitch at
min
[none]
Fine tune
[none]
Parameter Properties
Property
Sub-Properties
Name
[none]
Range
[none]
USER MANUAL
Property
Sub-Properties
Minimum Value
Maximum Value
Units
Ruler Spacing
Velocity
Loop Behavior
Seek speed
Keyoff on
silence
[none]
95
96
FMOD DESIGNER
Layer Properties
Property
Sub-Properties
Name
[none]
Control
parameter
[none]
Priority
[none]
USER MANUAL
Sub-Properties
Name
[none]
Spawn Time
Maximum
spawned sounds
Minimum Value
Maximum Value
[none]
Playmode
Volume
SequentialEventRestart
Random
RandomNoRepeat
Shuffle
ProgrammerSelected
[none]
97
98
FMOD DESIGNER
Property
Sub-Properties
Volume
randomization
[none]
Pitch
[none]
Pitch
randomization
[none]
3D Position
randomization
[none]
Notes
[none]
Sub-Properties
Waveform
[none]
Weight
[none]
Play Percentage
[none]
USER MANUAL
Sub-Properties
Name
[none]
Filename prefix
[none]
Bank type
Decompress into
memory
[none]
(PS3 only)
Compression
ADPCM
MP3
99
Property
Sub-Properties
MP2
XADPCM
(Xbox only)
VAG
(Sony Playstation2 and
PSP only)
GCADPCM
(GameCube, Wii only)
XMA
(xbox 360 only)
Disable Seeking
[none]
Enable
syncpoints
[none]
Compression
quality
[none]
Optimize sample
rate
[none]
Force software
[none]
Max Streams
[none]
[none]
USER MANUAL
Sub-Properties
Filename
[none]
Quality
[none]
[none]
Frequency
[none]
Bit depth
[none]
Channels
States the number of channels in the preoptimized audio file. This property also has the
abilities to route multi-channel wave bank
entries into preset speaker layouts. These
routes are useful in applications such as
interactive music, where the source audio may
be located on many channels, but should be
played to the front speakers. For more
information, see the tutorial 'Multi-channel
waveforms and effects'.
n x Mono
n x Stereo
Mono
Stereo
5.1
7.1
Sound type
[none]
File size
[none]
Used
[none]
Notes
[none]
XMA Filtering
[none]
101
Reverb Properties
Properties
Sub-Properties
Name
[none]
Reverb Preset
[none]
Room
[none]
Room HF
[none]
Room rolloff
[none]
Decay time
[none]
Decay HF ratio
[none]
Reflections
[none]
Reflect delay
[none]
Reverb
[none]
Reverb delay
[none]
Diffusion
[none]
Density
[none]
HF reference
[none]
Notes
[none]
USER MANUAL
103
Attribute
Sub-Properties
RPM Slider
[none]
RPM Smooth
[none]
Load Smooth
[none]
Load Scale
[none]
AUDITION 3D
The Audition 3D tool is specially designed to allow a Sound Designer to audition a 3D
event in a 3D space and hear the audible impact of parameter changes in real-time.
The Audition 3D tool is shown below.
USER MANUAL
The Audition 3D tool has the following attributes.
Attribute
Sub-Properties
Freq
Amp
Origin
Freq
Amp
Origin
[none]
Manual
Circle
Figure-of-eight
Ping Pong
Doppler
[none]
Zoom
[none]
Front/Back
Sliders
Left/Right
Sliders
Lock Freq +
Amp
Movement
Preset
SURROUND PAN
The Surround Pan tool is specially designed to allow a Sound Designer to select the
position of an event in the surround sound field using a Graphical User Interface,
rather than manually setting each channel volume independently.
105
Attribute
Sub-Properties
Position Cursor
[none]
Mode
7.1
LB
RB
Levels
USER MANUAL
Attribute
Add/Point point
at cursor
(button)
Sub-Properties
LFE
[none]
Delete point at
cursor (button)
[none]
CONE DESIGNER
The Cone Designer tool is specially designed to allow a Sound Designer to select the
inside and outside angle of a 3D cone using a graphical representation, rather than
manually setting each angle and outside level. For more information about the 3D
Cone, see the 3D Cone entry under the section Event Properties in this chapter.
The Cone Designer tool is shown below.
Attribute
Sub-Properties
Inside Angle
[none]
The inside angle of the cone and the field of sound that
will have full volume (no attenuation).
Outside Angle
[none]
Outside Level
[none]
107
Resource Usage
Volume
Volume
This property (specified in dB) represents the overall volume of the event layer.
Effect &
Properties
Pitch
Resource Usage
Pitch
USER MANUAL
Effect &
Properties
Resource Usage
Spawn
Intensity
Intensity
Ranging from 0 to100, this value scales the minimum and maximum spawn
times. The scaling factor is the average spawn time (max min /2) divided by
the Intensity Value (Note: the sound will not re-spawn when this value is 0).
Effect &
Properties
Resource Usage
Pan
Pan
This property specifies the desired position in the stereo field and ranges from
1.0 (left channel only) to 1.0 (right channel only).
Effect &
Properties
Resource Usage
Surround
Pan
Left / right
Pan
This property specifies the desired stereo position, ranging from 1.0 (left
channels only) to 1.0 (right channels only).
Front / back
pan
This property specifies the desired depth position, ranging from 1.0 (rear
channels only) to 1.0 (front channels only).
LFE send
This property specifies the amount of signal sent to the Low Frequency Emitter,
ranging from 0.0 (no signal) to 1.0 (full volume).
Effect &
Properties
Occlusion
Resource Usage
Reverb
109
Effect &
Properties
3D Speaker
spread
Resource Usage
Angle
Effect &
Properties
Reverb
Level
This property specifies how directional the sound is, ranging from 0 degrees
(highly directional) to 360 degrees (omni-directional).
Reverb Level
Effect &
Properties
Resource Usage
This property specifies the master volume of the reverb effect, ranging from
0db (full signal) to -55 db (approximately no signal).
Resource Usage
3D Pan
Level
3D Pan Level
This property ranges from 0.00 (which causes the sound to pan according to
2D channel levels) to 1.00 (which causes the sound to pan according to its 3D
position).
USER MANUAL
Effect &
Properties
Time Offset
Resource Usage
Time Offset
Effect &
Properties
Channel Mix
Resource Usage
Envelope
This parameter controls the volume of a channel (or group of channels) within a
waveform. This effect can be used in conjunction with waveform 'Channel'
property, found in the Wave bank tab.
FMOD
Lowpass
Resource Usage
Property
Description
Cutoff freq
This property represents the frequency at which the filter will start attenuating.
The cutoff frequency range is 10 to 22000Hz.
Resonance
This property alters the frequency response of the filter, by boosting the
111
Effect
Resource Usage
frequencies just below the cutoff frequency. The resonance property ranges
from 0 to 10.
Effect
FMOD IT
Lowpass
Resource Usage
Property
Description
Cutoff freq
This property represents the frequency at which the filter will start attenuating.
The cutoff frequency range is 10 to 22000Hz.
Resonance
This property alters the frequency response of the filter, by boosting the
frequencies just below the cutoff frequency. The resonance property ranges
from 0 to 10.
Effect
FMOD
Lowpass
Simple
CPU Usage
USER MANUAL
Property
Description
Cutoff freq
This property represents the frequency at which the filter will start attenuating.
The cutoff frequency range is 10 to 22000Hz.
Effect
FMOD
Highpass
Resource Usage
Property
Description
Cutoff freq
This property represents the frequency at which the filter will stop attenuating.
The cutoff frequency range is 10 to 22000Hz.
Resonance
This property alters the frequency response of the filter, by boosting the
frequencies just the above the cutoff frequency. The resonance property
ranges from 0 to 10.
Effect
FMOD Echo
Resource Usage
Property
Description
Delay
The property represents the time between the original sound and its echoed
reflection.
The delay can be set from 0ms to 5000ms.
Decay
The property represents the amount of echoed signal that is fed back into the
echo plug-in.
The decay can be set from 0% to 100%. Note: Using 100% decay will cause
an infinite feedback loop, meaning the echo will never stop.
Max
Channels
This property sets the number of channels (and memory allocation) to be used
from 0 (default) to 16. The value 0 represents FMOD's default polyphony, 1 =
mono, 2 = stereo, etc.
Dry Mix
This property represents the volume of the original sound, ranging from 0%
(fully attenuated) to 100% (no attenuation).
Wet Mix
This property represents the volume of the echo, ranging from 0% (fully
attenuated) to 100% (no attenuation).
113
Effect
CPU Usage
FMOD
Flange
Property
Description
Dry Mix
This property represents the volume of the original sound, ranging from 0%
(fully attenuated) to 100% (no attenuation).
Wet Mix
This property represents the volume of the delayed copy, ranging from 0%
(fully attenuated) to 100% (no attenuation).
Depth
The depth property represents the size of the time delay, ranging from 0.00 (
0 ms) to 1.00 ( 10 ms).
Rate
The rate property represents the speed at which the comb filtering modulates
from its lowest to highest depth. The rate can be set from 0Hz to 20Hz.
Effect
FMOD
Distortion
Resource Usage
Property
Description
Level
This property specifies the gain adjustment to the signal ranging from 52dB
(inaudible distortion) to 0 dB (extreme clipping).
USER MANUAL
Effect
Resource Usage
FMOD
Normalize
Property
Description
Fade in time
This property represents the time to attenuate the signal to silence, ranging
from 0ms to 20000ms.
Lowest
volume
Maximum
amp
This property represents the additional gain boost to the signal, where 1.00
provides no amplification and greater than 1.00 creates more boost.
Effect
FMOD
ParamEq
Property
Description
Center freq
Octave range
Frequency
gain.
This property represents the boost or cut to the frequency. The values 0.05 to
1 represent a cut to the frequency, whilst 1.00 to 5.0 boosts the frequency.
Resource Usage
115
Effect
FMOD
Pitchshift
Resource Usage
Property
Description
Pitch
This property represents the change to the original pitch ranging from 0.5 (one
octave down) to 2.0 (one octave up). A value of 1.0 represents the original
pitch.
FFT size
The property specifies the spectral resolution used in the FFT process. A
higher number reduces the number of unwanted artifacts in the sound (but
requires more CPU time). The FFT size ranges from 256 to 4096.
Overlap
This property specifies the overlap between FFT windows, ranging from 1 to
32.
[Note: This property is now fixed at the value 4.]
Max
Channels
This property makes it is possible to set the number of channels (and memory
allocation) to be used by the pitch shifting plug-in. This property can be set
from 0 (default) to 16. The value 0 represents FMOD's default polyphony, 1 =
mono, 2 = stereo, etc.
Effect
FMOD
Chorus
Property
Description
Dry Mix
This property represents the volume of the original sound, ranging from 0.00
(fully attenuated) to 1.00 (no attenuation).
This property represents the volume of chorus taps, ranging from 0.00 (fully
attenuated) to 1.00 (no attenuation).
Delay
The delay property specifies the total buffer size used by the effect. The
greater this value, the more phase modulation occurs. The delay ranges from
0ms to 100ms).
Rate
This property represents the speed of the chorus modulation. The rate can be
set from 0Hz to 20Hz.
Depth
The depth property represents the modulation of the time delay, ranging from
0.00 to 1.00.
Feedback
The feedback property controls how much of the wet (chorus) signal is placed
back into the chorus buffer.
Resource Usage
USER MANUAL
Effect
FMOD
Reverb
(Deprecated)
Resource Usage
Property
Description
Roomsize
The property 'Roomsize' represents the physical size of the acoustic space to
be simulated. The value ranges from 0.0 (a small space) to 1.0 (a large space).
Damp
Wet
This property represents the volume of the reverberated sound, ranging from
0% (fully attenuated) to 100% (no attenuation).
Dry
This property represents the volume of the original sound, ranging from 0%
(fully attenuated) to 100% (no attenuation).
Width
Ranging from 0.0 (mono) to 1.0 (full stereo separation) the 'Width' parameter
represents the amount of stereo separation in the reverberated signal.
Mode
117
Effect
FMOD IT
Echo
Resource Usage
Property
Description
WetDryMix
This property represents the proportion of the original signal and echoes in the
final output.
Feedback
The property represents the amount of echoed signal that is fed back into the
echo plug-in. The decay can be set from 0% to 100%. Note: Using 100%
decay will cause an infinite feedback loop, meaning the echo will never stop.
LeftDelay
The property represents the time between the original sound and its echoed
reflection in the left channel. The delay can be set from 0ms to 2000ms.
RightDelay
The property represents the time between the original sound and its echoed
reflection in the right channel. The delay can be set from 0ms to 2000ms.
PanDelay
This property sets the delay to switch stereo sides with each repetition. This
behavior is commonly referred to as a''ping-pong delay'. The value 0.0
represents off, while 1.0 represents on.
This feature is currently not supported by the FMOD Ex engine.
Effect
FMOD
Compressor
A compressor is a gain
reduction device used to
reduce the dynamic range
of a signal.
Resource Usage
Property
Description
Threshold
This property represents the volume at which the compression will begin. This
parameter ranges from 0dB (no compression) to 60dB (maximum
compression).
Attack
This property specifies the speed in which the compressor will react to a signal
above the set threshold level. The value ranges from 10 to 200 ms. Note:
While a small attack time will allow the compressor to catch all transient peaks,
it may cause some audible distortion artifacts.
Decay
This property specifies the speed in which the compressor will release the
signal back to its original gain level. The value ranges from 20 to 1000 ms.
Make up
gain
This property represents the desired gain boost to the entire signal after peak
limiting has been applied.
USER MANUAL
Effect
SFX Reverb
Resource Usage
Property
Description
Dry Level
This represents the level of dry signal in the output signal. The dry level ranges
from 10000.0 to 0.0 mB.
Room
This property represents the volume level of the ambient reverberation. The
room level ranges from 10000.0 to 0.0 mB.
Room HF
This property represents the overall high frequency attenuation of the room
reverberation. The attenuation ranges from 10000.0 to 0.0 mB (no
attenuation).
Room rolloff
This property specifies the room rolloff factor and ranges from 0.0 to 10.0
(default value).
Decay time
This property specifies the length of time the room reverberation takes to fade
to silence. Ranging from 0.1 to 20.0 seconds, this feature can be used to
simulate the size of the acoustic environment.
Decay HF
ratio
This property represents the ratio of the high frequency and low frequency
content in the reverberation decay.
Reflections
The reflection property represents the volume level of the early reflections
relative to the volume of room reverberation and ranges from 10000.0 to
1000.0 mB.
Reflect delay
This property specifies the delay time of the first reflection, ranging from 0.0 to
0.3 seconds.
Reverb
The reflection property represents the volume level of the late reflections
relative to the volume of room reverberation and ranges from 10000.0 to
1000.0 mB.
Reverb delay
This property specifies the delay time of the late reflection (relative to the first
reflection), ranging from 0.0 to 0.3 seconds.
Diffusion
The rate at which the denisty of the reverb increases during the decay. This
echo density ranges from 0.0 to 100.0 percent.
Density
Represents how tightly the reflections in the decay are packed. This modal
density ranges from 0.0 to 100.0 percent.
HF reference
This property specifies the high frequency value referenced by the other
properties. The HF reference ranges from 20Hz to 20kHz.
119
USER MANUAL
FMOD Designer is capable of producing highly realistic and dynamic aural environments.
In this chapter, a series of examples will be created in a step-by-step fashion.
These
examples will demonstrate advanced techniques, such as, multiple parameters, multiple
layers, randomization effects, etc.
Key topics in this chapter.
Advanced FMOD Designer techniques
Multiple Layers and Multiple Parameters
Using Sustained Points
Creating Complex Sound Definitions
121
USER MANUAL
Double-click the 'Engine' event in the event hierarchy view. The event will
be opened in the 'Event Editor' tab.
Set the parameter range from 0 to 8800. This range represents the RPM
range of the engine being modeled. Other engine may use a different
range. Set the following parameter properties for 'param00':
- Name: rpm
- Minimum Value: 0.000
- Maximum Value: 8800.000
123
USER MANUAL
idle
onlow
onmid
onhigh
Start 0
Length 1800
onlow:
Start 1400
Length 3500
onmid:
Start 3900
Length 3600
onhigh:
Start 6300
Length 2500
125
USER MANUAL
27 Set the following properties for the 'onmid' sound definition instance:
- Autopitch enabled: Yes
- Autopitch reference: 4000
28 Set the following properties for the 'onhigh' sound definition instance:
- Autopitch enabled: Yes
- Autopitch reference: 6000
29 If the crossfades are set correctly, the pitch of the engine should now
move smoothly through the RPM range.
idle
offlow
offmid
offhigh
Start 0
Length 1800
offlow:
Start 1400
Length 3500
offmid:
Start 3900
Length 3600
Length 2500
32 Set each crossfade type to 'Bezier' and set the volume as demonstrated in
the figure below.
33 Set the following properties for the 'idle' sound definition instance (on the
'offload' layer):
- Autopitch enabled: Yes
- Autopitch reference: 1135
34 Set the following properties for the 'offlow' sound definition instance:
127
35 Set the following properties for the 'offmid' sound definition instance:
- Autopitch enabled: Yes
- Autopitch reference: 4000
36 Set the following properties for the 'offhigh' sound definition instance:
- Autopitch enabled: Yes
- Autopitch reference: 6000
Figure 48: The Engine Event - Laying Out The Second Layer
APPLYING VOLUME EFFECTS
In this section, volume effect envelopes are specified. This allows FMOD to make the
appropriate sound definitions audible as the load parameter changes value. This helps
to create a more realistic engine sound.
37 Add a 'Volume' effect to each layer. A layer effect is added by rightclicking on the layer name and selecting 'Add Effect...' from the menu
option. A dialog window should appear.
38 Select the effect 'Volume' from the list and press the 'OK' button.
(Remember to repeat for the second layer)
39 Add two points to the Volume effect line (a point can be created using
[SHIFT] + click on the line)
40 The volumes curve shape should be set 'Flat Ended', to do this right-click
the point and select the curve shape.
41 Position the points on Layer 'onload' so that:
- point 1 at 0 RPM is set to -inf dB
- point 2 at 4200 RPM is set to -inf dB
USER MANUAL
- point 3 at 4700 RPM is set to 0 dB
Remember the FMOD engine designer is only used for auditioning and is not included
with the game title instead, any data should be supplied by the game engine.
129
CREATING A CYCLE
Many sounds require a sequence that begins with a starting sound, then looped in a
sustained sound and are concluded with a stopping sound. If the length of the time of
sustained sound is static, a single sample event can be used, but what happens if the
sustained loop is dynamic in length?
In such a case, a more complex event is needed, one that uses a sustain point. This
tutorial demonstrates how sustain points can be used to create a 'cycle' in FMOD
Designer.
This method could be applied to objects such as a gatling gun, a jet engine, or
anything else that requires a sequence of different sound samples.
The following tutorial demonstrates:
Create a new event by right-clicking the event group and selecting 'Add
event'
Double-click the 'Cycle' event in the hierarchy tree view to open it in the
'Event Editor' tab.
To add 'start' to the layer, right-click the layer space, a menu dialog
should appear.
Press the 'New wavetable' button and a select the file 'start.wav' from the
file dialog.
Select the sound definition 'start', from the listbox and press 'OK'. The
sound definition instance will be added to the layer.
USER MANUAL
10 To add 'sustain' to the layer, right-click the layer space, a menu dialog
should appear.
11 Select the option 'Add sound...'. A dialog window should appear.
12 Press the 'New wavetable' button and a select the file 'sustain.wav' from
the file dialog.
13 Set the loop mode to 'looping'.
14 Select the sound definition 'sustain', from the listbox and press 'OK'. The
sound definition instance will be added to the layer.
15-To add 'stop' to the layer, right-click the layer space, a menu dialog
should appear.
16 Select the option 'Add sound...'. A dialog window should appear.
17 Press the 'New wavetable' button and a select the file 'stop.wav' from the
file dialog.
18 Set the loop mode to 'oneshot'.
19 Select the sound definition 'stop', from the listbox and press 'OK'. The
sound definition instance will be added to the layer.
131
Name: Cycle
Units: Seconds
Velocity: 1.000
USER MANUAL
28 Drag and reorder the instances as 'start', 'sustain', and 'stop'. To position
the sound definitions evenly across the layer, rightclick on the layer
space, a select the option 'Lay out sounds evenly' from the menu dialog.
A confirmation message should appear.
29. Press the 'YES' button. The events should be of equal size across the
layer. [Note: To make a smoother transition of sounds, the borders of the
'sustain' instance can be extended to create crossfades between the other
instances]
This tutorial demonstrated how to produce an event cycle which moves automatically
from a starting sound to a sustained sound, then finally to a stopping sound.
133
SIMULATING DISTANCE
As sound travels through the air, frequency energy dissipates at different rates as the
general volume reduces. These 'rolloff' characteristics are highly complex, and are
influence by atmospheric conditions and surrounding materials. In this example, a
technique used to simulate the perceived affects of distance to a listener is presented.
The technique uses a combination of volume attenuation, low pass filtering (from the
'Occlusion') effect and 3D to 2D pan morphing.
The following tutorial demonstrates:
Using a distance parameter
DSP effects
Morphing between 3D and 2D sounds
Auditioning events
Create a new event by right-clicking the event group and selecting 'Add
event'
To add a sound to the layer, right-click the layer space. A menu dialog
should appear.
USER MANUAL
6
Press the 'New wavetable' button and a sound to add. In this case the file
'drum-loop.ogg' is being used.
Select 'Drum' from the listbox and press 'OK'. The sound definition
instance will be added to the layer.
Press [CTRL] and double-click the sound definition instance to fill all the
available area.
Units: Yards
Press 'OK'.
135
USER MANUAL
Point
Point
Point
Point
1
2
3
4
Distance:
Distance:
Distance:
Distance:
0, Reverb: 1
15, Reverb: 0.6
70, Reverb: 0.6 (Linear curve)
100, Reverb: 0
137
USER MANUAL
32 Set the sliders as shown in the figure on the next page, making sure the
zoom slide is set to 100.
139
Create a new event by right-clicking the event group and selecting 'Add
event'.
Double-click the ' FunWithMulitChannel ' event in the hierarchy tree view to
open it in the 'Event Editor' tab.
Right click the empty layer. Add sub-menu dialog should appear.
USER MANUAL
9
Each 'channel' item in the list represents a volume envelope for a channel (or group
of channels) in the audio file. In the case of this tutorial, the first envelope will control
channel 0 and 1 (the first two channels in the audio file). The second envelope will
control channels 2 and 3 (or the second pair of channels) within the audio file.
17 Double click the 'Channel 1' list item. A list of available channels to control
should appear.
141
USER MANUAL
26 Follow the option 'Channel Setup' and select the routing '2xstereo'. The
routing uses the format 'n x stereo ', dividing the file into pairs, routing the
first channel to front left, the second channel to front right.
This tutorial demonstrated how to dynamically mix the channels of an audio file and
route the audio the front left and right speakers.
143
USER MANUAL
For many Sound Designers, producing a high quality aural environment is not the only
development requirement.
requirements, such as processing and storage limits - Sound Designers spend much of their
time fine-tuning the balance between quality and resource optimization.
145
USER MANUAL
FILE FORMATS
WHAT IS COMPRESSION
PCM (pulse code modulation) is a standard method for representing an analogue
audio signal in the digital domain. PCM data is a simple format, where the analogue
audio signal is measured at regular intervals (known as the sample rate) and the
measurement quantitized to a digital value. The sample rate and the amount of data
used to store the quantitized measurement determine the quality of the PCM
representation.
If PCM works, why are other formats needed? The biggest problem with the PCM
format is the storage size. For example, a 3-minute song recorded in stereo at CD
quality requires 254,016,000 bits (or approximately 30 MB)
To reduce this data bandwidth burden and reduce the required storage space,
compression algorithms were created. There are 2 distinct types of compression
algorithms, 'lossless' and 'lossy'.
Lossless compression algorithms allow the original data to be perfectly reconstructed
from its compressed form. This means the size of the audio file can be reduced 30%
(and up to 50% for particular files) without reducing the quality of the audio.
Lossy compression algorithms reduce the quality of the audio signal by attempting to
remove data that is perceptually unimportant. This allows the signal to be reduced up
to 80% of its original size with little distortion.
PCM
ADPCM
MPEG 1 Layer 2 and 3 (mp2 and mp3)
XMA (Xbox 360)
XADPCM (Xbox)
VAG (Sony Playstation2, PSP)
GCADPCM (Nintendo GameCube, Wii)
To best optimize audio wave banks, the Sound Designer needs to balance CPU load,
memory usage, disk space and disk access. There are two attributes of a wave bank
that make a significant impact on performance those attributes being 'Compression
type' and 'Wave bank type'.
Choosing the compression type is not as simple as choosing the file format with the
smallest file size. File formats using variable bit-rates are capable of remarkable
compression ratios (with little distortion), however require relatively high CPU load in
comparison to PCM or ADPCM to decompress the audio before playback. (N ote :
Some platforms use hardware decoders to negate this issue.)
147
Stream from disk. This option causes the data to be read from disk and
decompressed in real time for immediate playback. Using 'Stream from disk' is
appropriate with large files such as background music. Using this method with
small repetitive audio pieces causes a large processing and disk access
overhead.
Load into memory. This option causes the data to be loaded completely into
memory in its current format. If required the audio is decompressed in real time
each time the audio is played. The main benefit of this method is its reduced
memory usage - the disadvantage being it comes at the cost of an additional
CPU load each time the audio is played.
RECOMMENDED FORMATS
For some platforms, FMOD Ex has the ability to play compressed files without the
need to decompress the data to PCM first. For example the Xbox 360 is able to
playback XMA data without (any significant) CPU usage. This platform possesses
audio hardware to carry out the XMA decompression, instead of using the CPU.
Below is a table listing the recommended file formats for each platform supported by
FMOD. These recommendations are based on which format provides the most CPU
efficiency for the platform (in most cases this is done by selecting the native format
for the playback hardware).
USER MANUAL
Platform
Recommended Formats
PC
Xbox
XADPCM
Xbox360
XMA
PSP
VAG
PS2
VAG
PS3
GameCube
GCADPCM
Wii
GCADPCM
This table is only a guideline, not a fixed rule. In many cases, memory and disk
storage limitations may be imposed by the Programmer's specification - therefore the
format choice will require extensive use of MP3, MP2 or XMA compression.
DSP Effects
DSP effects are capable of adding an extra dimension to otherwise static sounds.
Every DSP effect causes an additional load to the CPU - therefore the Sound Designer
should choose DSP usage wisely. Where possible, the Sound Designer should look for
opportunities to render an effect to file rather than use a real-time DSP effect.
Forcing Software
The 'force software' property (found in the wave bank properties, under the Wave
bank tab), forces the contents of the wave bank to play through FMOD's software
pipeline - therefore all processing is handled by the CPU and not the audio hardware.
'Forcing software' does not mean FMOD will not use certain hardware features of the
machine. For example, even when using the 'software pipeline, FMOD Ex will still use
Xbox 360's hardware decoder. If a sound is set to hardware acceleration, but is
treated with an FMOD DSP effect, the software pipeline - not hardware, will handle
the sound!
On some platforms, forcing playback through the software pipeline is inefficient.
Forcing software should be avoided (where possible) on the following platforms:
PlayStation 2
PSP
Gamecube
Wii
149
DSP Effects
Generally speaking, the memory footprint required for DSP Effects is small. DSP
effects that are more memory intensive include, echo, chorus or flanger effect. Other
types of DSP effects generally do not allocate any memory (IIR effects such as a
lowpass filter and distortion).
Limiting Polyphony
It is possible to minimize the amount of memory required to play an event using the
'max playbacks' attribute (listed in the event properties, under the events tab). FMOD
will only allocate memory for the number of instances specified.
If the 'Max playbacks' is set to 1, FMOD Ex declares enough memory to play one
instance of the event.
Setting the 'Max playbacks' correctly requires the balancing of the 'artist vision' (or
creating a realistic and immersive soundscape) and the memory resources required to
play the all occurrences of an event.
For example, imagine a first person shooting game that contains 32 players and the
event 'Footsteps' that contains the sound of running feet. Commonsense may suggest
USER MANUAL
the 'Max playbacks' property of the 'Footsteps' event be set to 32, this way all players
are represented.
Before doing so, the Sound Designer should consider:
Perhaps when using anything more than three simultaneous 'Footsteps' events, it
becomes hard to hear how many players are around anyway! Setting the 'max
playbacks' to 3 means FMOD Ex will allocate much less memory than is required for
32 instances of 'foot steps'.
If the number of playbacks exceeds the number set in the 'Max playbacks' property,
the FMOD Ex engine will 'steal' the audibility of one event occurrence and give
audibility to another occurrence. This steal behavior is controlled using the 'Max
playbacks behavior' property. The FMOD Ex engine can be set to:
In the scenario described above, selecting the 'Max playbacks behavior' property
'Steal quietest', it may be possible to keep the 'Max playbacks' at 3, thereby reduce
the memory requirement while producing an artistically pleasing result.
Disk Streaming
As described in the section, 'Choosing a File Format', disk reading is used to read an
audio file from disk for immediate decompression and real-time playback.
Choosing an appropriate 'max streams' value is very important. The 'max streams'
value sets to the number of concurrent streams within a wave bank that can be
played. Where possible, this value should be lower than the default '32' to minimize
the amount of memory and disk access overhead.
As previously stated, streaming is best applied to the playback of large files such as
music tracks, dialog or extended environmental audio tracks.
Compression Levels
When the 'compression quality' property of a wave bank is set as a 'variable bit rate'
(such as MP2, MP3 or XMA), the 'compression level' property may be set. This
property allows the size of every file in the wave bank to be reduced using a single
property.
As the 'compression level' property is reduced (from 100 to 0), more 'lossy'
compression is applied, resulting in a smaller file size with less quality.
151
Click on the wave bank that contains the audio file to be adjusted. Note:
The wave bank's 'compression' property must be either MP2, MP3 or XMA
(Xbox 360 only).
To increase the sound quality (and the file size) adjust the slider towards
100.
To reduce the file size (and the sound quality) adjust the slider towards 0.
If the sound quality is still unacceptable, repeat steps 5 and 6 until the
desired result is achieved.
Click on the wave bank that contains the audio file to adjust. Note: The
wave bank's 'Optimize sample rate' property must be set to 'Yes'.
USER MANUAL
3
To reduce the file size (and the sound quality) adjust the slider downwards
towards 0%.
If the sound quality is still unacceptable, repeat steps 5 and 6 until the
desired result is achieved.
Click on the wave bank that contains the audio file to adjust. Note: The
wave bank's 'Optimize sample rate' property must be set to 'Yes'.
Click on the 'Wave bank' screen to close the optimizer dialog window.
153
USER MANUAL
FMOD Designer can be used in many creative ways. In this section, a number of tips and
techniques that can be applied to typical in-game scenarios are discussed.
In some
situations, multiple options are considered, with discussion of the advantages and
disadvantages for each solution.
155
USER MANUAL
INTRODUCTION
This section of the user manual discusses some FMOD Designer tips and techniques
that can be applied to typical in-game scenarios. For each technique, a scenario is
described and the possible solutions are considered. Reme m ber that these
techniques can be c om bi ne d to produce new possibilities and even more creative
audio content!
Note:
Take a look at the FMOD Wiki: (http://www.fmod.org/wiki)
SOLUTION
This solution will take advantage of the 'Keyoff on silence' behavior and is perfect for
playing a sequence to oneshot sounds. Try the following:
Set the event 'Oneshot' property to 'Yes'.
Open the event editor, add a parameter (if one doesn't exist).
Add a number of sound instances to the layer. Make sure there are no gaps
between the instances.
For each sound instance, set the 'Loop mode' property to 'Oneshot'.
Set a sustain point over each sound instance.
Check the parameter property 'Keyoff on silence'.
Set the parameter property 'Velocity' to a large value (such as 10000).
When auditioned, the event the parameter should jump to the first sustain point and
play the sound definition. When the sound instance finishes, the parameter will jump
to the next sustain point and play that sound instance, and so on until the max
parameter value is hit, ending the event.
GOING FURTHER
Sequences combining both oneshot and looping sound definitions can also be created.
Just note that the sustain points over the looping sound definitions must use a manual
157
SOLUTION
It is possible to create a loop that uses a new waveform with each cycle, by taking
advantage of the sound definition's spawn behavior. Try the following:
Add a sound instance to the layer. The sound definition should contain
multiple waveforms or oscillations.
Set the 'Loop mode' of each sound instance to 'Oneshot'.
Double-click the sound instance to editor the sound definition properties.
Set the sound definition property 'Spawn time' maximum value to 1 ms.
Set the sound definition property 'Maximum spawned sounds' to 1ms.
Set the sound definition property 'Play mode' to 'Random' (this isn't too
important pick the one most appropriate to your situation).
The technique works by attempting to respawn the sound definition each millisecond,
however the 'Maximum spawned sounds' property only allows a single instance of the
sound definition to play. When the sound instance completes playback, a new
instances is spawned (in 1ms) and a new waveform from the sound definition is
selected.
This technique is well suited to creating dynamic ambient environments but could
be used with larger musical elements.
USER MANUAL
SOLUTION
Choosing the audio waveform to play at runtime in FMOD Ex can be done in two
ways:
Including a Programmer sound entry in a sound definition or,
Setting the sound definition property 'Play mode' to 'ProgrammerSelected'
Each method has it's own advantages and disadvantages and in some cases both
methods could be used in same event (but more on that later).
Programmer Sounds
As described earlier in the user manual a Programmer sound entry can be added to a
sound definition by right-clicking the sound definition (under the 'Sound Definition'
tab) and selecting 'Add Programmer sound' from the menu that appears.
When the sound instance (and programmer sound) is triggered, a callback is created
and must by handled by the Programmer.
The Sound Designer does not have control over which audio is played. Instead, the
Programmer supplies a 'sound' object within the source code. This technique is very
memory efficient when dealing with thousands of files containing dialog audio. The
Sound Designer can create a single event to handle every line of dialog!
This technique does break the data-driven model somewhat as the Sound Designer
loses control, however the memory savings can be significant enough to warrant this
choice.
Most Sound Designers find the biggest limitation of this technique is the inability to
easily audition the event (dialog audio in this case) from within FMOD Designer.
159
USER MANUAL
The 'Profiler' tab within FMOD Designer allows a user to connect to an FMOD Ex
application and monitor its resource usage.
161
USER MANUAL
INTRODUCTION TO PROFILER
The 'Profiler' tab within FMOD Designer allows a user to connect to an FMOD Ex
application and monitor its resource usage. The profiler connects to the application in
the same way as the network audition functionality.
In use, the Profiler can also be used to identify which DSP effects are active in the
FMOD DSP network during the application's execution. It is possible to identify the
complete signal path, from waveform through to the soundcard.
Note: The Profiler tab will only identify processing in the software domain. Any
processing through hardware channels, or OpenAL will not be shown.
GETTING STARTED
INITIALISATION OF FMOD EX (PROGRAMMER)
Before the Profiler can view the DSP network or monitor resource usage, the FMOD
Ex engine (running in the target application) must be correctly initialized using the
flag:
FMOD_INIT_ENABLE_PROFILE
For example, initializing FMOD Ex (using the low level API) to enable profiling, would
look something like:
result = pSystem->init(32, FMOD_INIT_NORMAL | FMOD_INIT_ENABLE_PROFILE, 0);
PROFILING APPLICATIONS
Before running the profiler, please ensure:
FMOD Ex (System or EventSystem) is initialized using the flag
FMOD_INIT_ENABLE_PROFILE
The target game (or application) is running, and its IP address is noted
In the 'IP' text box, enter the IP address of the target game (or
application). For example, if the game is running on the same machine as
FMOD Designer, you would enter 127.0.0.1.
Enter the port number into the 'Port' text field. If unsure, use the default
value 9264.
163
Press the 'Connect' button. The tool will attempt to connect to the target
game.
When connected the DSP network of the target game will be displayed and
the CPU usage of the DSP network will start monitoring.
USER MANUAL
ZOOMING
The Profiler allows the user to inspect nodes in closer detail or view all nodes at once,
using the zooming function. The feature requires a mouse with a scroll wheel facility.
To zoom in (for close viewing) roll the scroll wheel up. The zoom out (for distant
viewing) roll the scroll wheel down.
HIDING INPUTS
The checkbox labeled 'Hide Excessive Inputs' is useful when dealing with complex
DSP networks which contain many nodes. When deselected, the number of child
nodes displayed under any node will be limited.
165
Identifies the CPU usage on the DSP network. This includes mixing and
DSP effects.
Strea m
o Identifies the CPU usage of the streaming engine. This CPU overhead is
incurred whenever sounds are streamed from disk.
Upda te
o Identifies the CPU usage of the processing undertaken in the
Sys te m:: update (.. ) or Eve nt Sys te m:: update (.. ) method of the source
code. This includes calculations for 3D behavior, occlusion and envelopes.
Total
o The total amount of CPU usage. N ote: The total percentage may exceed
100% in some circumstances, such as systems that feature multiple CPUs
and when the mixer thread does not receive adequate resources.
Move the mouse pointer over the item to monitor from the options in the
bottom right hand of the tab. The options include DSP, Stream, Update
and Total. The item icon will change color as the mouse pointer is placed
over it.
Click the item. The item icon will brighten to notify the user it is active. If
connected to an application, the monitoring data should start appearing on
the line chart. The color of the line will correspond to color of the item
icon.
To stop the monitoring of an item, simply click the item icon again.
USER MANUAL
1
Press the 'Lock Max' button. This will set the 'Max' value to 100%.
Using the scroll wheel (initially downwards) select the maximum value.
This will set the display scale accordingly.
167
USER MANUAL
The 'Interactive Music' tab within FMOD Designer allows the Sound Designer to
create a game soundtrack that features cues, musical themes, transitions between
music themes and flourishes.
All musical transitions and flourishes can be instructed to playback in a musically
intelligent and beat-matched manner. Each theme can be attached to cues and
transitions between themes are easily parameterized for the Programmer.
169
USER MANUAL
INTRODUCTION
The Interactive Music tab allows a Sound Designer to construct musical movements
and link these movements with seamless transitions. Transitions between themes are
not the only feature of the Interactive Music system. The Sound Designer can also
embellish these movements with additional concurrent flourishes. To preserve
musicality, these flourishes can be synchronized to any beat of the existing movement,
as selected by the Sound Designer.
The combination of seamless transitioning and flourishes provides useful musical
variation, and allows for non-linear sequencing and composition that is easily
connected to game state.
The Interactive Music tab is one component of a complete music system, the other
component being the FMOD Event System API. Within this chapter, the Interactive
Music tab refers to the tool used by the Sound Designer. The Interactive Music
System (or music system) refers to the complete system (tool and engine combined).
This chapter has the following structure:
Key terms and objects. A brief description and explanation of the common
components of the music system
Learning the Interface. A look at all the main dialog and property screens
used when creating a score within the Interactive Music tab.
System Implementation Concepts. This section discusses the inner workings
of the music system.
Creating an Interactive Music Score. This section provides the practical 'howto' information for creating a adaptive music piece within the Interactive Music
tab.
Auditioning. This section discusses methods for previewing a work in
progress or finished adaptive music piece.
Property Reference Guide. This section details all properties and dialog
options within the Interactive Music tab.
171
CUE
From the Sound Designer's perspective, a cue is a potential musical trigger. The
Sound Designer can associate a cue with a particular piece of music (known in the
music system as a theme). In the user interface (scene editor) a cue is represented
with the icon below:
USER MANUAL
THEME
A theme is comprised of a number of musical segments and the links between them.
Themes are associated with cues - themes specify the music played when the
associated cue is triggered.
A theme is represented by a number of icons throughout the Interactive Music tab.
Within the theme editor, the theme icon is shown in the figure below.
Figure 67: The 'Theme' icon from the Theme Editor screen
Themes may also appear in the 'theme list'. The figure below demonstrates a theme
icon in the theme list.
Figure 69: The 'Theme' attached to a 'Cue' in the Scene Editor screen
173
SEGMENT
The individual musical elements used to form sequences are called segments.
Generally, each segment will contain one audio file of one or more bars of music. A
segment may be also used to hold a number of samples, known as a 'playlist'. A
sample from this playlist is chosen for playback in a sequenced or random fashion.
This is useful for adding variation to a segment without the need for additional linking
logic. A segment is shown in the figure below.
LINKS
The sequencing of segments is achieved with links. A simple linear sequence of
segments is achieved by creating one link between each segment. Non-linear
sequences are achieved by created by linking one segment to multiple segments, or
linking from multiple segments to one segment.
The following diagram shows two segments and a link between them:
USER MANUAL
Specialized links defining transitions between themes can also be created. These links
(shown in blue) have a special condition that becomes active when the music system
attempts to transition from one theme to another.
175
SCENE EDITOR
The Scene Editor screen (shown in the figure below) allows the Sound Designer to
associate cues with themes.
USER MANUAL
This Theme Editor screen allows the Sound Designer to:
Create and link segments
Set properties of segments
Use a palette of tools for segment creation and static auditioning
Access the Audition Console for dynamic auditioning
SEGMENT EDITOR
The Segment Editor screen allows the Sound Designer to set the properties of a
segment. This window provides access to dialogs such the Beat-Sync Step
Sequencer, Link Editor, Playlist Editor and Condition Editor. Using these dialogs, the
Sound Designer may:
Set basic properties of a segment such as name.
Maintain a playlist (if more than one audio file is included in the segment)
Order the priority of links leaving the segment.
177
USER MANUAL
179
ICONS AT A GLANCE
In the table, the basic functions of the icons used in the Interactive Music tab are
described.
Icon
Name
Action
Add
Delete
Close
Edit
Include
Exclude
Centre
Start Icon
Stop Icon
Target
Recalculate
Play
Pause
Release / Eject
USER MANUAL
LIFESPAN OF CUES
Each cue has a lifetime. Once triggered, a cue is active until it is ended. This means
that multiple cues may be active at any given time. The Sound Designer has freedom
to choose how the system will respond to the multiple cues.
The Sound Designer might choose to create a transition segment between themes to
provide a transition (for a sequence of themes). Or perhaps for more abstract
compositions, it is quite possible to play themes concurrently - one musical piece on
top of another.
The behavior of the music system is in part, dependent on the state of the theme
stack. At any time, the music system is:
Silent
In this state the Interactive Music System is waiting for a new theme to be
cued (the theme stack is empty).
Deter mini n g w hic h seg me nt of a the me will st art play b ack
To enter this state, a cue has been activated and the associated theme is
placed on top of the previously empty theme stack. To start playback of the
theme, the music system must determine which 'start segment' is valid.
181
Figure 80: A start segment is indicated by the green icon below the segment
Possible uses for multiple start segments include:
USER MANUAL
TARGET CONDITIONS
What is 'Targeting a Theme'?
The 'target theme' is the theme currently at the top of the theme stack. Once a new
theme is placed on top of the theme stack, the music system will attempt to transition
from the current segment to the new 'target' theme.
The Sound Designer guides this transition between themes using specialized links that
include a 'Target theme' condition or by specifying Default Transition behavior. Links
with the target condition are identifiable as blue in color.
For instructions on Targeting a Theme, see page 194 of the user manual.
183
USER MANUAL
185
Meth od Tw o: The Theme list tab panel allows the Sound Designer to create a
theme and place it on the scene. To add a theme, type in the theme name into text
field and press the button. The new theme will appear in the Theme list.
The Theme list provides a number of functions. With the Scene editor open, themes
can be attached to cues by dragging the theme icon (the grey item in the Theme List)
and dropping it onto the cue icon. The cue icon will display a thick border when the
theme can be dropped onto the cue.
Press the
USER MANUAL
3
Set the theme to play concurrently with an existing theme by setting the
Playb ack M et hod property to C onc urre nt.
Make sure any segments inside this theme are set as starting segments
(see page 189). If using multiple segments within the theme, conditions
and priority must be set. This is required for the music system to know
which segment within the concurrent theme to play when the flourish is
triggered.
When the cue is triggered in game, the segment within this theme will play
concurrently with the existing theme.
button.
The parameter icon (shown above as an orange widget with a white x) can be
dragged and dropped in to the 'Condition editor'. This is method is described in
greater detail, in the 'Creating and maintaining links' section on page 193.
187
Using the 'Segment Stamp' tool. When selected from the function palette,
this tool allows the Sound Designer to add new segments by clicking on
the theme.
Drag and drop. Dragging an audio file from the operating system window
and dropping it on a theme (in the Theme Editor) automatically creates a
segments.
icon of the
An audio file (or multiple files) can be added to the segment by clicking
the button, and selecting the audio file(s) from the file selection
USER MANUAL
dialogue. No te: The audio file(s) can also be dragged from an operating
system window and dropped into the panel 'Drop a track here'.
Click the
should appear.
2
Press the
Click the
should appear.
2
Click the
appear.
3
button should
appear.
4
Press the
segment).
189
Move the mouse pointer over the segment. A tray of icons should appear
beneath the segment.
Click the
icon. The icon should now appear green and remain in view
icon.
Order the items in the 'Start Segments' list, where the first position in the
list represents the highest priority. The position of each can be changed by
selecting the list item, and using the and buttons.
Drag a cue or parameter icon from its respective list and drop it on the
empty Condition Editor. If using a parameter, additional condition
parameters will become available.
During run-time, the engine will evaluate the segments in the list from top to bottom
until it finds the first item that satisfies all its conditions. This segment will be chosen
as the starting segment.
USER MANUAL
To specify a segment as a valid stop point:
1
Move the mouse pointer over the segment. The segment tray should
appear.
Click the
icon. The icon should now appear red, and remain in view
icon.
In it's simplest form, a stop segment can be a single segment that when complete,
allows the system to reach silence. However, the stop segment can be included as
the final destination of a sequence of linked segments. This path is automatically
followed when no themes are playing and the music system is attempting to reach
silence.
To create a stopping sequence:
1
Move the mouse pointer over the segment. The segment tray should
appear.
icon. The
icon should now appear red, and remain in view once the segment tray
closes.
3
icon.
The message
confirming the target status should appear. Any link made while targeting
the stop segment will be identified as a red link. This path to the stop
segment will be followed when all cues are inactive.
icon of the
Enter the tempo of the segment's audio file using BPM (Beats Per
Minute).
191
Enter the time signature of the segment's audio file. This specifies how
many beats are in each bar. N ote: The audio file may contain one or
more bars.
A step sequencer should appear below the time signature. Each button (or
step) represents a beat in the bar. For example if the time signature is
4/4, four buttons representing each 1/4 note (beat) will be visible. This is
shown in the figure below.
Deleting a Segment
To delete a segment:
1
Place the mouse pointer above the segment to delete. A segment tray will
appear beneath the segment with a number of icons.
Click the
USER MANUAL
Using the mouse, click and hold the plug of the segment to leave. The
plug insertion point on all valid destination segments will become visible.
The segment plug shown in the figure below.
A link between the segments will become visible. Not e: If the source and
destination are on the same segment, a loop icon will become visible.
button located on
the segment inside the Theme Editor screen. A dialogue should appear.
2
Order the items in the 'Segment links' list. The first position in the list
represents the highest priority. The position of each can be changed by
selecting the list item and using the and buttons.
193
Drag a cue or parameter icon from its respective list and drop it on the
empty Condition Editor. If using a parameter icon, additional condition
parameters will become available.
During run-time, the engine will evaluate the segment links in the list, from first to
last, until it finds the first item that satisfies all its conditions. This segment link will be
chosen as the path to follow.
Removing Links
To delete a segment link:
1
button located on
the segment inside the Theme Editor screen. A dialogue should appear.
2
Press the
USER MANUAL
AUDITIONING
The Interactive Music Systems provides a number of tools that can be used by a
Sound Designer to preview or audition their work.
Within FMOD Designer, basic auditioning of single segments or static
sequences can be previewed using the function palette tools within the Theme
Editor.
More advanced pre-build auditioning, including concurrent themes and
conditional sequences can be previewed using the Audition Console.
For post-build auditioning, the standalone application FMOD Music Player is
available for Windows and Mac platforms. This application is included with
the FMOD Designer download.
BASIC AUDITIONING
To audition an individual segment:
1
Select the 'Audition Tool' and click on the segment to audition. The
segment will be automatically displayed in the audition transport bar.
195
Select the 'Audition Tool' and click on any of the selected segments. The
selected segments will automatically displayed in the audition transport
bar. The figure below shows three segments within the transport bar.
The Sound Designer can click any numbers in the transport bar to jump
straight to the desired segment. The position cursor in the transport bar
can also be moved manually to the desired point of the sequence.
DYNAMIC AUDITIONING
The Audition Console allows Sound Designers (or Composers) to dynamically
audition the current interactive music score that is being created. The Audition
Console provides much more sophisticated auditioning than the static auditioning
enabled by the function palette tools. The Audition Console allows non-linear
sequences to be created in the same way the game engine will interact with the
Interactive Music System.
Using the Audition Console, Sound Designers are able to audition:
It should be noted, that the Audition Console operates on pre-build data, which means
the Sound Designer hears the source audio files - not the audio file format specified in
the properties of the wave bank. If the wave bank specifies high amounts of
compression, the source audio files may not be an accurate indicator of the final
sound.
Should a Sound Designer wish to audition the interactive music score post-build, the
application 'FMOD Music Player' (which is included in the FMOD Designer
download) may be used.
USER MANUAL
Using the mouse, click (and hold) on the title bar of the Audition Console.
The mouse pointer icon will change, indicating the bar can be moved up
(or down).
Drag the title bar to the desired height. The Audition Console may only
contain a reset button if no other controls have been added for the current
project.
Press the
The Audition Console will now be located under the 'Theme Editor'.
CONTROLS
By default only a reset button is included in the Audition Console. This reset control
cannot be added or removed. Currently two different types of control can be added to
the Audition Console. They are:
A trigger pad for starting and stopping cues
A fader for setting the value of a parameter
197
Click the tab 'Cues' to display all the cues available in the project. No te:
Remember the text field above the list operates as a search filter. To see
all the available cues, this text field must be empty.
Drag the yellow icon of the cue to be auditioned from the cue list into the
Audition Console. On releasing the mouse button, a trigger pad should
appear.
The trigger pad can now be turned on and off to simulate changes in
game state the music system will react accordingly.
Click the tab 'Parameters' to display all the parameters available in the
project. N ote: Remember the text field above the list operates as a
search filter. To see all the available parameters, this text field must be
empty.
The fader can now be moved up and down to simulate changes in game
state the music system will react accordingly.
USER MANUAL
Press the
REMOVING A CONTROL
To edit the properties of a control:
1
Press the
199
With these objects in place, the Audition Console is able to begin audition. To start
playback:
1
Press the cue trigger (which is associated with a theme). The cue trigger
should change appearance, indicating the cue prompt is active. Any
audible segment (in this case the Start Segment) in the Theme Editor will
appear to glow, this indicates playback. The audio contained in the
segment should now be audible.
The Sound Designer can test conditions applied to links between segments
by changing the value a parameter fader.
When no trigger pads are active, the Audition Console will attempt to find
a Stop Segment by following red links.
USER MANUAL
201
Option
Description
Details
Playback method
Concurrent
Default transition
Queued
Crossfade
Quantization
On Bar
On Beat
USER MANUAL
synchronization point of the segment currently
playing.
Start Segment
SEGMENT PROPERTIES
Property
Option
Description
Details
File
Time Signature
Length in sec.
Non-editable
Sync theme on beats
Segment Links
PLAYLIST PROPERTIES
Property
Option
Behavior
Description
Specify the method used to select an audio item
within the playlist. An item is selected each time
the segment is played (or looped).
Sequential
203
Shuffle
Option
Description
Details
FADER PROPERTIES
Property
Option
Description
Details
Range
Value always on
Min
Max
USER MANUAL
APPENDIX
FREQUENTLY ASKED QUESTIONS
This section is intended to answer the questions that are frequently asked on the
FMOD Designer support forum, and provide references to the appropriate sections in
this user manual.
205
Select the category 'Sound' from the category list. The sound preferences
should appear in the right panel.
Increase the buffer size 10 ms by moving the 'Buffer size' slider to the
right.
Test the audio playback. If the clicking is still audible, repeat step 4 until it
disappears.
Q. Ho w do I cr e at e a cu st o m di st an c e p ar am eter ?
A. See the tutorial 'Simulating Distance' in Chapter 5, Advanced Projects.
Q. D o I r e all y ne e d t o u se t he m u si c c at eg or y?
A. Developers of titles for the Microsoft Xbox 360, have a TRC requirement that states
titles must allow the non-game specific audio (i.e. Soundtrack) be replaced by the
music specified in the end user's dash board.
The easiest way to comply with this requirement is to add all soundtrack events to
the 'Music' category (shown under the Category tree on the Event tab).
USER MANUAL
Setting the 'Max playbacks' correctly requires the balancing of the 'artist vision' (or
creating a realistic and immersive soundscape) and the memory resources
required to play the all events.
See page 150 for more information.
Q. Ho w do t h e e v en t te m pl ate s wor k?
A. Templates are discussed in Chapter 3, in the section 'Event Templates' on page 60.
All used sound definitions and wave banks have been deleted.
207
USER MANUAL
SHORT-CUT GUIDE
THE EVENT TAB
Each of the following shortcuts can be applied to the event, event group in the event
hierarchy tree or event categories.
Target
Keyboard / Mouse
Description
Event
[ALT] + Left-Click
Event
[DEL]
[CTRL] + c
[CTRL] + x
[CTRL] + v
Click[SHIFT] + Click
[CTRL] + Click
audio file.
Double-Click
209
Target
Keyboard / Mouse
[none]
[SPACE]
[DEL]
Description
Starts / Stops the playback of the
event
Deletes the sound definition
instances.
Toggles the size of the sound
[CTRL] + Double-Click
[SHIFT] + Left-Click
Adds a point
[SHIFT] + Double-Click
mouse
[]
[]
[CTRL] + [ ]
[CTRL] + [ ]
USER MANUAL
Target
Keyboard / Mouse
[DEL]
[CTRL] + c
[CTRL] + x
[CTRL] + v
Click[SHIFT] + Click
[CTRL] + Click
Sound definition
Double-Click
Description
Deletes the sound definition, or
group
Copies the sound definition or
group
Cuts the sound definition, or
group
Pastes the sound definition, or
group
Target
Keyboard / Mouse
Description
Wave bank
[DEL]
Wave bank
Click[SHIFT] + Click
Wave bank
[CTRL] + Click
Waveform
Double-Click
211
USAGE
fmod_designer <-pc|xbox|xbox360|gc|ps2|psp|ps3|wii> [-a|b|h|m|n|p|s|c]
<project.fdp>
TARGET PLATFORM
The following switches can be used to select the target platforms:
-pc
-xbox
-xbox360
-gc
-ps2
-psp
-ps3
-wii
PC
Microsoft Xbox
Microsoft Xbox 360
Nintendo Gamecube
Sony PlayStation 2
Sony PSP
Sony PlayStation 3
Nintendo Wii
SWITCHES
The following option switches can be used:
-a <pathname>
-b <pathname>
-h
-m
-n
-p
-l
-s 0
-s 1
-s 2
-c <format>
-L
USER MANUAL
COMPRESSION FORMAT
The following switches can be used to select the output compression format:
-pcm
-vag
-gcadpcm
-xadpcm
-source
-adpcm
-xma
-mp3
-mp2
EXAMPLES
1. Build foobar.fdp for PC:
fmod_designercl -pc foobar.fdp
4. Only build streaming wave banks for foobar.fdp, and use alternate wave source
directory c:\temp:
fmod_designercl -a C:\temp -s 0 foobar.fdp
213