Linus Walleij

aliases Walleij, Linus Walleij / Triad
created 2026-08-30 · updated 2026-08-30

Member of the C64 group Triad and author of MIDIslave, "the MIDI program for C64", through which he "learned how SIDplayers worked"; he wrote "A SID player routine", pseudo-code for a MIDI-driven sid player, at the request of Michael Kleps — the "M.K." of the extended Soundtracker module signature and author of the QuadraSID VST instrument. He lists the editors he learned from: SoundMonitor (Chris Hülsbeck), Future Composer (Finnish Gold), Rockmonitor, Pro-Drum and Music Assembler (the Dutch USA-team), the JCH Editor, Soundtracker 64 (Mechanix) and the Soedesoft Editor (Jeroen Soede). His 95-entry SID note table is marked "Public Domain — Linus Walleij 2001" (source: s-walleij-sid-player-routine). This page has a single source, that document.

Positions recorded in the wiki#

  • hard-restart: write $00 to $D400–$D406 two frames before the next attack (Dag Lem's minimum: 33 ms = 2^15 cycles); it fixes attacks, "not the ever-present problem with release"; and it "only affects the 6581 version … (or so I am told...)" — a claim the wiki's other sources do not share, recorded as a contradiction on that page.
  • A MIDI-driven player cannot see two frames ahead, so it must hard-restart on key press (delaying every note a frame) or on key release (losing the release phase), as the SIDstation does — see sync and sid-player-routine.
  • Player design: macros for waveform, arpeggio ("0x00 0x03 0x07 creates a minor chord" — chord-arpeggio), pulse width (high byte only, "most c64 players don't" write the low byte) and filter (mask the resonance register's low nybble); delayed LFO vibrato and pulse-width vibrato; a process rate of ~400 Hz against the C64's usual 50 Hz macro rate.
  • "The numbers in the C64 hardware reference manual are simply WRONG" — his reason for publishing his own note table (c64-programmers-reference-guide).

sid-player-routine · hard-restart · sync · sid · chord-arpeggio

Sources#

s-walleij-sid-player-routine

source file wiki/entities/linus-walleij.md · graph