AtomCraft – How-to? #2

This is the second installment of this series where we look at the implementation of some of the most common game audio tasks in AtomCraft, the authoring tool of ADX2 (check here for the first post).

These posts are not meant to be exhaustive references but rather a collection of pointers to put you on the right path. When available, we will link to other posts with more detailed information.

In addition, you can download a demo project that contains an implementation of all the examples. This will allow you to get started in no time. The techniques described here will work both with the native CRIWARE SDK and the ADX2 plugin for Unity.

Download the demo project (requires AtomCraft 2.35)

In this post, let’s see how to…

Change sound parameters from the game

In the previous post, we have seen how to switch the sounds to be played based on the context of the game (for example when selecting the correct footstep sound based on the surface material). Sometime we may simply want to update one or more parameters of the sound based on what is happening in the game. In ADX2, such real-time parameter control is achieved through the use of AISACs.

Select a Cue or a Track, click on the “No Automation” label and specify an AISAC.

Select the AISAC tab of the Cue or the Track and press on the + button to configure the link between the AISAC control (here AISAC 0) and the sound parameter (here the volume of the Track)

Edit the mapping from the AISAC input value (between 0 and 1) and the parameter value by drawing the curve or entering values on the keyboard (in the right panel)

The AISAC is not limited to a single parameter of a single Track. It can control different parameters on many Tracks.

Please check the River Cue of the sample project. We added 3 Tracks to it, each one with a looping sound (small stream, river and waterfall). We assigned the same AISAC to the 3 Tracks and linked it to their volumes. This gives us a way to mix the three water sound sources: by moving the AISAC cursor from the left to the right, you can get a more and more impressive sound.

For other ways to create a rich, evolving ambience sound (including with AISAC), please check this blog post.

Compose interactive music

Games often require that the music adapts itself to what is happening. There are several ways to implement interactive music in ADX2 but one of the most useful is to add block to your Cue.

Create a Cue and add a Block from the context menu. It is now a Block Cue and every Track you will add will follow the block structure.

Make sure the timeline’s scale follows your song’s tempo and signature to make it easier to edit and visualize your Blocks.

Create Blocks for each segments of your music and add waveforms onto the Tracks.

In the right panel, set the looping and transitioning options for each block.

In the sample project, try the BlockMusic Cue. Jump between the different sections of the composition by clicking on the block headers.

To learn different ways to implement interactive music in your game, you can also check this blog post.

Play a sound effect in sync with the music

Even if you are not working on a rhythm game, there are many cases where it is more pleasing to have a sound effect playing in synchronization with the music. Fortunately, this is very easy to achieve in AtomCraft.

Add a BeatSync parameter to your music Cue.

Click on the Sync tab of your Cue and set the tempo and the beats on which the sound effects can be played.

Create your sound effect Cue normally.

Create a triggering Cue with an Action track that targets your sound effect Cue and Add a Start action on the Action track.

To test the synchronization, trigger the music and action Cues in the Session window.

Check the BeatSyncMusic, BeatSyncSFX and BeatSyncTrigger Cues in the sample project. When the music is playing and you trigger the sound effect, it will only play once the first beat of the next measure is reached.

It is possible to perform a lot of other cool tricks with the Actions, like changing the value of a specific Cue parameter etc. To learn more about the Actions in AtomCraft, please check this blog post.

That’s all for this time! Please do not hesitate to contact us if you think some specific tasks or techniques should be part of this series.