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:
- A source, which is a value
- A target, which can be
, which means the current mix container, or a container contained in the mix container - The field, volume, pitch, LPF, HPF, and also trigger rate and delay on a random container. Pan is currently unused.
- Type allows different mapping types: -- 1:1 -- 1:1 Power: Takes the square root of the value -- dB: This calculates a factor from dB, so 0dB is 1.0, -6dB is 0.5, -12dB is 0.25 -- 100:1 -- 1:100 -- Curve
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:
- Delay: Continuous delay is the pause between sounds
- Sample Accurate: After one sound the next immediately starts
- Trigger Rate: A new sound starts after continuous delay milliseconds, the current is stopped
- Crossfade is currently unused.
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:
- Marker
This can used as a target position for a transition.
- Tempo Marker
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.
- Loop
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.
- Transition
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".