(This article was previously published on DesigningMusicNOW on September 17,2018. For full disclosure, this article has been republished with permission from Scott Looney by Dale Crowley who currently works for Elias)
Adaptive music has been a staple of AAA dynamic game audio for more than two decades, when it was used in LucasArts games such as Monkey Island 2. Featuring the in-house iMUSE music system, combined with MIDI data, and downloadable sound banks, this game achieved a notable level of musical immersion, with flexible responsiveness and organic development that has only recently been equaled. The emergence of third party audio middleware around that time has since slowly developed in sophistication to the level where adaptive audio creation is now easier and more affordable than ever, yet middleware tools written specifically for composers are still somewhat lacking in terms of features, flexibility, and usability.
The Elias Adaptive Music Engine aims to correct this oversight using terminology and functionality familiar to composers who are experienced with adaptive music creation. In this article, we’ll introduce you the concepts that Elias uses for organizing various elements in the project, and we’ll also look into recreating the basic structure in the Elias Official Demo Theme, by breaking it down into its various components. In future articles we will dive into the sophisticated and cutting edge way that Elias handles MIDI, motifs and more. Like a well designed video game, Elias is easy to learn but takes time to master. Hopefully this article will start you on an exciting journey of adding adaptive music to your games. Let’s get started!
Getting Elias Studio and the Demo project
Before we get started, there are a few things you will need. Those are the Elias Studio, The Official Theme, and the Official Theme Re-Creation.
To get Elias Studio visit https://www.eliassoftware.com/elias-studio/
You can download the full Official theme here: https://eliassoftware.com/product/elias-demo-theme/
To download the re-creation theme which we will be using extensively in this article, grab it from here: Elias Official Demo - Recreation
For directions on downloading and installing Elias Studio, watch this video.
Here is a walkthrough of all the steps detailed in this article which you can use as a companion as you step through them:
Also, on the website, under the Resources heading, you’ll find the Tutorial section with many other example videos to help you out – and of course don’t forget the full user guide available from the site as well as the downloaded package.
Elias Conceptual Framework
As stated earlier Elias is a tool for configuring and arranging adaptive music. This means that a composer or editor will generally have already recorded and produced the music content in question and need only bounce it out in their DAW to be able to use it in Elias Studio, which arranges and configures the existing content. To do this, Elias uses a hierarchy of terms that we will become familiar with. In order of size these are Project, Theme, Track, Level, Variation and Segment. Let’s break these down in order:
A Project contains all the music in the game. It also includes all the data used to manage the playback of the adaptive music. The Project is created in a named folder which contains not only the main project file of the same name (which has the .mepro extension), but also all the audio and MIDI assets that will be needed for the project.
A Theme is similar to an individual song in your game, such as the Battle Theme. A Theme must have a specific measure length, time signature and tempo. Themes consist of one or more Tracks that represent the breakout of individual instrumental parts in the Theme. This can be arranged as the composer desires – there’s no specific method required. However a fairly common approach is to break up a Theme into stem mixes of various instrumental groups, such as strings, brass, woodwinds, etc. and place these on different Tracks. Another common approach is to group tracks by audio frequency – having all the bass instruments in one track, all the mid-range instruments in one track, all the high end instruments in a third, and the percussion in a 4th. Since Elias mixes on the fly, it is best to have all of these stems bounced out at the same relative dynamic range. Additionally, there is a mixer in Elias that can fine tune the balance post bounce if needed.\
A Track generally represents one instrument or instrument group as a part of a Theme, though this can vary as need requires. There are two main types of Tracks used in Elias: Loop Tracks and Stinger Tracks. Loop Tracks represent the main body of the music while Stinger Tracks are used for transitions, builds, rewards or even tonal motifs to accent certain events or characters in the game.. There are also two subtypes of Tracks: you can choose to add an Audio or a MIDI track. We’ll look at all of these in more detail later on.
A Level represents a specific vertical location or slot on all of the Tracks in a Theme. The concept of Levels is fairly central to how Elias works so it bears a little explanation, though you may be able to guess its functionality from the name. Basically a Level is a value most often used to express the intensity of a Theme. Generally lower Level values would indicate lower levels of intensity with less Tracks playing at once, while higher Level values represent ‘pulling out all the stops’ and all Tracks playing. This is however only one interpretation, and a composer could choose many different ways to determine what a Level value would do for a specific Theme. Normally the Level changes apply to all Tracks but it can be applied to a single Track (via the Track Groups feature) if desired. Any Level can also have variations, which is the next item.
The Variation represents what is playing for a specific Track at a specific Level value. There are three types of Variations – Single, which play only one or more clips for the Track at a specific Level, Multi, which can randomize or sequence from a list of of clips each time the Level is triggered, and Silent Variations, which as the name states, don’t play at all. We’ll be covering these as well.
The Segment is a subset of a single level on a single track, and it only appears on a Segmented Variation. It is a one bar or longer audio or MIDI file that can be repeated once or multiple times on the track timeline. Imagine a 32 bar song that has a verse-verse-chorus-ending structure. If each were 8 bars long, then you can simply repeat the verse twice followed by the chorus and the ending. The goal of segments is to economize the file size in the case of audio, and increase the number of possible variations in the case of audio and MIDI. Variations with multiple Segments are color coded yellow.
UI Overview
To get started we’re going to open the Official Elias Audio Demo, so you’ll need to uncompress the zip file called ‘official-elias-demo’ which you can get from that link. Next, open up Elias Studio and we’ll open that Project file to introduce you to the overall UI and look and feel.
To open a Project, click the Open Project button, then browse for the folder you just uncompressed. Inside are two subfolders. You’ll want the one labeled ‘Official Elias Audio Demo’ and then inside that folder is the project file you’ll want to open. You should probably see something like this when it opens the first time:
The Project window has a few significant subcomponents. We’ll cover the major areas of focus:
Toolbar – this is where you can perform various tasks relating to the whole project. From left to right these are: Analyzing files for Smart Transitions, Saving the project, Exporting the Package, and Studio Settings, where you set the audio interface and buffer settings as well as other global options like Autosave, and Record, which lets you record your playback as a file. The last two icons pertain to your Elias account and the Shop where you can buy already existing themes for your game.
Player – This area is where you can play back your Themes, as well as preview changes and transitions of different kinds. You can make changes manually by setting Levels; jump to specific Themes or bars; trigger Stingers; and preview more automatic changes through triggering Action Presets.
Main Window Tabs – This area actually contains tabs for every major window available.
Each of these tabs can be independently broken out and placed if desired, and the desired window layouts saved. For now we’ll stick with this more compact approach, but if you accidentally end up with windows in undesired places you can reset your layout by going to Windows > Reset Layout – or just use Cmd Shift-L.
Segment View – This area shows the contents of one or more Segments in a Variati