GoatTracker lets a composer prepare C64 music on another computer. The editor runs on the host; its exported music and playroutine run on the C64. During editing, reSID or supported sound hardware supplies a way to hear the result.
The editor was written by Lasse Öörni, known as Cadaver, and its readme credits later contributors. It is different from the GoatTracker Tweak Utility, a C64 program for editing existing GoatTracker song data.
An instrument contains small programs
Version 2 uses step tables for waveform and pitch changes, pulse width and filter effects. The tables can set values, change them over time and jump to another table position. A note starts behaviour that continues across later updates.
A pulse-width table, for example, can begin with a narrow pulse, increase its width for a set number of ticks, decrease it, and loop. That is a compact description of a moving timbre. The C64 player performs the repeated register changes; the composer does not enter a fresh note for every step. (GoatTracker 2 readme, section 3.4.)
Pack the song for its destination
The packer/relocator asks for a start address, a zero-page address and an output format such as PRG, binary or SID. It can remove unused patterns, instruments, table entries and player code that the song does not need.
The exported routine has an initialisation entry and a call that advances the music. A game must reserve the required memory and arrange that call at the intended rate. Moving the editor onto a larger computer has not removed the target machine’s timing constraints.
Choose the player’s trade-offs
Player options can add sound effects or buffer SID writes. The manual explains costs in memory and execution time, and warns about interactions between music, effects and shared register state. These are choices for a particular production, rather than one export setting that is best for every game.
GoatTracker keeps those low-level decisions close to the composition. The result is still music for a SID chip, with its characteristic voices and register behaviour, even though the keyboard and screen used to write it belong to a different machine.
Sources
- Lasse Öörni and contributors, GoatTracker 2.77 readme, sections 3.4 and 5: original project documentation. Features here are scoped to version 2.
- Cadaver, tools catalogue: host editor, audio backends and the separate C64 tweak utility.