Sound Horizons #3 - Complete song from start to finish


Great news: I've written all the layers of Sound Horizons' song and I've completed all its sections! I'm really happy on how it sounds, so I'm sharing a preview with you, along with details on the writing process.

On last entry, I had done the layers from 1 to 4, out of 6. There were only 2 remaining. It's time to hear them!

A triumphant finale

The 5th layer is the last playable one of the level (well, before the "final boss" challenge that we'll do another day). It's a climax, that should be intense and also create some hype for the upcoming finale. So it's not the time to play all my cards yet! But there's a lot I can use, especially after the layer 4 which was voluntarily tuned down.

This is the point from which the song takes a full electro turn. The drum is a heavy electronic kick/snare, with small acoustic sounds to keep the initial jazz identity. Several synth play motifs used in the first layer, while chords are played in sustain by an organ, and an electronic bass play the "root notes" of the song. But most importantly… This section introduces a main melody! Thus far I avoided melodies, to let the player focus better on the notes they should be playing. But now we're arriving at the end of the level, it's time for an extra challenge by making the song a bit more complex. Of course, I must still follow some rules: the melody should not distract from the gameplay. This is why it has to be slow, with mostly sustained notes, played only on beats, and with na instrument with low attack and a pitch dissociate enough from the "interactive" instruments (that are yet to implement). I made the choice of a trombone section with reverb, which almost plays in the background. The decision to play this melody now is because I intend to play it as well in the last section, so I better introduce it now to familiarize the player with it, in order to make it more epic in its reprise.

Listen to layer 5 here

Then we move on to layer 6. This plays at the end of the level, after the player has finished it. Some kind of "score" will be displayed, then the Free Mode will immediately be entered. The reward for completing the level is to enjoy the music and its interaction, so I decided to let the player immediately experience it (rather than leaving the level and restarting it). This part should be triumphant, epic, but also euphoric and a bit soothing.

We continue on the electro base from layer 5, but with more instruments! The horns are joined by trombones, a saxophone, and synth strings. A synth choir play the chords, the piano play the base notes, and some synth are tuned to have a clearer sound. The percussion gets more intense, with acoustic hit-hat to mark the beats even more. And finally, some light flutes with delay add a small touch of organic sound and dreamy vibes. Overall it's a lot of instruments playing together, but I believe each one has its purpose. It just mix well! Before exporting though, I'll have to adjust the balance on all layers so that they all keep the same volume. This will also have to be partially configured within Wwise.

Listen to part 6

Okay, we have all our layers now! It's time to finish each one of them by extending them to the three next sections.

Horizontal chord progression

The composition of the whole song was something I had already done earlier. It was the first step of the writing process. Now that I have implemented it, I might as well detail it more. I have written 4 sections of 8 bars each. Each section starts with the same notes, and almost the same chords : 2 bars on Eb (with minor Eb chord) and 2 bars on Db (minor Eb 7). Starting from that base, they then all follow their own path, using some dramatic transitions with major Ab, to eventually land back in the next section on Eb again (usually by transitioning with major Gb). However, these 4 sections won't just all play one after another in order! Eh, this song has vertical layering, why not a horizontal one as well? It won't be too much complicated though. See, among these 4 sections, the first two start in minor Eb, but the last two start with major Eb! They are not even in the same scale. To be honest, I stumbled on it by accident, and it sounded so epic I had to put it in the final song! However it's a bit too epic, I can't just play it in loop every 2 sections, it would reduce its impact. So here is the rule: during the first 3 layers, only the A and B sections are played, then from the 4th layer, they can be succeeded by B and CBut not always, I think that Ideally I want to play "A B A B C D". And maybe the 6th layer will directly start on C, to conclude the song in the most epic way! However that doesn't mean that I don't have to write C and D for the first layers: the player can "fall back" to these at any time, so they must be able to play C and D if they are active, to have a consistent transition.

With the first section written for all the layers, and the chords already decided, extending all tracks should be easy. And it was, actually! It's mostly repeating the existing, in different chords. But there was still some challenges.

The first one was finding the best way to play the chords, for each instruments. When I did the composition, I only took written notes. Days pass, and while I could still remember how the song was supposed to play, some of the notes I've left for myself were a little obscure… See for yourself:

I took some liberty with musical theory. Like what is an "augmented" or "diminished" chord. A lot of the scrambles you see are later adjustments I made to make this "sheet" more understandable for my future self.

Sound Horizons has a lot of 9th, 13th, "6th", it's tough to determine what a chord really is. Sometime it's purely empirical: I know a note sounds right, but I don't know why! And when I thought one should, it may also turn out bland or even wrong depending on the instrument who plays it! It's especially tricky, because I will later need to generate notes procedurally in the game, so I need to know exactly which one to play when, based on the chord. But for the composition itself, even though there isn't a strong melody, instruments should not play only on the chord notes. It would be too bland! In order to give their part some personality, I had to figure out for each one of them when I could add a 6th, a 4th, a 7th, if it can be applied to other chords, or let as an exception, if the main chord is accentuated enough and could not be mistaken for something else, on which octave it sounds better, etc… Also another challenging aspect of video game composition: because the song loops, the end of a section must prepare for the next one, to make the transition seamless. So do not think you're done when you reach the last bar: make sure the loop doesn't sound awkward or redundant when it makes the transition.

Then came another challenge: the main melody, played on the last two layers. I'm not used to write melodies, given that, uh, I make a lot of generative music. So there was only one method that worked: trial and error. Same challenge as before: I must play notes that accentuate the chords, but also step on other ones to create tension, while not depart too far… And there are also rhythmic constraints here! Playing only on strong beats is boring, but too much off-beats and it's off-putting. Sometimes I even found the perfect notes for two separate bars, but it needed a transition otherwise it would feel weird, and it became an impossible task! Especially because of the constraint mentioned above: the melody must avoid rhythmic complexity. Only slow and long notes. At some point I even realized that playing a single note in a bar could work! I also found a main motif, that I play at the beginning of every section. I was afraid too much repetition would make it annoying, but it turned out giving a solid ground to the melody. Overall it was a tough exercise. But I'm very proud of the result!

And so, with that work done, I completed the music of Sound Horizons! Here is a small demo I put together of all the layers, with all sections

Again, the final balancing is yet to do. Here is how the song looks like in Waveform, with all instruments and sections. You'll notice that some layers (identified by color) have way more instruments than others, even counting that some instruments are used in several.


What's next?

Now that the soundtrack is done, I can almost go back to Unity development! But first, I will need to extract all those tracks, and implement them in Wwise. I've already made it for one song, so this should go relatively smoothly. But most importantly, I also have to create the dynamic instruments that will play during the game! There will be two for each layers (one for the game, one for the player). I must pick what instruments to use, and adjust them so that they sound nicely with the music. Then I will record some samples so that I can use them in the game, again by implementing them in Wwise. But I also have to decide which 4 notes they will play for each chord of the song! So, we're not totally done with the music. But we're pretty close!

However I might put Sound Horizons on a short hiatus soon. Yes, not the first, I know. There is the GMTK Jam coming up next month, and I would like to participate, specifically with Godot 4. It's been a while since I haven't release any game, I want to use my creativity on a small thing. And I haven't fully tried this last version of Godot yet, I heard it has tons of new features (and issues as well)! But to be properly ready for the jam, I should prepare. Therefore, I intend to participate in another jam in June, just to put my hands on the engine. I'll see what I will be able to achieve, and will probably write a post-mortem about it. I'll go back on Sound Horizons right after! See you then.

Leave a comment

Log in with itch.io to leave a comment.