ADXTutorials

Real-time parameter control with AISAC

AISAC is a system in ADX2 allowing the control of audio parameters by values coming from the game. This kind of feature is also sometimes called Real-time Parameter Control (RTPC). For instance, it can be used to simulate the sound of a car engine. In that case, the game will send the engine RPM value to the sound AISAC of the sound Cue, which will then change the sound of the car engine in real-time.

adx2_AISAC_tutorial_01

With AISAC, the sound designers can design how the pitch changes according to the number of revolutions of the engine or how to cross-fade the sounds of the explosions from multiple pistons. Then, when the programmer sends the AISAC control value that corresponds to the game context, the correct sound (i.e. with the right parameters) is played back.

adx2_AISAC_tutorial_02

A Cue can have multiple AISAC controls. For example, the designer could assign AISAC control 1 to the “number of revolutions of the engine”, AISAC control 2 to the “load of the engine” and AISAC control 3 to the “distance from the listener.”

adx2_AISAC_tutorial_03

In ADX2, multiple AISAC patterns can be used by a single AISAC control. For example, you could design an “AISAC pattern for footsteps”, an “AISAC pattern for explosion”, an “AISAC pattern for dialogue” etc… that could all be assigned to the distance attenuation AISAC control, based on what type of sound is actually being played by the Cue. The programmer does not need to know which pattern is applied; by setting a value to the “distance attenuation AISAC control”, distance attenuation based on the type of the sound can be achieved.

adx2_AISAC_tutorial_04

 

Configuring an AISAC

Step 1: First, right-click on the track corresponding to the Cue that needs to change in real-time. In the context menu, select New Object and then Add AISAC.

adx2_AISAC_tutorial_05

 

Step 2: The following window appears, allowing you to assign a parameter to the new AISAC control. Many parameters can be controlled by AISAC, such as volume, pitch, pan, filter and so on. The idea in this example is to make the pitch of an helicopter engine change according to the RPM, so let’s choose the Pitch parameter.

adx2_AISAC_tutorial_06

 

Step 3: Once the window closed, the AISAC tab is selected in the FX / AISAC panel at the bottom of the main window and a default line is drawn. Simply click on the line to add points and drag them to shape the curve as you wish (you can also type in the values directly in a pane on the right).

adx2_AISAC_tutorial_07

You can also change the curve type (right click on a dot and select one of the options):

adx2_AISAC_tutorial_08

 

Step 4: Let’s try it! Play the Cue and while the sound is looping drag the AISAC cursor from left to right to ear how the change of the RPM is affecting the pitch of the sound.

adx2_AISAC_tutorial_09

As you can see, it is very easy to use the AISAC feature in ADX2! The same principle applies to all types of AISAC curves available. Indeed, it is possible to add multiple curves to your AISAC. Left click on “Pitch”, click “Add” and then choose the desired AISAC.

adx2_AISAC_tutorial_10

*An AISAC can even control an other AISAC.

 

AISAC control types

The AISAC curve can also have a random range and be re-triggered periodically, which opens the door to a lot of other possibilities!

When the Control Type is set to “Off”, a control value can be specified manually with the curve.

adx2_AISAC_tutorial_11

When you select “Auto Modulation”, the control value is automatically changed during the specified time. First, you need to indicate if it is a loop or a one-shot sound. Then, you draw your curve and tell the engine in the time period (in ms) over which you want the pitch change to occur. In the example below, the sound will pitch up following the curve during 1000 ms.

adx2_AISAC_tutorial_12

A Random AISAC can be used to assigni a random value to the AISAC control value. To use this function, specify “Random” as AISAC control type. The following picture shows the settings available for a Random AISAC. The random value is determined when a playback request occurs. By default, the Random Range is 2 and a random value is selected in the time range between 0 and 1 for any specified AISAC.

adx2_AISAC_tutorial_13