SIDin #6 — Asterion Sid Tracker v1.0 reviewed (Stefano Tognon, 2004)
Tognon's walkthrough of a native C64 tracker released in 2004 by Asterion of the group Tinnitus: a one-screen editor whose instrument lives in a 13-parameter sound table with independent wave and arpeggio macros, whose tracks are pattern lists with transpose bytes, and whose patterns carry exactly one command byte per step — the instrument number included. The article is the source of the asterion-sid-tracker cheat sheet.
Key claims#
- Package: "coded by Asterion of Tinnitus", on a disk with the editor and its instructions, "the packer & relocator and lot of music examples". It opens with a Halloween-style intro (music, scroller about the editor and the group).
- Layout: everything on one screen, which Tognon likes ("you don't have to open sub screens") but which "reduce the space for the pattern steps to 8". Technically "a tracker like one, similar for examples to Goattracker, Cybertracker, ecc." (goattracker), "even if the commands you can use in each pattern steps are limited to one byte".
- Sound table (
F3), one instrument = 13 fields:A/Dattack/decay ·S/Rsustain/release ·WAVwave macro pointer ·ARParpeggio macro pointer ·WASwave/arpeggio execution speed ·VDEvibrato delay ·VDSvibrato depth/speed ·PWMpulse starting speed ·PLMpulse lower/upper limit ·SCPcutoff/pulse speed ·MCPmulti-cutoff/multiple speed ·FCTfilter starting cutoff ·FLMfilter lower/upper limit ·R/Tresonance, filter type (1 2 4) and8= hard restart on/off (instrument-tables, adsr-envelope, hard-restart). - WAV and ARP macros are tables on the Track&Macros screen;
WAVholds control-register values (the waveform),ARPthe value added to the note: relative$00–$7F, absolute$80–$DF, "skydrive"$E0.$FEends a macro;$FFrepeats from the position given by the next byte. Example: withWAV -> 30, ARP -> 32, rows30: 41 00 / 31: 21 00 / 32: FE FEplay$41then$21"with the same note frequency"; withWAV -> 20, ARP -> 20, rows20: 41 00 / 21: FE 0C / 22: 00 FF / 23: 00 20make "an octave arpeggio to the note being played" — the wave macro ends after one row while the arp macro loops00, 0C. "Wave and Arpeggio tables are independent so you can achieve very complex tasks as even their speeds of execution (controlled by WAS) are separated" (wavetable-programming, chord-arpeggio). - Tracks: the first three columns of the Track&Macros screen hold each voice's pattern numbers
$01–$7F;$80–$FEtranspose the pattern that follows ("(C0-middle)"; in the example Tognon reads8Cbefore a pattern as "a $0C of transposition");$FFloops the track to the position given by the next byte (orderlist). - Patterns: notes plus one effect byte per step; an effect "will be executed until a next one (so you don't have to repeat the command at each next positions)". The list:
| effect | meaning |
|---|---|
00 | no effect |
0x–1x | instrument number |
2x | flags: 1 tie note, 2 synchronize, 4 modulation (ring), 8 no pulse restarting |
3x | portamento to the target note with speed x |
4x | vibrato depth x, speed from VDS (0 = VDS depth) |
5x 6x 7x 8x | change attack / decay / sustain / release (an instrument declaration 0x–1x restarts the ADSR values) |
9x | execute the waveform macro from index x (0 = normal) |
Ax | execute the arpeggio macro from index x (0 = normal) |
Bx | set pulse: 0 = the instrument's pulse LFO; if MCP LSB = 0, absolute pulse (x into the pulse MSB), else x becomes the second pulse value |
Cx | set cutoff: 0 = the instrument's cutoff LFO; if MCP MSB = 0, absolute cutoff (x into the cutoff MSB), else x becomes the second cutoff value |
Dx | volume (default F) |
Ex | filter type: 1 low-pass, 2 band-pass, 4 high-pass, 8 no cutoff restarting |
Fx | tempo: 0 stop the tune, 1–E set tempo, F end the pattern — "affects all tracks" |
- Tognon's observations: declaring the instrument as an effect "is a choice that probably simplify the implementation of the tracker, as only one byte (over the note) is processed";
$9x/$Axpositions are entered on the middle screen (F6); volumeDxserves fade-in/fade-out;$FFends a pattern early (pitch-slide-and-portamento, vibrato, pulse-width-modulation, filter-programming). - Disk operations are the weak point:
SHIFT+Lload,SHIFT+Ssave,F8directory listing — he asks for a browsable disk menu. Verdict: "a good tracker with all you need that stays compacted in a screen!", with instrument implementation ("Wave/Arpeggio independent tables are very powerful") as its strength.
Practical takeaways#
- Separate wave and arpeggio tables with separate speeds — the SID-Wizard/GoatTracker idea of parallel tables — in a 2004 native editor whose pattern command is a single byte.
- An "octave arpeggio" is two rows:
00and0Clooped withFF.
Notable quotes#
"The editor has only one byte of commands in track, but it has all you need for making good music."
Relevance to the wiki#
Creates asterion-sid-tracker (cheat sheet from the tables above); adds a 2004 native-tracker instrument layout to instrument-tables and one-byte effect examples to chord-arpeggio, vibrato, pulse-width-modulation, filter-programming, pitch-slide-and-portamento, hard-restart and orderlist.
To verify#
- (unverified) The transpose convention: the text says
$80–$FEtranspose "(C0-middle)" yet reads the example's8Cas "+$0C"; whether$C0is the zero point (making$8Cnegative) or$80is cannot be settled from the article. - (unverified) The example track table is scrambled by the PDF text extraction; the row/column reading above follows Tognon's prose, not the table.
- (unverified) Which screen the Track&Macros view is on (
F6is named for the "middle screen" only) and whatWASvalues mean numerically are not given.
Pages touched#
asterion-sid-tracker · instrument-tables · chord-arpeggio · vibrato · pulse-width-modulation · filter-programming · pitch-slide-and-portamento · hard-restart · orderlist · tracker-scene-history · sidin