Documente Academic
Documente Profesional
Documente Cultură
9
FMod is sound engine that can greatly enhance the audio compartment of our sim.
It is also very difficult and complicated to start with. That's why the AC dev team has pre-
pared and shares with the modding community a full blown Fmod project with additional in-
structions on how to work with it.
This document explains how to build a sound bank, starting from an FMod Studio
project example. Reading of the official FMod Manual and knowledge about the basic
functions of FMod Studio are required.
FMod Studio works with Events and their Parameters. Some are mandatory for As-
setto Corsa in order to make the sound bank work, some are optional and depend of the
car type. For example, a Lotus 98T has no doors, horn and so on, so the related Events
can be omitted.
The project example brought to you includes all the Events supported in Assetto
Corsa, so you can make practice and experiment different methods to achieve the same
result.
The first thing to remember is that some Events work as "global", because they are
common for every car, original and modded ones. In order to make the sound set as much
customizable as possible. Many events are car specific, such as the skid sound, brake
whistle, wind and tyre rolling noise, transmission, turbo, rev limiter, traction control and so
on. Just as an example, you have the freedom to assign a different tyre squealing sample
depending of the car.
There are several ways and techniques in FMod that allow you
to achieve the same results; some are better, some are easier. It's up
to you to find the way that meets your tastes and needs, but above all,
keep it simple!
In the side picture, you can see all the global events made by our
Sound Designer.
The events are divided in three folders, for better reading and organi-
zation. Taking surfaces as an example, you can easily understand that
kerb, grass, extraturf and sand are global sounds that are applied to
all the cars in the game, even the ones made by 3rd party / modders.
The following table contains the whole list of Events, with related Parameters and short de-
scription. Rows filled with green color indicate the optional Events.
decay
decay
decay
Please note: FMod's built-in parameters are always optional and are well explained in the
official FMod manual.
SOUND EMITTERS POSITION
In the following picture, each emitter position related to the car is described. The Tatuus
FA01 is taken as example:
engine_int (front position)
engine_ext (front position)
wheel wheel
skid_int skid_int
skid_ext skid_ext
surface surface
(center of gravity)
horn
bodywork
wind
wheel wheel
skid_int skid_int
skid_ext skid_ext
surface surface
backfire_int (0,5 meters behind the rear axle) (0,5 meters ahead of the rear axle)
backfire_ext (0,5 meters behind the rear axle) engine_int
engine_ext
gear_int
gear_ext
limiter
tractioncontrol_int
tractioncontrol_ext
transmission
turbo
Before proceeding with the project, please define the engine position through the
related parameter located in tatuusfa1\data\sounds.ini file.
[ENGINE]
POSITION=rear ; front / rear
The above is required in order to set the correct emitter position regarding the en-
gine sounds. Important note about the “rear” engine emitter position: as reported in the pic-
ture above, it is located 0,5 meters ahead of the rear axle, in order to cover reasonably
both cases of mid-engine and rear-engine vehicles.
Please DON'T TOUCH priorities and polyphony of the events. Wrong settings could
end in disappearing or stuttering sound.
The following picture shows how the engine_int event is structured. There are two
tracks, named "fa01 load" and "fa01 coast". The first one contains the sound samples
when the gas pedal is pressed, the second one when the gas pedal is off.
As reported in the first legend, samples are triggered in the rpms parameter, in the
timeline you can see the rpms range. We suggest to set a range double than the real rpm
limit of the car, in order to hear the sound even when overrevving. The crossfade between
load and coast conditions is made by the volume curves in the throttle parameter.
Assetto Corsa/system/cfg/camera_track.ini
[CAMERA_SETTINGS]
DISTANCE_SCALE=7 ; PLEASE DON’T CHANGE IT
UPWARD_OFFSET=0
CAMERA_WOBBLING_SPEED=0.001
CAMERA_WOBBLING_STRENGTH=0.04 located
This is for gameplay purposes: imagine you're racing against 10 opponents with their own
engine_ext playing. If the distance scale of engine_ext is too short (e.g. from 1 to 20 me-
ters), the sound will be not audible from the track cameras. If it's too large (e.g. from 1 to
750 meters), opponents will be audible from far away while you're racing against them.
With this "trick" you can find a good compromise about exterior sounds volume, in game -
play cases (driving among a pack of opponents) and watching a replay with many cars in-
volved.
The events that interact with the multiplier above are the following:
• engine_ext
• backfire_ext
• tractioncontrol_ext
• skid_ext
• limiter
• wheel
• wind
Note: the above multiplier works only in track cameras and free camera view (F3-
F7) and only with the Events reported above. For any other exterior sound event,
please use the built-in distance scale and attenuation curves of the FMod deck.
This means that if you're using the car cameras (as said before, the F1 views and other
"car attached" cameras), the multiplier is switched off (technically, it's always set to 1 by
code) and you can manage the distance scale and volume attenuation of the above events
using the original 3d panner.
Back to the engine_ext and its 3d panner (picture above) of the example project, the maxi-
mum volume is reached at 6 meters and the minimum is set at 350 meters, for gameplay
cameras (F1 or F6).
Switching to track/free cameras (F3 or F7), those values are multiplied by the above DIS -
TANCE_SCALE parameter, so the resulting distance range is:
6 x 7 = 42
350 x 7 = 2450
This means that switching to track cameras view, the maximum volume is reached
when the sound emitter (the car engine) is at 42 meters far (and below) from the sound lis -
tener (the camera position). Following the same reasoning, the volume goes to the mini-
mum (e.g. the event channel is released) when the car is 2450 meters far.
TURBO
Turbo interaction between sound and physics didn’t change since the previous ver-
sion.
PARAMETERS IN sounds.ini
For technical reasons and easier sound management, some events get external in-
teraction with sounds.ini file located in Assetto Corsa/content/cars/car_name/data folder.
[SKIDS]
ENTRY_POINT=0.35 ; 0 .. 1
MIX_VOLUME=0.7 ; 0 .. 1
PITCH_BASE=0.58 ; deprecated
PITCH_GAIN=0.17 ; deprecated
[BACKFIRE]
MAXGAS=0.4 ; 0 .. 1
MINRPM=3500
MAXRPM=15000
TRIGGERGAS=0.8 ; 0 .. 1
[ENGINE]
POSITION=rear ; front / rear
[SKIDS]
ENTRY_POINT: ;related to the tyre load. Lowering the value will make the skid
sound audible even with a minimum tyre load
[BACKFIRE]
MAXGAS: ;backfires are not played if input gas is > maxgas
MINRPM and MAXRPM: ;range within which the backfires are audible
TRIGGERGAS: ;trigger point for backfires, related to throttle input
Open the File menu and select "Export GUIDs...". The result file "GUIDs.txt" is lo-
cated in the "Build" subfolder of the FMod project.
Now is time to build the sound bank: open the File menu (or right click on the re -
lated car bank in the “Banks” tab) and select "Build..." and the building process will start.
The bank file will land in the "Build/Desktop" subfolder of the FMod project.
Please note: a .strings.bank file is also generated, but it is not needed unless you
need to use the FMod profiler in order to monitor channels.
EDITING THE GUIDs.txt
The generated “GUIDs.txt” contains ALL the events, the mixing groups and other settings
of the FMod project, but only the ones related to your car (plus the “bus” lines) are needed.
Please open the file with a text editor and remove the unneeded lines. At the end, it should
appear like this:
As you can see, all the lines related to “showroom”, “surfaces”, “collisions” and so on were
removed because it is supposed that they are not modified by the modder. Done that,
please save the file.
Copy both files (the modified "GUIDs.txt" and "your_car.bank") in the related "sfx" folder of
the car and check that the new sound works in game.
MIXER
Note: please keep the original mixer structure for your au-
dio project, otherwise sound will not work in game. Don't
remove any of the existing mixer groups and don't
change their name.
VCAs
As reported in the official FMod manual: "VCAs are an efficient way of grouping
sounds for the purposes of volume control and exist in parallel with the normal signal
chain (..) The most common use situation for VCAs is as master controls within a game
project main menu setup. Sound Effects, Dialogue and Music are excellent examples of
typical VCA grouping in a game project.
VCAs can also be very useful for general project balancing and level mixing as they pro-
vide a quick way of grouping and adjust sound Events without affecting the signal chain in
any way".
We left some VCAs just as example, but the project stucture is very simple so they
are not needed at all and you can use group volumes as well.