SIDin #10 — Goattracker 2: a cover in the table-based GT2 (Stefano Tognon, 2006)

author Stefano Tognon (ice00), SIDin magazine
date 2006-07-16
article SIDin issue 10 (version 1.00, 16 July 2006), pp. 36–41: 'Goattracker 2' — sections Start (Linux build, MIDI extraction with Rosegarden), a pattern/instrument map of the cover, Patterns and instruments, Improvements, Conclusion
created 2026-08-30 · updated 2026-08-30

Tognon's look at goattracker 2 in mid-2006 — "now tables based and so it can compete with the best C64 music tools available" — done by making a cover of Haddaway's What is Love in it, from a MIDI file, on Linux. A user's report on the state of GT2 around version 2.35, with the improvements he asked for.

Key claims#

  • Setup: no Linux executable was released; make in src works once the BCE library has been compiled and placed in the linux directory. Playback latency, which made GT1 on Linux impossible to follow, is gone: "In GT2 all is in realtime" — essential for a usable editor, whatever the cause (editor or sound libraries).
  • From MIDI to three voices: a karaoke MIDI of the song, opened in Rosegarden (matrix, drum-matrix, notation and event editors; a 1/16 grid) with TiMidity as ALSA server (timidity -Os -iA -B2,8 -s 16k) to hear the mapped instruments before recreating them on the sid; muting MIDI tracks at run time to choose what fits; the 10 MIDI tracks reduced to drum, bass, melody/lead/chords (arrangement, channel-interleaving).
  • A pattern map in a spreadsheet, built while composing: bars × voices with the pattern number and instrument per cell, colour-coded by instrument type — "the best way to remember each patterns into goattracker and even to control that filter may stay always into voice 3". The printed map runs to 149 bars; instruments named Cabana, Tamburine, Hihat, Snare, Drum, Lead, Chords, Synth Voice, Bass Synt, Guitar + vocals (tracking-workflow).
  • GT2 behaviours noted: pattern lengths are independent (the first pattern is very short); the filter is kept on voice 3 for the bass, and when that voice takes a lead instead, "I have to make a special instrument that stop filter execution as GT2 left the filter set up from the previous instrument (the bass)"; heavy use of the orderlist repeat Rxx and of pattern transposes (orderlist, filter-programming).
  • Version note: in 2.35 an instrument could not change ADSR from the wavetable — "very useful for having two instruments in sequence … (like a Drum + Bass)"; "in next version the function was implemented letting a pattern command to be executed from wavetable" (the F0–FE wavetable entries on goattracker).
  • Improvements asked for: play from the current start position (there is a start-position function, but moving the start across an Rxx moves one voice's position for all repeats at once and desynchronises the voices — "don't use the Rxx command or … only when the tune is finished"); a colour per instrument in the pattern editor ("like to have a programming editor where you have code completion or not"); HardSID MK4 output (the MK3 support did not produce sound on his MK4, so he exported .sid files to hear the real chip); the save function overwrites without asking (F11 pressed instead of F10); undo.
  • Conclusion: the wavetable, pulsetable and filtertable are "very powerful"; the interface is "very intuitive and you have all under you keys (or even under the mouse, as now you can even use it)"; the documentation and the F12 help screen describe every feature. The cover: "maybe I use very strong drums and a sort of old-school sound"; download http://digilander.iol.it/ice00/download/what.zip.

Practical takeaways#

  • Covering from MIDI: extract with a sequencer, audition the GM instruments, mute tracks until three lines remain, then rebuild the sounds as tables — a tracking-workflow for SID covers, with tool names.
  • Keep an external map of patterns × voices × instruments; it also polices a single-voice filter policy.
  • GT2 filter programs persist across instruments: an instrument that follows a filtered one on the same voice needs its own filter table entry (or a stop) — the readme's warning about pulse programs applies to the filter too.
  • Use Rxx only at the end, if you rely on "play from position".

Notable quotes#

"GT2 left the filter set up from the previous instrument (the bass)."

"As soon as MK4 will work onto it, I'm sure to have all I need from the editor."

Relevance to the wiki#

Dates the GT2 features on goattracker (2.35 without wavetable ADSR changes; realtime Linux playback; mouse; F12 help) and adds a user's wishlist of 2006; a worked MIDI-to-SID cover workflow for tracking-workflow; lasse-oorni as the author under review.

Pages touched#

goattracker · tracking-workflow · lasse-oorni · sidin · filter-programming · orderlist

To verify#

  • "MK4" is read as the HardSID MK4 (the article only says "MK4 (linux) driver … the 2 sids support into MK4") — inference.
  • The exact GT2 version that added wavetable-executed pattern commands is not named ("in next version" after 2.35).
source file wiki/summaries/s-sidin10-goattracker-2.md · graph