Cosmic Quest: About the Music (Part 1)
Howdy, folks! This is the first follow up post to the "Cosmic Quest: An Overview" post and will primarily just focus on my work for the game. There will be more related to Cosmic Quest in the future as I acquire more content to show, namely speaking focusing on the many station types and what's going on on those. In this first post of "Cosmic Quest: About the Music", we are going to talk about the technique of Horizontal Resquencing and my use of it in Cosmic Quest. If you haven't read the "Cosmic Quest: An Overview" post, please go check that out! This post is written as if you already have the info from that post and won't go too much into what the whole game is. To start, let's focus in on that video I posted last week:
To reiterate briefly, what is shown above is some of the games from the Table-Top Stations that have the big interactive table displays (king of like a larger sized tablet). On these stations you learn about (and in the order of the video) what materials are safest for space travel, farming in space, astronaut health in zero-gravity, building a sustainable colony on Mars (not in the video), and more!
So, let's first touch on the music for the game as a whole. All of the music in the game, minus your fanfares for winning/losing or acquiring something, is dynamic music using a process called "Horizontal Resequencing". Now when I say Dynamic Music I'm not talking about level dynamics between loud and quiet, I'm talking about music that can change course depending on an input source or parameters from the game engine, also refered to as Adaptive Music, or Interactive Music. How we refer to the music, whether it is Dynamic/Adaptive/Interactive, is dependent on on how the music functions or is changed. Might sound a bit weird, but let's break down the basic concept of how this is done. With Horizontal Resequencing, what is changing in the music is the musical phrases, or a determined set of bars of music. So, for simplicity sake, say I composed a 4-minute-long piece of music that is pretty static (doesn't jump to high or low in volume but stays in a general range, no key changes, stays one tempo). What I can do is split up this 4-minute-long composition into little musical sections, either 4- to 8-bars in length, and have either a separate software application or the game engine itself, via coding, to randomize these many small musical sections to re-order (or resequence) the playback of the piece of music. There is more that goes into it to make sure the music sounds good triggering this way, connecting changes to parameters within the game, having style/tempo/key/instrumentation change by those set parameters, etc. But thats a separate, and fairly long disussion. There are plenty of good books and tutorials online about Horizontal resequencing and I can touch on it more in another post and link to sources I found to be super helpful. For triggering the music to function this way, we (and whenever I say we I'm referring to the Audio Lead at Creative Kingdoms LLA, Andrew Benz, and I) used the Psai Music Engine that's available through the Unity Asset Store as an importable package, it is made for Unity 3D game engine only (at the time of this writing) and Windows-use only. It's a really useful tool and easy to use, saves a lot of programming time, and is pretty inexpensive! It comes with a standalone app that you set up all your framework in (clips, themes, trigger routing, etc.) and can test right there. From there you can export that framework to your Unity project for use, and there is a less thorough editor available from the imported Psai package for quick minor fixes to your Psai settings. (I'll provide a link below, they have really great tutorials right on their page too! And to note: Psai Music Engine is primarily just used for the Horizontal Resequencing technique only.) Moving forward!
Now let's focus on the music for these Table-Top Stations specifically. In the video above you heard 2 different tracks, one right at the top of the video, and the other one playing throughout each of games (we'll touch on why that is soon). In this area of Cosmic Quest, the Horizontal Resequencing is handled as Dynamic, that is to say the triggering of the musical sections is "random" and not linked to any aspect of the gameplay. Once the game is going and the music is triggered to Play, the music changes based on a random choice of options that I set. In theory you could just let it go randomly in any direction and pick any music phrase you want, but depending on the style that might not sound musically sensible (again there is an artistic choice in what is/isn't suitable, another discussion). What's cool about Psai is that you can set up routing options, potential paths that one music section could branch to any of 4 other musical sections that you choose, and from whatever that selection was it could branch to another 3 choices from there, and so on. SO, in a sense the music is randomized, but in predetermined options that I set so it still sounds musically pleasing. The first track you hear, and which pops up a fair amount throughout the many stations, is the Robonaut Theme for his Tutorials. He doesn't stay on the screen too long so the music didn't need to have a large amount of clips (little sections of music) or have a very long runtime of different material. So, to cover some of the randomization points I wanted to hit so players wouldn't get fatigued hearing the exact same thing, I provided 3 separate paths all consisting of 4 musical sections (with different instrumentation playing the melody) before looping back to the front. So we had something like this going on:
1 2 3 4
Start A Middle A Chord Change A End of Loop A |--- Start B --> Middle B --> Chord Change B --> End of Loop B ---|
Start C Middle C Chord Change C End of Loop C
So when the music is triggered to Play, a "Start" section is chosen at random, and plays all the way through. Before it it is done playing, Psai calculates a random choice of which version of the next section it wants to play. So say we hit Play, we get "Start B", it plays through and Psai then plays "Middle C", that plays all the way through and Psai selects the next seciton at random as "Chord Change A", plays through that and finally gives us "End Loop A". Once it goes through all 4 phrases of the musical piece, the music will then loop back around to pick another section at the "Start" at random and will keep going around until the game triggers the music the End or Stop. Note: Psai will not just loop back around by itself, you do need to set up your routing and settings within Psai for this to work. Again they do offer some tutorials on their selling page in the Unity Asset Store and on their website, and I can also go over how to do that as well in the future.
Next, let's talk about the ambient music that's going on during gameplay. The music is triggered in a similar fashion to the format above, though with more sections available. The transitions from section-to-section are less obvious due to the nature of the music being very washy and ambient. Let's talk about some creative desicions about this track(s) before touching on the last technical point I want to touch on. Ok, maybe this is slightly technical too but as I mentioned in the previous blog post and above, each of these different games do play the same type of music (as seen in the video transitioning through different games, the music doesn't change), the washy ambient music. There is a reason why I didn't make a different sounding track for every single Table-Top game and here is why:
All of these photos were taken be the Director of Game Programming, Allison Salmon, of Creative Kingdoms, LLC.
As you can see, all of these Table-Top displays are in close proximity to eachother in a large room(s). So That being said, and without making a big roundabout point, it made more sense to make something more soundscape-esque though still musical (there are notes that still play, though very slow). What's nice about the ambient washy music is that non of it really hinders another stations audio, and they all just add more to the washy sound as a whole. There are note-order changes and octave changes happening in the different sections of the music which helps with adding different textures.
Let's jump to my last technical thing! So the last thing I did differently with this track is utilize a cool Psai Music Engine fuction, called a "Highlight Layer". This is a neat state category for some clips to be set because this plays along with/on top of the music and when called it does not override what is currently playing (there is a hierarchy in Psai for prioritizing different music states, again this is another discussion and they also cover this in detail on their site). The one big important thing about it, it does not play in time with your music, so it is not tempo locked. So this feature might not get much use depending on the genre, but for ambient music it is fantastic and luckily we got use of it here! So what I decided to do with this, and to add to some randomization, was to setup various arrays of all sorts of blippy/bloopy digital chirp sounds that had enough reverb to blend it in with the "environment" of the music mix. All of these arrays are triggered in random intervals, there can only be a certain number of those called within a set amount of time (to not overload anything or become distracting), panning is randomized as well, and so is the pitch. It really adds to the atmosphere, I feel, like it's this digital environment (since all of these tests are digitally represented). That specific music was probably my favorite to do for this game, granted I had alot of fun doing all of the music as well (we'll touch on those in Cosmic Quest: About the Audio Part 2), this one was more about experimentation and being aware of the environment it's being played in. I really enjoy that kind of stuff, It presents some really fun challenges! So that will conclude the Cosmic Quest: About The Music, for now! Part 2 will be on it's way where I'll talk more about the other stations and the music for them. I'll also do a post about the Sound Design for the game as well which will be separate, I was originally going to do one post for all the audio but that was going to be waaaaaay to long, so we are going to break it up. Thank you so much for reading, if at any point you want me to elaborate more about anything regarding these blogs let me know! Have a great day! -TMR For more information about Psai Music Engine: https://www.assetstore.unity3d.com/en/#!/content/24788 http://www.homeofpsai.com/ For more information on Cosmic Quest: https://www.kennedyspacecenter.com/
For more information on Creative Kingdoms LLC: http://www.creativekingdoms.com/ https://www.facebook.com/creativekingdomsllc/?fref=ts