Dynamic Game Music - Made Easy
AddThis Social Bookmark Button

Briefly about Audioflow

Audioflow key features

Audioflow Overview

This manual section describes the overall structure of Audioflow, specifically the Audioflow Engine and the Audioflow Composer.



Diagram showing Engine collaborating with FMOD and game engine.

Audioflow consists of the following elements:

Audioflow Engine
A library that contains the functionality for loading an Audioflow Soundtrack from a file and playing it while reacting to input from the game or application that uses the library. The Audioflow Engine uses FMOD for sound playback.
Audioflow Composer
A graphical user interface for creating an Audioflow Soundtrack based on sound samples created in a Digital Audio Workstation (DAW).
Audioflow C# API
A C# Application Programmer Interface (API) for controlling the Audioflow Engine from the game or application.


This section describes the basic workflow of using Audioflow, from exporting music from a DAW to playing the music inside your game or application.

Basically, the workflow is like the following:

  1. Export music as sound files from your DAW.
  2. The sound files are imported to the Audioflow Composer, and the soundtrack for your game or application is designed here.
  3. The finished soundtrack is deployed in your game by exporting it from Audioflow and controlled in the game using a simple scripting interface.

These 3 steps are described in detail below.

Export from DAW

When some game music has been created or recorded in a DAW, it must be exported as sound files to be used in Audioflow.

Audioflow supports import of most standard sound formats, including:

  • AIFF - Audio Interchange File Format
  • FLAC - Free Lossless Audio Codec
  • MP3 - MPEG-1 or MPEG-2 Audio Layer III
  • OGG - Ogg Vorbis
  • WAV - Waveform Audio File Format

Actually, since Audioflow uses FMOD for loading, it supports every sound file format that FMOD supports, except for music modules, multi-sounds, or playlists.

When the finished Audioflow Soundtrack is deployed in a game or application, the sounds will be compressed, so the best choice for input file formats are the lossless formats, e.g. AIFF, FLAC, or WAV.

There are a few things to consider when exporting the music from the DAW for usage in Audioflow:

  1. Export the music separated in tracks. Since Audioflow is able to create multiple variations using combinations of waveforms, having the music separated into tracks is absolutely essential.
  2. Export loops as a single iteration. If a track loops in the DAW, export a single loop iteration instead of the full looped track. Since Audioflow has its own looping functionality, this will save editing time and / or memory in the game or application.
  3. Note the tempo. If the music has a steady beat, note the tempo, measured in beats per minute (BPM). This value will come in handy when editing the music in Audioflow.

Music Design in Audioflow Composer


Audioflow Screenshot showing Audio Blocks, Group Blocks, and links.

When the exported sound files are ready, they are imported into Audioflow Composer. At this stage the process of Music Design begins.

Music Design is the process of converting the raw music tracks into a fully interactive game or application Soundtrack. It consists of the following steps:

  1. Music Structure Design. The separate tracks exported from the DAW must now be reassembled in sequenced structures based on Audioflow Group Blocks. The structures are hierarchical, and the hierarchicy should typically reflect the structure of gameplay or levels in the game for which the music is created. The result of this process is a set of interconnected blocks, called the Audioflow Network. for this
  2. Emotion Design. To be able to subtly control the playback in the game or application, a set of numeric parameters called Emotions are now defined. In a game development setting, this set of Emotions are defined by the combined forces of music designers, game designers and programmers. The emotions represent the emotional response that the game should invoke in the players, and their values must be implemented in the game by a programmer. When the Emotions are defined, they are created in Audioflow Composer, and Emotion values are assigned to specific blocks, e.g. if an Emotion called 'Spooky' is defined, a piece of music that sounds spooky has a high 'Spooky' Emotion value, but a happy piece of music could receive a lower 'Spooky' Emotion value.
  3. Soundtrack Export. When the Network and the Emotions are finished, the Network and its sound data can be saved in an Audioflow Soundtrack.

More detailed information can be found in the Audioflow Composer chapter.

Soundtrack Deployment

When the Audioflow Soundtrack is complete, it can be loaded, played and controlled from the Audioflow C# API.

This is achieved by added the Audioflow library to your C# game project, and executing a few simple commands.

Let's see a simple example:

using Audioflow;
class MyGame : MyGameFramework {
    void Start() {
        // Start the Audioflow Engine.
        // Load an Audioflow Soundtrack consisting of a Score file (.auf) and
        // an FMOD sound bank (.fsb).
        Controller.LoadSoundTrack("mysoundtrack.auf", "mysoundtrack.fsb");
        // Play a block called 'Start'.
    void Update() {
        // Update the Audioflow Engine for each frame in the game.

This example initializes the Audioflow Engine, loads a soundtrack, and plays a part of the music called 'Start'.