Car Sound Simulator - OSC Messages
Last update: 09.03.2026Car Sound Simulator is driven by OSC MESSAGES sent over UDP, with each action associated with one message. The action name is a KEYWORD, followed by some OSC ARGUMENTS.
Basic management messages
Basic management for the sound generator.
Messages sent once by state change
| KEYWORD (Address Pattern) | TYPE | Comments |
|---|---|---|
| INIT_DATAPATH | String | Data initialization: Data path |
| INIT_CONFIGFILE | String | Data initialization: File name |
| DSP_START | Starts the CSS Audio Engine | |
| DSP_STOP | Stops the CSS Audio Engine (sound off) | |
| START_KEY | Integer | Position of the start key :
|
Messages sent regularly
| KEYWORD (Address Pattern) | TYPE | Comments |
|---|---|---|
| SPEED | Float (m/s) | Absolute vehicle speed |
| RPM | Float (rev/min) | Engine speed (revolutions per minute) |
| CHARGE | Float (between 0. and 1.) | Throttle load |
| OUTPUT_TYPE | String | Audio output configuration:
|
| SCANMAX_VERSION | String | Unused |
Traffic noise management
The exploiting application handles up to 8 traffic vehicles, corresponding to 8 possible synthesis slots. These 8 vehicles must be chosen by the simulator depending on their contribution to the sound scene, for example by selecting the closest ones.
Angles are in radians, 0 is a front source, -pi/2 is left, +pi/2 is right. Angles greater than pi or less than -pi are accepted.
Note that the specified traffic vehicle speed only serves sound source synthesis. It does not affect the Doppler effect, which is only controlled by the successive relative positions set with the TRAFIC_UPDATE message.
Messages sent once by state change
| KEYWORD (Address Pattern) | TYPE | Comments |
|---|---|---|
| TRAFIC_INIT | Slot index (int) Vehicle type (int) Distance (float in m) Azimuth (in rad) Absolute speed (float in m/s) |
Traffic synthesis initialization at slot index. (1<=slot index<=8) Type:
|
| TRAFIC_STOP | Slot index (int) | Traffic sound synthesis stopped at slot index (1<=slot index<=8) |
Messages sent regularly
| KEYWORD (Address Pattern) | TYPE | Comments |
|---|---|---|
| TRAFIC_UPDATE | Slot (int) Distance (float, in m) Azimuth (float, in rad) Speed (float, in m/s) |
Update of the traffic vehicle characteristics (distance, azimuth, speed) at slot index (1<=slot index<=8). |
Harmonic sources management
The application handles up to 10 harmonic sources. Each of them can be controlled with the following messages:
Messages sent once by state change
| KEYWORD (Address Pattern) | TYPE | Comments |
|---|---|---|
| RPM_USER_1 | Value (int) | 1st specific RPM for a dedicated harmonic source |
| RPM_USER_2 | Value (int) | 2nd specific RPM for a dedicated harmonic source |
| RPM_USER_3 | Value (int) | 3rd specific RPM for a dedicated harmonic source |
| RPM_USER_4 | Value (int) | 4th specific RPM for a dedicated harmonic source |
| RPM_USER_5 | Value (int) | 5th specific RPM for a dedicated harmonic source |
| RPM_USER_6 | Value (int) | 6th specific RPM for a dedicated harmonic source |
| RPM_USER_7 | Value (int) | 7th specific RPM for a dedicated harmonic source |
| RPM_USER_8 | Value (int) | 8th specific RPM for a dedicated harmonic source |
| RPM_USER_9 | Value (int) | 9th specific RPM for a dedicated harmonic source |
| RPM_USER_10 | Value (int) | 10th specific RPM for a dedicated harmonic source |
| HS_AZIM | ID (int) Value (int) | ID is the number of the specific harmonic source. Value is the azimuth angle in degrees for the spatial positioning of the source (between -180° and 180°). |
| HS_VOL | ID (int) Value (int) | ID is the number of the specific harmonic source. Value is a gain value in dB applied to that source (between -15 and +15 dB). |
| HS_WIDTH | ID (int) Value (int) | ID is the number of the specific harmonic source. Value is the coefficient of diffuseness of the source, between 0 and 100% (0% means the source has no diffuseness, it can be perceived from a specific direction, 100% means the source is totally diffuse, it is perceived as surrounding and coming from all speakers with the same energy). |
Tire noises of the main vehicle
Tire noise has to be updated for each wheel by providing information about the current slippiness.
Messages sent once by state change
|
KEYWORD (Address Pattern) |
TYPE | COMMENTS |
|---|---|---|
GROUND_INDEX |
int (0-3) |
0 = asphalt, 1 = concrete, 2 = grass, 3 = cobblestone |
SCREECH |
float x8 |
4 x wheel slipping intensity between -1 and 1. (float in this order : front left, front right, rear left, rear right) |
|
4 x slipping angle of each wheel in radians (2*pi-periodic) (float in this order : front left, front right, rear left, rear right) |
||
|
For example: SCREECH 0.2 0.2 0.15 0.15 0.4 0.4 0.1 0.1 |
||
WHEEL_ ADHERENCE |
int + float x4 |
4 pairs composed of an int (wheel index) and a float (wheel stickiness coefficient) Wheel indexes are 0, 1, 2, and 3, for front-left, front-right, rear-left, and rear-right wheels, respectively. Wheel stickiness coefficient range is between 0 and 1. |
|
For example: WHEEL_ADHERENCE 0 0.1 1 0.3 2 0.7 3 0.7 |
||
|
0.7 < float stickiness coefficient < 1 : dry 0.2 < float stickiness coefficient < 0.7 : wet 0.1 < float stickiness coefficient < 0.2 : snowy |
Weather management
Weather noise management.
Messages sent once by state change
| KEYWORD (Address Pattern) | TYPE | COMMENTS |
|---|---|---|
| WEATHER_RAIN | int (0-100) | % rain |
| WEATHER_WIND | int (0-100) | % wind |
Additional noises
Loading orders of additional simulation noises.
Messages sent once by state change.
| KEYWORD (Address Pattern) | TYPE | COMMENTS |
|---|---|---|
| MOTOR_PARTIALS | string | .motor file to load (path must include slashes '/' instead of '\') |
| MOTOR_NOISE | string | .noise file to load (path must include slashes '/' instead of '\') |
| AERO_NOISE | string | .noise file to load (path must include slashes '/' instead of '\') |
| ROLLING_NOISE | string | .noise file to load (path must include slashes '/' instead of '\') |
| STARTER_MOTOR | string | wav file corresponding to the engine starting noise |
| HORN | 0 or 1 | Triggers the built-in horn sound (sawtooth signal). Note that the sound is triggered on onsets only; several 1s sent in a row only trigger the sound once. |
| INDICATORS | 0 or 1 | Plays the built-in turn indicator sound. 0=off; 1=on. |
Sound files playing
Supported functions:
- sendSoundLoad : loads a sound
- sendSoundPlay : plays a sound (looping available)
- sendSoundStop : stops a sound play
- sendSoundPause : pauses a sound play
- sendSoundVolume : sets the sound volume
There are 10 available slots for sound playback in Car Sound Simulator. The main simulation application has to manage the slot index availabilities.
Notes:
- the slots indexes are >=1 and <=10
- .wav extension is appended to the file name
Messages sent once by state change
| KEYWORD (Address Pattern) | TYPE | COMMENTS |
|---|---|---|
| SOUND_LOAD | Sound id (int, 0<id<32765) | Loads a file to play with the specified id. |
| File name (string) | ||
| SOUND_PLAY | Slot index (int) |
Starts playing the sound <Sound id> at slot <Slot index>. TypeSpat: 0 = not localized, 1=attached to a vehicle, 2 = attached to a point. Gain is linear (directly multiplied with the signal). Azimuth in radians, Distance and DistanceMax in meters. DistanceMax corresponds to the distance from the source where it can no longer be heard. |
| Sound id (int) | ||
| Play in loop (1 or 0) | ||
| Gain (float) | ||
| TypeSpat (int) | ||
| Azimuth (float, in rad) | ||
| Distance (float, in m) | ||
| DistanceMax (float, in m) | ||
| SOUND_STOP | Slot index (int) | Stops playing the specified slot's sound. |
| SOUND_PAUSE | Slot index (int) | Pauses the playback of the specified slot's sound. |
| SOUND_RESUME | Slot index (int) | Resumes the specified slot's sound playback. |
| SOUND_VOLUME | Slot index (int) | Changes the volume of the specified slot's sound. The gain is linear (value directly multiplied with the signal). |
| Gain (float) | ||
| SOUND_UPDATE_POSITION | Slot index (int) | Updates the position of the sound at slot <Slot index>. |
| Azimuth (float, in rad) | ||
| Distance (float, in m) |
Error and warning messages
Messages sent to the main simulation application when required.
Messages sent once by state change
| KEYWORD (Address Pattern) | TYPE | COMMENTS |
|---|---|---|
| WARNING | String | Sends a warning message |
| ERROR | String | Sends an error message |
Start, stop, state management
The main simulation application has to start and stop Car Sound Simulator.
Message sent periodically to the main application.
| KEYWORD (Address Pattern) | TYPE | COMMENTS |
|---|---|---|
| ALIVE | - | Indicates that Car Sound Simulator is still running |
Head-tracking
Message sent to locate the position of the listener's head for head-tracked binaural rendering.
Message sent periodically to the main application
|
KEY WORD (Address Pattern) | TYPE | COMMENTS |
|---|---|---|
| HEAD-POSITION |
X (float) Y (float) Z (float) rotZ (float) rotY (float) rotX (float) |
Position of the listener's head in space. Distances are in meters, angles in radians. X points to the front. Y points to the right, Z points below. The azimuth angle is then rotZ, with a positive angle when the listener turns their head to the right. Elevation angle is then rotY with a positive angle when the listener raises their head. |