Horror Vacui 2 Original Sound Version

Horror Vacui 2 is “waiting for review” in both the App Store and Mac App Store and while there is still some work to be done on the final version of the site I couldn’t resist putting together a soundtrack EP.

  1. Space Crickets is an evolution of the original’s Grover and creates a pensive ambience on the title, options and help screens

  2. Gameboy Named Suz returns as the main theme with an extended intro featuring an alternate melody and less monotonous percussion throughout; compare to the original

  3. Fanfare is exactly what it says on the tin; despite its brevity (or more likely, because of) Fanfare took longer to compose than any other track in the game

  4. Planetfall plays immediately after the Fanfare whenever a human-player wins; sore winner victory lap music

The soundtrack album art is an unabashed homage to the Japanese Super Famicom Final Fantasy soundtrack covers.

An MML Review

Unlike the audio in the first Horror Vacui which was created using the Korg DS-10 the sequel’s music and sound effects were produced in MML (which I’ve written about previously). MML is simple enough once you understand it but can be a tough nut to crack initially. What follows is an attempt to channel my inner-Bear McCreary and briefly explain the (relatively simple) Fanfare MML file.

The yellow text represents compiler instructions; in this case the title of the track, the composer and the programmer of this MML file. Comments begin with a semi-colon and are helpful for breaking up your file into more easily scannable sections.

ABCD t120

Simply defines the same tempo (120bpm) for all 4 channels. A and B are the two pulse wave channels. C is the triangle wave channel and is usually used for bass. D is the noise the channel whose primary use is percussion and other non-melodic sound effects.

@v5 = { 10 5 3 2 0 }

This volume envelope produces a passable 8-bit snare hit sound. The volume starts at 10 and rapidly drops to 0 over the course of the next 4 frames. The exact duration of a frame isn’t clear but they are not related to individual note duration or the tempo. While there is only one volume envelope in this file it is named to avoid collisions with the volume envelopes in previous tracks when compiled into a single NSF.

@MP2 = { 24 3 4 }

The MML Reference does a better job explaining vibrato envelope than I would. One thing worth noting, some tones produce a clicky sound with vibrato applied. It seems most pronounced on A (the tone, not the channel). The solution I’ve found is to reduce the depth of the vibrato. Depending on the octave, this may not help.

C l8 o4 q4
B l8 o3 q4 @0 v4

These lines (and similar) set the defaults for each channel including note length, octave, note cut-off (quantize), duty cycle (see the Duty Cycle Explanation section in Nullsleep’s MCK/MML Beginners Guide) and a static volume. Note that the noise channel in this MML file uses the previously defined volume envelope.

CB r b16 b16 b > d f+ q7 a2 q4 [ d16 c+16 d r ]2 r

Finally we get to some actual notation. This bass phrase is played on both the C and B channels but because of the previously defaults, in two different octaves. Here’s the same in traditional music notation:

You’ll see it starts with an eighth note rest (r), followed by two sixteenth notes playing B (b16 b16) and an eighth note B (b) before entering the next octave (>) and playing an eighth note D followed by an F# (d f+). Up until this point all tones have only sounded for half the duration of the note length because of the default note cut-off. The note cut off is changed to play for 7/8ths (q7) of the A half note (a2) duration before returning to the previous setting (q4). The phrase ends with a sixteenth note D, sixteenth note C# followed by an eighth note D and rest repeated twice ([ d16 c+16 d r ]2) with one final rest (r).

The melody and percussion phrases are split onto two lines for readability only—the new line does not affect the timing of the phrase in any way.

A r b16 a16 MP3 b4 MPOF > c+ MP2 q8 d4 < q7 b r MPOF 
A [ b16 a16 b r ]2 r

The only new thing in the melody is use of the two vibrato envelopes (eg. MP3 b4 MPOF). And the melody in traditional notation:

D [ b32 ]4 [ b16 ]2 [ b ]4 r b r16 [ b32 ]2 [ b16 ]2 
D b r [ b16 ]2 b r4

Percussion is even more straight forward. And again, in traditional notation:

Horror Vacui 2
Salter Cane’s Sorrow
Shaun Inman
November 17th, 2010 at 3:06 pm
Original Music