Creating a Dynamic Rainy Soundscape with ADX2
Introduction
One of the great benefits of using ADX2 is having the power to create dynamic sound scenes without relying on too much code. In this blog, we will be looking at creating a rainy soundscape in Atom Craft 3, by controlling and processing the playback of various Cues using only one AISAC.
To follow along, you can grab the materials here:
Materials
And grab the final project here:
ADX2_WeatherControl
This project was created using CRI Atom Craft Ver3.40.02
To begin, I have created a new project and dragged all of the audio files into the Materials Tree. These files consist of:
- 3 rain loops of increasing intensity
- 5 short bursts of thunder
Creating the Rain
When considering the intensity of rain, it becomes apparent that a rainstorm is not the same thing as a loud drizzle. The actual timbre of the sound changes. To facilitate this, we will control the transition between 3 rain loops using an AISAC. To start:
- Create a Polyphonic Cue named Weather
- Create a Track for each of the rain audio loops
- Create a Sequence Loop set to infinite, with Markers bounded around the Tracks
This approach creates a timeline, wherein we can trigger other sounds later using an Action Track.
Playing the Cue at this stage will simultaneously play all the loops back. Since we want a gradual increase in intensity, we will use an AISAC to fade between the loops.
- Create an AISAC for each track, using the same ID Names for each
- Create fades and curves to create a gradual transition between loops
This requires a lot of finessing and tweaking by ear, but the end result might look something like the above. You should now be able to use the control at the top of the AISAC to test the transition.
Creating the Thunder
For the next component, we will need to incorporate our pool of thunder sounds and apply some randomisation to keep everything sounding dynamic.
- Create a “Random No Repeat” Cue named Thunder
- Create a Track for each of the thunder sounds
- Set the random range of the pitch for the whole Thunder Cue to 250
Playing back the Thunder Cue should now result in some decently varied thunder sounds.
Now we want to include some logic to play the thunder back on the main Weather Cue. To do this:
- Right-click on the Weather Cue -> New Object -> Action Track
- Right-click on newly created Action Track -> New Object -> Create Start Action
- Drag Thunder Cue from WorkUnits Tree onto the newly created Action Track
You should now have an Action Track on the Weather Cue, with a thin green box on it denoting a Start Action. This will cause the Thunder Cue to randomly play one of its thunder tracks every time the playhead reaches this Action. Since the loop is quite short, this will happen quite frequently, so we can reduce the chance of it playing by either:
- Adjusting the Playback Probability in the Inspector of the Thunder Cue
Or
- Adjusting the combined Random Weight of the tracks to be < 100
The second method combines the probability of not playing back, with finer control over which sounds should occur more often. In the above case, there is a 46% chance that nothing plays.
The soundscape should be quite effective now, with a gradual transition between loops, and periodic thunder to add some depth. However, the thunder can be a bit jarring at lower rain intensities. To wield some dynamic control over the thunder, we will use the AISIAC from before to rein it in at lower AISAC values.
- Create an AISAC on the Thunder Cue, using the same ID name as before
- Create a control for Volume and Bandpass – Cutoff High
- Shape the curves so that cutoff decreases over time and volume increases
The effect should be that when the value of the AISAC is low, the thunder is quiet or even muted, and the high-frequency energy is attenuated. This makes it seem like the thunder is a distant rumble, and much less intense. It also has the added bonus of making it seem as if there is even more variation.
Testing in the Session Window
We now have an interactive, dynamic rainy soundscape that can be controlled by the programmer with just a single AISAC to worry about. To audition the whole effect, we can:
- Open the Session view (View -> Session Window)
- Drag Weather Cue onto where it says “Drop Cue Here”
- Use the Transport controls to play and stop
- Adjust the AISAC Control to transition between states
Conclusion
I hope that this blog was insightful and successfully illustrated an approach for creating some simple but effective rain. Remember to download the project files at the top of the blog if you want to listen to the end result.