Lesson 4: FMOD Mixing
Hello again, and welcome to the fourth installment of my lessons on using FMOD! This lesson will focus on mixing in the FMOD Studio environment. As always, you can jump on back to lesson one by clicking here, or see the entire list of lessons over here. Up until now, we’ve been focused on getting things to play in the editor, and to get the events that contain those things to play the way we want them to. We’ve covered the interface, parameters, and logic function. The next step, naturally, is getting all those fancy sounds to play nice with one another. Just like in any other music situation, you can’t just turn all the dials up to eleven and call it a day (caveat: unless you’re Motörhead and “everything is louder than everything else”). It just doesn’t work like that. You need to have control.
Now, before we begin, I want to mention that mixing is very, very much an art in of itself. It takes years to master when sitting behind a traditional mixing desk, and I make no claim to have mastered the art myself. But even more so than the wizard-like job of engineering in a traditional studio, the work of mixing interactively is even more nebulous. There’s a LOT of ground to cover – much more than is in the scope of an overview lesson attempting to teach the fundamentals and paradigms underlying a single computer program. As a result, this lesson might feel a bit more disjointed, and might be less intuitive, when compared to some of the others I’ve written thus far . The reason for that is because the primary purpose is not to teach you the basics of mixing, but rather how to do it in FMOD. So, like in our introductory lesson, this will very much focus on the core ideas of facilitating a great mix, and the tools used to create those great mixes. With that said, please do not hesitate to send any questions my way regarding FMOD! Feel free to leave a comment here, email me at Hello@ChrisPrunotto.com, or shoot me a message on twitter @SoundGuyChris!
So, with that said, grab some coffee and read on to continue.
We Can’t Just Fix It In The Mix Anymore
As with most examples here in this series, any discussion about non-linear audio should naturally begin with linear audio. In the linear world, we have a timeline that is omniscient. In your linear song, a specific drum fill will always be the same exact beat in the same exact measure as it was at the last time you put the CD in your player. The guitar solo will always come after the bridge, but before the last chorus. It’s specific because it is linear. And of course, like I said a moment ago, if you’re recording a full orchestra, you can’t just punch every gain knob to the top and hope it sounds good. Some things are going to need to be pushed down in the mix; some things are going to want to be put in the sonic spotlight. In the linear world, you are afforded certain privileges that some producers may take for granted, including the actual process that defines the word “mix.” For example, it goes without saying that when you purchase a CD off the shelf, that person – the consumer – is only going to hear one thing: The final mix. To that end, it does not matter if any of the components of the mix sound terrible, for as long as they work together to create something meaningful in the end. Plenty of guitar tones on legendary records are absolutely butchered in the EQ stage to make room for the bass, for the vocals, for the drums, for that beautiful sizzle of the perfect cymbal crash at the end of a phrase. The entire premise of parallel drum compression relies on the fact that the final mix is much more important than an absurd-sounding, super-compressed bus that creates technique to begin with! (You may also know it as “New York Compression.” In short, it is an exaggerated and very compressed drum bus, played alongside the regular drum bus, in order to reduce dynamic range, without bringing down the loud parts like in traditional compression). In short, the lesson to be learned about linear audio is that the safety net of the final mix allows you to experiment in the studio with ways of making the ear believe that everything sounds good, even if it actually doesn’t. And there’s nothing wrong with that because, yes! the results sounded good!
Concept: As with so many other things, it’s very important to begin planning how to treat your audio mix from the beginning, to avoid having to go back to the drawing board when it’s more time consuming to do so. Fail fast, fail often, and success will follow quickly.
But now, let’s get back to what matters to us right now, in FMOD: Non-linear audio. Now, when we play a piece of music, a 3 minute song might have to work for an hour of gameplay and it could span a huge variety of emotions depending on how it’s laid out and what instruments are brought in based on the action. You might go from quiet and timid to roaring horns in a matter of seconds, and guess what? In a truly non-linear environment, it’s going to be different for pretty much every player. In other words, you can’t rely on a pre-determined mix anymore because it is impossible to create one, at least in the linear sense of “this plays now, and then that, and then this fader moves down.” What you can do, however, is create different states and volume curves. Remember, as I said in lesson one: events do not happen at points in time, but rather at decisions in space, and the game will adjust our mix to fit the scenarios created by our decisions. It’ll never reach the perfection of a completely linear mix, and we have to do the heavy lifting in thinking about the audio as a part of the game, but the results in benefits to the player experience are well worth any compromises you may need to make. What this means is that if the player decides to press pause, the game should probably duck most of the background music to allow the user interface to relate information to the player. It means that if our game is in the middle of an action sequence, and the music has gotten really loud, we’ll still probably want to compress the music down with a keyed side chain to allow a direction-giving NPC to be heard, especially to avoid the inevitable clipping when you keep stacking audio streams on top of one another. It means that we, as sound designers, can even declare that some collection of sounds is just simply more important than anything else, and so the presence of those sounds alone might duck all other audio buses in the game. The possibilities are truly endless, and have all the flexibility that one could ask for. But it all starts in the Studio (that is…FMOD Studio).
The FMOD Mixing Desk, Signal Flow, and You
While the mixer in a linear editor has the benefit of being able to utilize workflows not unlike an analog console (learn one channel, and you’ve effectively learned the all!), it gets a little bit trickier in FMOD because a single event might have multiple sounds, and then those multiple events might play together in an endless amount of ways.
Concept: In FMOD, Mixing is broken down into two stages: Mixing inside of a single event, and mixing events together.
The best explanation is to follow the signal flow as it goes from Event all the way through to the Master Output. So create a new event and populate it with some Audio tracks. The Audio Track is the very basic, atomic level of mixing. If you can’t get it to sound good here, you may need to rethink the sample. The Deck area, as we discussed in lesson one, contains the inserts for that track and has a basic input, fader, and output stage. The output type (mono, stereo, surround…) is automatically selected based on the input of the Audio Track. The input comes from the modules on the audio track itself (regardless of whether the module is on the Timeline or any other parameter), and is usually routed straight to the output track. Usually. By right clicking on the name label of the Audio Track (e.g., “Audio 1”), you can select to add a Return track (which is a send/return chain that allows you to further process a signal a copy of the signal being sent, without affecting the original) or to route the output of the Audio Track to any other audio track. Note that if you route Audio 1 to Audio 2, you can’t send Audio 2 back to Audio 1. All audio within any given event must eventually emerge out through the Master Track – including any sends you create. The level of control you have in regard to mixing on the Track View of the Event is actually pretty minimal. But…do you remember this button?
Click it to open up the Strip View. Now things should start looking a bit more like a mixing desk. All of your tracks will now be converted into Group buses (the reason they’re Group buses is because you can re-route audio from one Audio track to another – you’ll notice that anything going straight to the Master track is set to the side on the right-hand side of the screen, while the rest of the buses are organized and divided by their routing paths). Here, you can set the relative volume levels of each Audio Track. You can do pretty much everything here that you can on the Track View with the exception of creating and editing Parameters, and placing Modules and Markers on their respective tracks. Besides the obvious of using the faders to control levels of volume, you can also select a Group to view its deck. This is, of course, a mirror of the exact same deck that appears in Track View, but with one nifty little function added on top of being able to set relative levels easily. If you right-click on a knob in the deck (say, the “Feedback” knob on a Delay module), and select “Flip to Faders”, any Group buses that have the same module in their deck will flip the knob you’ve selected to display as the fader, allowing you to precisely set the value of a single effect parameter, over several groups at once.
By this point, you should have a general idea of how to get your individual event to sound the way you want it. As with most things, this is going to take a LOT of practice. It’s important that your event sounds great played on its own because, as mentioned before, you don’t have the safety net of a static mix to beef up the frequencies that are lacking, or the ability to turn down a problem frequency on the final mix. It’s all dynamic, so you should aim to load more of your mixing work into the actual events themselves. Once you have the event sounding good, it’s time to move on. The next step of course, is mixing outside of the event.
Concept: Audio works its way from the source (either a file or a module) to the audio track, to any other tracks it is routed to, eventually exiting out the Master track. The Master Track of the Event is then used as an input into the mixer where it is optionally further routed through buses and finally out the Master Output Bus where it can be heard by the player.
As I mentioned back in Lesson 1, each event has its very own Master track. The Master Track essentially feeds out as an input to the FMOD Mixer. You can open the mixer for your project by hitting Ctrl+2 or going to Window > Mixer. The new window which appears is something like the Event Editor. The left pane has been replaced with a Routing and Snapshots tab, the main editor has been replaced with a Mixing Desk and Selected Buses tab. The properties and 3D Previewer have been replaced by a Master Bus, and the Deck remains just as it was. If you had any events created in the Event Editor, you should see them here in the Routing tab. In the Routing window, you can right click and select to create either a new group bus, or a new return bus (a return needs something sent to it before it can be used to process an audio signal!). Right clicking an event will allow you to route it into a group (either existing, or a new one), assign it to a view, or assign it to a VCA. We’ll get to the latter ones shortly. One of the most convenient ways to mix audio is to take a whole mess of inputs and assign them to a single group bus. Now you can control the relative volume of all of those faders with a single fader. To assign an input (in other words, an event!) to a group you can either right click the event and assign it to the desired group, or just click and drag it into the Group. Here’s an example:
A group routes directly into either the Master Bus or a parent group. Parent groups route from inside the group to outside, so while multiple groups can feed into a single group, you cannot have a single event “split” its signal across to two groups that aren’t immediately related as parent-child. Ideally, you’ll want to set up groups logically according to how the game will treat them. It bears repeating that you should aim to front-load your workload into the event and have Parameters be doing most of your mixing for you, and let the Mixing stage apply broader strokes of things like a Reverb send for a large hall, for instance. Remember, we’re past the point of using automation or Parameters to influence things, so it’s no use to try to force your sound to sit in a specific place mix like a traditional mix. As it is, in FMOD there are currently no tools to audition events like a traditional mix (besides opening up multiple Event Editor windows and clicking play on each one). The best approach is to just keep things simple and focus on the routing, because setting levels is more easily accomplished while the game is running and connected to FMOD (which will be detailed in a later lesson). As stated before, planning ahead is the best solution – if you know that a particular type of effect is needed for several sounds, then having a plan will allow you to figure out an efficient way to route all the relevant events to a single bus and apply it there. Once audio works its way through the Mixer, it exits the Master Bus where it can be heard by the player.
A Few More Tools In The Bag Of Tricks
This just about covers the main signal flow path. There is some more to it though, in regard to interactive mixing. If you load up your favorite game, chances are that in the pause menu, you’ll see an Options menu and in that options menu, you’ll find audio settings with three sliders: Sound Effects Level, Dialogue Level, and Music Level. It’s pretty ubiquitous, and should be about all of the control that the player needs to tweak. Some games these days are getting fancier with options for specific mixes through headphones or hi-fi stereo systems, but in general they still retain these three default faders, and they are an incredibly intuitive way of explaining one of the most overlooked control methods in FMOD, the VCA. The VCA is the Voltage Control Amplifier. It is a Mixer object that, as the name implies, controls the voltage (volume!) of a track routed to it, and it exists outside of the normal routing paths. So it can be applied to a signal chain in parallel with the rest of the effects being controlled. To show your VCAs, simply open up the Mixer Routing Window (ctrl + 5) and flip to the VCA tab. You can create as many as you like, but you’ll notice that unlike Group Buses or Return tracks, the VCA lives in a flat hierarchy, and it does not have a deck area. To use one, simply create it and right click your event, return, or group, and then select “Assign to VCA” and select an assignment. The VCA will be displayed as a red fader on the Mixing Desk tab in the Mixer window. Turning the VCA up or down will either increase or decrease the volume of all the tracks routed to it – without affecting the faders, effects, or parameters of those tracks. It is extremely common to have a VCA which controls all of your music levels, all of your dialogue levels, and all of your sound effect levels. You can even use VCAs to control other VCAs, which in turn control specific returns and nested, more specific groups that might need to be manipulated all at once (such as UI sounds, or collections of reverb returns).
Another useful object to keep in mind is the Snapshot. The snapshot is to the mixer what automation curves are to parameters. The usage of a Parameter would make little sense in the context of a mixer, but FMOD still supplies us with a method of controlling our mixer dynamically, the same way that a Game Parameter can affect effect modules. It essentially allows you to create a save state for the properties in the Mixer and have the mixer recall them whenever they are activated by the game. It can be as simple or as complex as you need and affect only the gain of a single bus, or it can affect every single parameter of every single module of every single input on the mixer. Snapshots live on the Snapshots tab of the Routing pane in the Mixer Window. Right clicking in the snapshots window will allow you to create a new snapshot which will save the settings of all objects on the mixer and their decks, or create a blank snapshot and you can manually “scope in” objects by right clicking on the associated channel, fader, deck module, or module knob. Once the snapshot has been created it can be added to an Event by simply right clicking on the timeline and creating the associated module, which will function like any other module, except it will trigger the snapshot for as long as the module is intersecting the cursor.
Congratulations! You now have a grasp on beginning FMOD Mixing!
So, that’s it for Lesson 4. This is as far as I’ve consciously planned ahead on FMOD. The next step will be on how to get FMOD plugged into and working with Unity 3D, but it will take a short bit to get to that. Please check back soon. My goal with this series thus far was to begin teaching the fundamentals of FMOD as a program, and the Mixer is by far the most nebulous aspect of FMOD because of how radically different the approach is from the conventional. I fully realize that this lesson was probably not as fleshed out as my discussion on, say, the Parameter, but hopefully by the end of this lesson, you understand most of the tools you have at your disposal and how to best utilize them. It takes practice and I’m providing a small list of items to try out that can maybe help you get some of that practice. As always, if you have any questions about how this kind of thing works, please feel free to shoot me an email or a message on Twitter and ask!
Here’s A Few Simple Practice Exercises:
- Create an event with 6 tracks on them. Pan tracks 3 and 6 hard left and hard right respectively. Feed tracks 1 and 2 into 3, and feed 4 and 5 into 6. Play some audio and see how routing can affect playback.
- Create a pre-fader Send on an audio track to a Return line with Delay on it. Automate the Delay, Wet Level, and Dry Level parameters of the Delay Module on the Return to change over time. Play some sound on the Audio Track and see how it gets affected. (Hint! Remember to turn the Send up! It starts at –∞)
- Create 3 Reverb modules on three tracks in the same event. Flip the Feedback knob to the faders and adjust them all on the faders.
- Create 4 Events and flip to the Selected Buses tab. Select them all in the Routing Tab of the Mixer window, and edit their properties.
- Create a new Mixer View. Drag a few buses, VCA’s and Inputs from the Routing Tab or Mixer Routing window to create a custom Mixer View (hint! I didn’t discuss this earlier. It’s a tab above the Mixer Window).
- Create 4 Events and give them all the same Low Pass Filter. Flip the Cutoff to the faders and edit the Cutoff for the events in the Mixer quickly.
- Create a Blank Snapshot and Scope In a single event’s volume fader and a 3EQ module. Go to a different event and create a Snapshot Module so that one Event triggers a Mixer change to a different event. Modulate the Intensity parameter over time to have the fader gradually pull down over time, instead of snapping immediately. (Hint! To watch it in action, you can open an Event Editor window and a Mixer Window at the same time)
- After the last exercise, try using a Sustain Point on the Logic Track to hold the fader in position until a Cue is triggered. Then Automate the intensity again back to zero, to push the fader back to it’s original position.
Good Luck and happy mixing!