Adaptive music in FixFox
FixFox is a wholesome Sci-Fi adventure game with a Pixel Art aesthetic. It’s a solo dev game made by Jaroslav Meloun and I took care of its soundtrack.
We used FMOD as middleware to implement all the audio of the game. This allowed us to get creative with the ways we used adaptive music: the simplest was changing the intensity or sound of the music, but in a couple of tracks we pushed the limits of adaptive music in more innovative ways.
Let’s dig into the game and examine where and how we used adaptive music. You’ll hear the first example from the second you turn on the game.
Creating a memorable first impression
“Oh, it gets me every time”, says YouTuber Zypher when seeing the title screen in his gameplay video of FixFox.
As I explained in a previous blog post about figuring out the FixFox’s soundtrack, first impressions matter, especially in the era of Steam and easy refunds. It’s never too early to create a good impression on the player, and the soundtrack doesn’t waste a moment.
From the very beginning, even when you’re still seeing company logos, the music plays two repeating bell sounds and a short melody. The logos fade away and you see a single button. The bells keep playing indefinitely until you click on the button.
And when you do it, you’re greeted with the title screen “booting up” (sound effect included), while the music goes in full swing with a familiar melody – the one you’ve just heard before, but fully developed. Playing the melody during the logos is a small detail, you might say, but one that makes this moment slightly more satisfying – and everything counts when it comes to the first impression.
Check out the first seconds of this video to see what happens on this title screen in FMOD behind the scenes:
🤖 The main menu of @SPACRgame will use adaptive music in two ways: (1/6)👇 pic.twitter.com/ge7pfJvwjB
— Aleix Ramon 🎵 ~ FixFox out now! 🎮 (@aleix_ramon) July 20, 2021
The bells loop indefinitely in FMOD while playing the 8-bit melody on top of it as a separate event. When the player clicks the button Unity changes the FMOD parameter “start_button” to 1, which tells FMOD to break the loop and start playing the full title screen track.
What’s important here is that I used FMOD’s synchronization to time it with the music, so that the full track fits the rhythm of the bells regardless of when the player clicks on the button. This can mean a delay of almost half a second between the click and the music transition, but the booting up sound effect camouflages it.
But another interesting aspect of the title screen music is that it switches between acoustic, 8-bit, and Hybrid 8-bit music depending on the submenu you’re in. This is how I made it:
There are three different versions of the same track playing at the same time but only one of them doesn’t have its volume turned down. Changing the “screen” parameter lowers the volume of that track while increasing one of the other two.
🪕 Value 0 raises the volume of the acoustic version, used on the “Continue” submenu.
👑 Value 1 raises the volume of the Hybrid 8-bit version, used in the main title screen.
👾 Value 2 raises the volume of the 8-bit version, used on the “Settings” screen.
This creates the impression that the music switches genres seamlessly. It’s fun, it’s a good first impression, and it also gives the player a good taste of the Hybrid 8-bit sound of this soundtrack.
Now grab your tools and let’s move forward: we’re going to use adaptive music to make fixing machines more exciting!
Creating a sense of progression with “I Can Fix It!”
The most unique game mechanic of FixFox is the puzzles in which you fix machines using unusual tools. Like a strawberry-flavored bandaid, or a glowing banana.
To give a greater sense of progression and make it more satisfying for the player, I created various versions of different intensities for the music of these puzzles. Each time a part of the machine is solved, the music increases in intensity; each subsequent level of intensity adds new instruments to the song.
This is the lowest intensity version of the track, which you heard when you haven’t fixed any machine part yet:
Intensity 2, now with heist-y bongos to make you feel as if you’re in Ocean’s Eleven:
Intensity 3, with extra percussion and 8-bit synths:
Additionally, each time you find a machine that’s harder to fix (Tier 3 or higher), the music gets funkier, also increasing the intensity as you solve the puzzle.
Intensity 1, with drums and funky guitar:
Intensity 2, with additional heist bongos:
Intensity 3, with Rock organ:
All of this was implemented similarly to the menu music. All track versions play at the same time while a parameter controlled by Unity changes the volume balance of the tracks to determine which one you can hear. Each fixed part changes the parameter, and so does the music you hear.
This makes it more satisfying for the player to solve these little puzzles because now she can hear the progress.
Let’s move on to larger puzzles.
Informing the player with “Jumbots, Assemble!”
While “I Can Fix It!” plays while solving small-scale puzzles, “Jumbots, Assemble!” plays while fixing bigger scale puzzles. It plays inside the junkyards, locations that are a puzzle on their own. Because of this, my idea was to make a bigger, heavier version of “I Can Fix It!”.
Some moments in the junkyards include riding Jumbots (big, heavy, cool machines). When the player does so, a different version of the track plays, one with a layer of heavy percussion added on top of the original song. To make this transition seamless without stopping the flow of music, we used FMOD to lower the volume of one track and rise the volume of the other the moment a parameter changes. It’s the same principle as in the previous cases, just applied differently.
This is a simple use of adaptive music but it serves two functions: it informs the player of its current state (riding a jumbot), and it reinforces the idea that Jumbots are heavy machines. In Pixel Art games we normally get limited visual information, so it’s always useful to think of ways in which the music can reinforce the atmosphere and vibe the visuals are trying to achieve.
This is the normal version:
Which then morphs into this while you’re riding a Jumbot:
Next, I’ll show you something musically more complex. Here’s where the real fun begins!
Portraying conflicting ideologies with “Pirates and The Order”
This is perhaps the most interesting use of adaptive music in FixFox.
There are two opposing factions in the game. The Pirates are chaotic and rebel. The Order is methodic and stoic.
Jaroslav’s idea was for each one to have its own theme, very contrasting with each other (ok so far). And also that when both parties interact with each other, both themes play at the same time.
But actually, it’s a genius idea. The most logical and effective approach when you have two different and equally important identities that interact with each other, each one with their musical theme, is to simply play both at the same time.
Efficient, but hard to execute!
Luckily, and like any composer would tell you, one doesn’t become a composer because they like easy things. So I composed both tracks at the same time, double-checking every note to make sure everything would fit together. It was like making a thousand-piece puzzle, where every piece fits with the others only when you put it in the right place. This was hard. And fun.
The Order theme is deep and solemn. To make it sound monk-like, I added vocal samples of a vocal technique called diphonic singing used by Tibetan monks. Check it out, it’s fascinating:
But I wanted The Order to feel ridiculously over-the-top, so I added apocalyptic-sounding horns to crank their (apparent) seriousness to 11. I also layered myself shouting “huh”s and “hah”s (as if a group of monks was training) and a touch of military snare, both to reflect the excessive dogmatic discipline of The Order.
The result sounds like something a parade of monks with a brass section and percussion would play – and well, there’s the 8-bit thing too.
See how I destroyed my throat making it:
This is the full theme:
On the other extreme, the Pirate’s theme is wacky, jumpy, energetic. It has drums, an energetic piano, and 8bit synths.
See how I made it:
And here’s the finished version of The Pirates’ theme:
If you’re obsessed with Final Fantasy IX like I am (why wouldn’t you?) you might notice a certain influence from Zorn and Thorn’s theme. After all, they and the pirates are equally whacky (though the Pirates don’t turn into a giant abomination that tries to kill you – whoops, sorry for the spoilers).
And now, as promised, let’s overlap them! This is what plays when both Pirates and Order are present onscreen.
This is how I implemented these tracks in FMOD:
I find this concept very exciting and I would love to explore it further in other games. I think it has a lot of expressive potential and I don’t recall seeing it in any game (if you do, please tell me!).
Telling a story with “Bryn and Artor”
Here I also used the concept of “stacking“ themes as in “Pirates and The Order”, but instead of using it to represent ideologies, I used it to portray two characters and their story.
Bryn and Artor are two brothers. I’m not going to get into details now not to spoil anything, but all I’ll say is that they have opposite personalities (a but like the Pirates and the Order but on a more personal and intimate level). Bryn is delicate, creative, and carefree, while Artor is bold, serious, and calculative. They both come from an aristocratic family.
As in the previous track, the idea was that each one had a theme and they would play together in some significant moments. As in the previous case, while one theme was playing the other one should be able to be layered on top at any point.
For Bryn’s theme, I decided to make it a solo piano track. Why? Four reasons.
Reason 1: a solo instrument would be easy to combine with Artor’s track, which I suspected would be orchestral.
Reason 2: the piano allows for very delicate and expressive parts that reflect his fragility.
Reason 3: he’s from an aristocratic family. Piano equals (sometimes) aristocracy.
Reason 4: how can we reflect his creativity? By associating him with a genius. I tried to make this piece sound so that some parts remind you of Mozart. (emphasis on tried).
The track starts shy and evolves into a playful classically sounding piece, with a slightly darker (but still classical-sounding) ending.
For some parts that still break my heart when I think about them, I made a sadder version:
For Artor, I made a serious orchestral piece. This represents better his stoic and serious personality as well as his aristocratic ascendancy (and well, his kinda arrogant behavior). It plays in a rather low register, which fits well below Bryan’s higher-pitch piano parts.
Here are both Artor’s theme and Bryn’s theme together. This plays whenever both are together:
To take things a step further – and by now you can guess I like to do that – I composed the tracks so that when they play together they tell the story of the two brothers. The next three paragraphs have minor spoilers, so if you intend to play the game please skip them!
The track starts with Bryn (the piano) being playful but doubtful from 0:00 to 0:09, while Artor (the orchestra) supports him from below, static and stern. At 0:10 Bryn starts getting creative and explorative, while Artor follows Bryn one step behind, imitating the notes that Bryn played earlier. He does so with increasing intensity, not as flexible as Bryn but with determination.
At 0:27 Bryn shines, playing the central melody of the piece, the “chorus”. Meanwhile, in the background, Bryn follows him, but he keeps doing the same – he’s still the same. At 0:36, a familiar situation repeats: Artor finally catches up with Bryn (the orchestra strings play the melody) but Bryn is already one step ahead with a flourishing melody.
At 0:45 things get darker – their differences bring them enormous pain. Bryn takes the initiative with a turbulent piano part, Artor quieter in the background, not present enough for Bryn. But at 0:54 Artor comes back with a sad, orchestral version of Vix’s theme. Why? Because Vix is the catalyst that lets them complete their story. Without Vix, Artor would have stayed forever lost in space, and it’s Vix who helps him amend things. Vix influences Bryn too, be it through Artor’s actions or herself, so at 0:56 Bryn (piano) echoes Vix’s and joins Artor in playing it.
End of spoilers!
Is this overthinking? Absolutely. But sometimes these little details slip through the player’s subconscious and help the story have a greater impact. Sometimes the difference between an OK and a great soundtrack is just spending extra time finding ways to make it reflect better the game’s world.
Another quality of a good soundtrack is that it never feels repetitive. And I came up with a little FMOD trick for that!
Keeping a loop fresh forever with randomized solos in “It’s Cozy Here”
It’s Cozy Here is a track that plays often during the game. It’s played in friendly locations and settlements. Each region has its own version (the original one for the Salty Desert, a version with kalimba for the Sour Woods, one with banjo for the Sweet Fields, and one with detuned piano for the Bitter Mountains), plus an additional one for Vix’s ship at the beginning of the game. You can hear them all here.
But I took things a step further to add more variety:
- I recorded 26 little guitar solos/melodies.
- I programmed FMOD to trigger them randomly at the beginning and middle of the track.
Check it out:
This means that every time you hear the track there are little differences, which keeps it fresh longer. It’s not a panacea, but I think it’s a very efficient way to use the power of FMOD to add variety (or Wwise, you could do exactly the same).
This is a little trick I came up with and that I’d like to see used more often (if you know any examples, let me know!). As always, feel free to steal it.
This is the full track from the OST album (though this version doesn’t have the any of the randomized solos):
We’re arriving at the finale. And like in any good story, we shall rise the stakes for the sake of excitement.
Raising the stakes with “Life.Death.Data”
This track plays in different parts of the game whenever there’s some kind of mystery or unsettling location. At some point (I won’t spoil it) things escalate and so does this track. A lot.
The basic version is a synthy 8-bit mysterious track. Some of its up-and-down arpeggios could remind you of “Floating in Space”, one of the space tracks I showed before:
It also has some unsettling ascending patterns starting at 0:34 – I got this idea from the ones you can hear in the dungeon theme from The Legend of Zelda:
This track has 5 different intensities, with the last one going all over the top into hybrid orchestral mode.
Intensity 3. Things start to amp up here:
Intensity 5 (All aboard the Epic Sci-Fi train!).
This last one was actually a last-minute addition to make a specific climactic part more satisfying – the game deserved it! As it deserves all the care and attention put into its adaptive soundtrack. If you haven’t done it yet, I recommend you to read this article where I explain the story and creative process behind this game’s soundtrack.
Aleix Ramon is a game music composer from Barcelona (Spain). Follow him on Twitter and Instagram, where he teaches game developers how to use game music better, and join his email list to be part of a small bunch of creative minds.