Skip to main content

Car Sound Simulator API 2024 R2

Car Sound Simulator - OSC Messages

Last update: 17.07.2025

Car 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

KEY WORD (Address Pattern) TYPE Comments
INIT_DATAPATH String Data initialization: Data path
INIT_CONFIGFILE String Data initialization: File Name
DSP_START   Starts the MAX/Msp Audio Engine
DSP_STOP   Stops the MAX/Msp Audio Engine (sound off)
START_KEY Integer Position of the start key :
  • 0 : off
  • 1 : contact
  • 2 : on
  • 3 : start

Messages sent regularly

KEY WORD (Address Pattern) TYPE Comments
SPEED Float (m/s) absolute vehicle speed
RPM Float (tr/min) engine speed (rounds by minutes)
CHARGE Float (% between 0. and 1.) throttle load
OUTPUT_TYPE String Audio output configuration type :
  • - Stereo
  • - 2.1
  • - 4.1
  • - 4.0
    • Binaural
    • Transaural2HP
  • [your system]
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 superior to pi or inferior to -pi are accepted

Messages sent once by state change

KEY WORD (Address Pattern) TYPE Comments
TRAFIC_INIT Slot index (Int)
Vehicle type (int)
Distance (float en m)
Azimuth (en rad)
Absolute speed (float in m/s)
Traffic synthesis initialization at slot index.
(1=slot index=8)
Type:
  • 0 = unknown
  • 1 = car
  • 2 = truck/bus
  • 3 = motorbike
TRAFIC_STOP slot index (Int) Traffic sound synthesis stopped at slot index (1=slot index=8)

Messages sent regularly

KEY WORD (Address Pattern) TYPE Comments
TRAFIC_UPDATE Slot (Int)
Distance (Float, in m)
Azimut(Float, in rad)
Vitesse (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

KEY WORD (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).

Tires noises of the main vehicle

Tires Noise has to be updated for each wheel by providing information about the current slippyness

Messages sent once by state change

KEY WORD

(Address Pattern)

TYPE & COMMENTS
GROUND_INDEX

0 = asphalt, 1 = concrete, 2 = grass, 3 = cobblestone (integer)

SCREECH

4 x slipping intensity -100% à 100%

(float in this order : front left, front right, rear left, rear right)

4 x slipping angle of each wheel in radians

(float in this order : front left, front right, rear left, rear right)

WHEEL_ ADHERENCE

4 x (int wheel index, float stickiness coefficient)

Ex : 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

KEY WORD (Address Pattern) TYPE & COMMENTS
WEATHER_RAIN % rain, Integer from 0 to 100%
WEATHER_WIND % wind, Integer from 0 to 100%

Additional noises

Loading orders of additional simulation noises.

Messages sent once by state change.

KEY WORD (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

Sound files playing

Supported functions:

  • sendSoundLoad : loads a sound
  • sendSoundPlay : play 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 play in Car Sound Simulator. The main simulation application has to manage the slots indexes availability.

Notes:

  • the slots indexes are &gt;=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 (Integer, 0<id<32765) loads a file to play
File Name (String)
SOUND_PLAY Slot index (int)

Starts playing the 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).

Azimut in radians, Distance and DistanceMax in meters. DistanceMAx corresponsd to the distance from the source cannot

be heard anymore

sound Id (int)
play in loop (1/0 Int)

Gain (float) TypeSpat (int) Azimut (float, in rad) Distance (float, in m)

DistanceMax (float, in m)

SOUND_STOP Slot index (int) Stops playing a sound
SOUND_PAUSE Slot index (int) Pause the playback of a sound
SOUND_RESUME Slot index (int) Resume a paused sound
SOUND_VOLUME Slot index (int) Changes the volume of a sound. The gain is linear (value directly multiplied to the signal)
Gain (float)
SOUND_UPDATE_POSITION Slot index (int) Updates the position of the sound at #slot index
Azimut (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

KEY WORD (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.

KEY WORD (Address Pattern) TYPE COMMENTS
ALIVE - Indicates that Car Sound Simulator is still alive

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)

                        </th><th>TYPE
                        </th><th>COMMENTS
                </th></tr></thead>
                <tbody>
                    <tr>
                    <td>HEAD-POSITION</td>
                    <td>
                        <p>X (float) Y (float) Z (float)</p>
                        <p>rotZ (float) rotY (float) rotX (float)</p>
                    </td>
                    <td>
                        <p>Position of the listener's head in space.</p>
                        <p>Distances are in meters, angles in radians.</p>
                        <p>X points front</p>
                        <p>Y points to the right Z points below</p>
                        <p>The azimuth angle is then rotZ, with a positive angle when the
                            listener turns his head to the right.</p>
                        <p>Elevation angle is then rotY with a positive angle when the listener
                            raises the head.</p>
                    </td>
                </tr>
                </tbody>

Connect with Ansys