syltefar.com: Generative Music

systemgamelog
🎲 random genres graphics themes release info hardware features

Generative Music

Games with music generated at run-time in software, also known as procedural or algorithmic music.

Generative music can be employed for artistic reasons, technical reasons, or as a means of providing adaptivity. Thus, generative game music is not a subset of adaptive game music, but an orthogonal classification that often overlaps with adaptive game music.

Adaptivity and Interactivity

Generative game music is often adaptive, meaning that the music reacts to changes in game state. This can be achieved by modifying notes played by either removing notes or modifying them, as well as by changing the timbre of instruments. In many respects, making generative game music adaptive is easier than making linear game music adaptive, and it is often explained as the reason for making the music generative in the first place.

A subgroup of generative game music is 'interactive', meaning that it is directly affected by player input.

These categories will be explained further below.

Adaptive Generative music

Mini Metro (Android)
Music is generated algorithmically, and elements of the music changes based on game state.

An early example is Otocky (1987) that generates musical notes when using attacks. Picking up different instruments correspond to picking up weapons. The sound changes, along with the attack pattern.

Other games focus on representing the current state of the game musically, such as Spore (2008) where the generated music in the creature editor has different scales depending on which type of creature you're creating (e.g. minor for predators, major for herbivores).
Similarly, Mini Metro (2016) generates notes directly from the metro map and the state of the trains. See this talk for more information.
Cocoon (2023) generates notes and changes timbre as a result of game state, exemplified in the 2nd boss fight, based on cloak state and movement speed.

Non-adaptive Generative music

Music or samples can be generated at runtime as a space-saving measure. This was rarely used in games, but was extensively used for cracker intro and console boot-up sounds.

The early LucasFilm Games sci-fi ball game Ballblazer (1985) generates non-repeating title screen music based on patterns that can be randomly selected and sped up.

Tim Follin's impressive 1-bit music for the ZX Spectrum is also non-adaptive. More on this later.

Interactive Generative music

Tetris Effect (PS4)
Interactive music is generated directly from player input.

Otocky (1987) was an early example of interactive music as well as adaptive music. Musical notes were generated directly from players pressing the attack button.

A group of games further developed using player input to generate musical sounds synchronized with a backing track. In Rez (2001), enemy hits trigger drum machine sounds added to the music mix. Similarly, in Tetris Effect (2018), direct controller input is quantized and then used to trigger samples on top of a backing track.

Some games use the horror movie trope 'Scare chords' where shocking events are accompanied by sudden orchestral stabs. Dead Space uses this technique when enemies appear on the screen for the first time. Condemned 2: Bloodshot used a similar technique during certain fights, where the fight sound effects would be replaced by musical stingers. Another game where violence is accompanied by music is Killer Instinct, where every hit in an ultra combo plays musical notes.

Other examples:

Level of Generation

Generative music can be generated at the level of individual notes, or at the level of software synthesis of the musical sounds themselves.

Note-generative music

Spore (Windows)
Note-generative music is the more common approach to generative game music, where individual notes are generated at runtime, e.g. MIDI messages.
Most often, the generated notes are played back by either hardware synthesizers or samplers.

A subset of note-generative music generate notes directly from play input, called 'interactive' music. Examples of this include Amiga game Extase (1990), where musical samples are played on top of a backing track for every user action, and Tetris Effect (2018), where player input is quantized and then used to trigger samples on top of a backing track.

A more subtle approach is note generation based on game state instead of player input. One of the most famous examples is the usage of PureData for editor music in Spore (2008). Spore mostly uses note generation to trigger samples.

Other examples of this technique is seem in Mini Metro (2016), Uurnog (2017), Rytmos (2023), Everyday Shooter, and ODDADA (2024).

Realtime music synthesis

Cocoon (PS5)
A less common approch is to generate music at runtime with a software synthesizer.

Defender (1980) doesn't have music, but it's sound effects were all generated at runtime by a custom Motorola 6800-based sound card. This is quiet rare, historically due to CPU constraints and the existence of hardware synthesizers in common game hardware.

Tim Follin would write software synthesized music on the ZX Spectrum, referred to as 1-bit music, because it was generated by rapidly turning a 'Beeper' (tone generator with no volume control) on and off, acting as a 1-bit D/A converter.
Using this technique, Follin could do 5-voice polyphony on a 3.5 MHz machine.

Here are a few examples of Tim Follin's 1-bit music on the ZX Spectrum:

The in-world synthesizers of Fract.OSC (2014) are implemented using PureData and generate music in realtime.

A suite of custom software synthesizers generates all the ambient background music for Cocoon (2023).

Peggle Blast (2014) used Wwise built-in tone generators, and the plugin SoundSeed Air to generate sound as a space-saving measure to use less than 5 MB disk space for all audio. It uses Wwise built-in features to generate sound effects and music at runtime.

See also Sim Cell (PureData, Leonard J. Paul).

References

tag   : #genmusic
games : 17

Games

Title ↓System ↓Year ↓

17 games in database, 4 completed (24%). Year range: 1983-2024, median: 2016.
list - box art - screenshots

cover

Moon Dust

Commodore 64 1983@4328

cover

Ballblazer

Commodore 64 1985@4329

cover

Extase

Amiga 1990@1377

cover

Spore

Windows 2008@1100

cover

flOw

PSP 2008@45

cover

Killer Instinct

Xbox One 2013@728

cover

FRACT OSC

Windows 2014@4331

cover

Rise of the Tomb Raider

PlayStation 4 2015@4326

cover

Mini Metro

Android 2016@3091

cover

Uurnog

Windows 2017@4355

cover

Tetris Effect

PlayStation 4 2018@2069

cover

Ape Out

Windows 2019@2366

cover

Cocoon

PlayStation 5 2023@3824

cover

Rytmos

Nintendo Switch 2023@3546

cover

Mystery Artifact

Windows 2023@4358

cover

Ynglet

PlayStation 5 2024@4357

cover

Xenosphere

Windows 2024@4359



Sitemap

Main pages
Game Database
Tags
External links


Screenshots marked with 🍒 are created by syltefar and are considered public domain, free to use for anything. If you want to, you can note where you found it and link to this page.

syltefar.com v.2.5.2 2024-11-13