NAV Navbar
Logo
General - Audio - Ilios - Lua
lua

Introduction

Welcome to the audio system documentation for Visionaire Studio.

Basics

Volume

All volumes are now set in dB. In the dB scale volume doubles every 6dB and halves every -6dB, so -12dB would be a quarter of the volume of 0dB and -18dB an eigth.

Overview

The system consists of two parts, a container list and a mixer hierarchy. Containers play and manipulate sound contained in them. The mixer hierarchy controls effects like reverb and the volume.

All lists are hierarchical, meaning a container can contain multiple sounds and a mixer can contain multiple sub mixers.

Containers

Sound

The sound container essentially contains one sound. It can be created by rightclicking on Audio containers.

Pitch

Sounds can be pitched, which is done by resampling, so as pitch goes down speed will decrease and as pitch goes up speed will also increase.

Pitch is entered in cents, so 100 is equal to one semitone and 1200 to an octave. The range is limited to 2 octaves up and down.

HPF

The high pass filter removes lower frequencies, the range of the value reaches from 0 to 100.

LPF

The low pass filter removes higher frequencies and makes the sound more muffled.

Looping

If looping is not checked the sound would play once and then stop. If looping is checked and the loops are set to 0, the sound loops indefinitely, else the sounds is looped exactly as often as the value.

Output Bus

The output bus sets the mixer that this sound will be channeled through, when it's played indepently. The sound receives the HPF, LPF, pitch and volume settings as well as the effects.

Testing

The sound can be played by clicking the waveform at any point or with the play button. This will also bring up two drag wheel for HPF and LPF which can be changed in the realtime by holding the mouse button down on the arrows. For changes on all fields on the left to apply the sound needs to be restarted.

Mix Container

A mix container mixes all sounds it holds, they can be modified by blendtracks and automations.

Mix container always loop forever and do not stop by themselves. This does not affect sounds it contains, if they should loop they must be set independently

Blendtracks

Blendtracks map a value to different sounds. For example you might have a value "rain strength" and three different sounds "light rain", "medium rain", "heavy rain". When "rain strength" is set to 100 "heavy rain" should play and at 20 "light rain". The blendtrack handles this.

1) Create a mix bus and add the three sounds under it and set all of them to loop.

2) Create a value on the right and set minimum to the starting value and maximum to the end value, here 0 and 100.

3) Create a blendtrack on the top right.

4) Select the value on the right.

5) You can now add sounds by right clicking, add all three sounds. If they overlap the gui indicates that they will automatically blended in the crossing section. You can also blend them manually by right clicking on the right most / left most bound of the object and selecting manual, which shows a movable point. This also needed on the leftmost object as it can't overlap but should still be faded in.

6) On pressing play on the upper right, the value will be shown under it and the gui also shows an indicator in the blendtrack.

Automations

Automations map values to different sound properties. For example as you enter a building sounds get muffled (higher LPF).

Automations are always built like this:

Random Container

The random container plays contained sounds at random.

The random container can be in 2 modes:

Step

On play one sound will play and the container stops. If set to random the container plays one sound at random, sequence means the sounds are played from top to bottom. If you set don't repeat the container does not repeat the last x sounds.

Usage would be e.g. footsteps.

Continuous

In continuous mode the container stays online until stopped. It selects its sound like in the step mode. Sounds will play according to the continuous type:

Initial delay also allows to set a pause before the sounds start.

Usage would be e.g. thunder.

Switch Container

The switch container selects the sound it plays via a value. The first sound is selected at value 1, at 0 nothing is played.

The switch container has 3 modes:

Continuous

The container keeps playing until stopped. If crossfade is not active, the current sound will be played until finished, else the current sound is crossfaded to the new sound if the value changes.

Non Continuous

The containers plays the sound selected by the value and stops.

Continuous in a sync container

The position of the next sound is restored on sound change, this can be used for changing music.

Sync Container

The sync container plays contained sounds according to a timeline. By right clicking on the free space you can add sounds, they can be moved around and resized. By moving sounds vertically you can add more tracks. While playing you can also change the position by clicking on the timeline header.

In the light gray area different flags can be added:

This can used as a target position for a transition.

This is used to visualize the position in beats instead of seconds. By clicking on a tempo marker you can change tempo and time signature.

Playback moves to start of the track if it reaches. It will also loop automatically if there is no further track and looping is on.

Playback will move to the target marker on reaching if the value meets the selected criteria.

Automations

Automations work different in sync containers as they are targeted at tracks instead of sounds. A track is all the sounds on the same height.

Playing Containers

Containers can be played either via scenes or via action parts.

Scenes

Scenes have the option to add audio containers. If the scene changes and both scenes have a container set, the container keeps playing without restarting.

Action Parts

The action part "Fade container in/out" can also be used to play containers, it allows also to fade containers in and out.

Changing values

Values can be smoothly changed via the action part "Tween value".

Mixer

Mixers

Mixers apply all settings in their hierarchy to sounds assigned to them.

Pitch is added, HPF and LPF take the higher value.

Mixers can have insert EQs, they are created as effects and then linked, they are not applied recursively.

Effects are added as a send, gain sets how strong the effect is. If only the effect should be audible the sound can be muted with Scale Source.

Automations

Automations work here like they do in the mix container, you can also change the send gain and send scale source.

Effects

Globally only 4 effects can be active at the same time.

On pressing play the last selected container/sound is played with effect active.

There are the following effects:

Reverb

An algorithmic reverb with presets.

EAXReverb

A more advanced algorithmic reverb.

Chorus

Distortion

Echo

Flanger

RingMod

AutoWah

Compressor

EQ

Applying Mixers

Mixers are applied to containers via Output Bus. Characters can also have output busses applied. Then there are default mixers that can be set in the game settings.

If a mixer is changed at runtime all old sounds move over and settings apply. Changing can be done via the action part "Set output bus".

lua