Ultima III Soundtrack

Channel:
Subscribers:
2,880
Published on ● Video Link: https://www.youtube.com/watch?v=XZZ2J44wPl4



Game:
Duration: 7:26
1,937 views
94


Before I go into a technical description, let me first extend a huge THANK YOU to Minstrel Dragon for sharing with me many of his 8-bit disassembling / reversing efforts over the years, which included a commented disassembly of this music engine, and without which, I would probably have not made this video.

This video is a conceptual visualization of the Apple II Mockingboard game music engine logic that Kenneth Arnold developed to play his Ultima III musical compositions. And back in 1983, it was the very first full 8-bit computer game soundtrack (yet another "first" in the Ultima series).

For each song, each voice can contain notes and rests (called "Content" in the video) and can also invoke defined patterns of notes and rests. Reusing patterns allowed longer music to take up less RAM. Patterns can be reused across the voices. When voice-specific content is brief, it's displayed alongside an adjacent pattern in this visualization. Sometimes the content is simply short rests unevenly applied to the voices to create echo effects (i.e., in Dungeon and a section in the Exodus music).

Patterns can be transposed upward by a number of semitones, increasing reusability (e.g., "Pattern 5 up 2" means pattern 5 played up two semitones, or one whole step). Unfortunately, this transposition logic was broken in the Commodore 64 port, making the music less interesting (though, through careful comparisons made between the Apple II and C64 engines, Minstrel Dragon found that the note data to be exactly the same).

Years later, these concepts would be generalized (song patterns, and an ordered pattern playlist for each voice), a GUI would be put atop it, and it would be called a tracker.

Ticks per quarter is the delay counter for a quarter note. The larger the number, the longer the duration. If its prime decomposition contains at least one 3, then triplets are supported. In only one song is there a tiny bit of roundoff error (Rule Britannia has q=30, and Arnold choose 7 for sixteenth notes, and 5 for sixteenth triplets). The Wander song is 30 ticksPerQuarter and has a BPM of 123, so for the other songs, the BPM is 30/ticksPerQuarter * 123.

Would be interesting to see if Arnold created this early Mockingboard music engine out of whole cloth, or if it was based on existing engines. For example, through some recent retro-archeology efforts, Chris Abbott has started to discover what music engines C64 composers based their code upon (in one prominent composer's case, it was an early type-in-code book).







Tags:
Kenneth W Arnold
Ken Arnold
Ultima III
Mockingboard
Apple II
Commodore 64
C64
Lord British
Richard Garriott



Other Statistics

Ultima III: Exodus Statistics For David Youd

At this time, David Youd has 6,372 views for Ultima III: Exodus spread across 2 videos. His channel published less than an hour of Ultima III: Exodus content, less than 0.98% of the total video content that David Youd has uploaded to YouTube.