Homeentitytool

Furnace

aliases Furnace tracker, Furnace Tracker
created 2026-08-30 · updated 2026-08-30

Furnace is a multi-system tracker by tildearrow and contributors (GPL-2.0, github.com/tildearrow/furnace) whose manual has a page on the commodore-64's sid and one on its C64 instrument editor; only those two pages are in the wiki (fetched 2026-08-30 from the repository's master; the system page last changed 2025-03-23, the instrument page 2024-09-14). It is not a focus tool here: the wiki keeps its documentation as a second, independent description of the chip behaviour that sid-wizard and goattracker expose through tables (source: s-furnace-c64-docs). Vocabulary: an instrument's per-tick programs are macros (arpeggio, duty, waveform, pitch, cutoff, filter mode, resonance, special, attack/decay/sustain/release); hard restart is envelope reset; effect values are xxx numbers rather than table bytes.

What its C64 docs say about the chip#

  • 6581 = the original; 8580 = an "improved version with working waveform mixing and somewhat more consistent filter curves". Selecting several waveforms gives "a logical AND mix" that "sounds different between the 6581 and the 8580"; noise cannot be combined with anything.
  • The 6581's DC output, "regulated by the global volume register", serves as "a crude, virtual fourth 4-bit PCM channel" in the system variant Commodore 64 (SID 6581) with software PCM; on the 8580 such PCM is "nearly inaudible" (chip-samples).
  • Envelope reset: 2 ticks "is a good value", 1 "may exhibit SID envelope bugs", 0 "prevents notes from triggering" (hard-restart).
  • Sustain can be lowered but not raised while a note sustains: "8-to-9 immediately mutes the channel" (adsr-envelope).

(source: s-furnace-c64-docs)

Cheat sheet#

Effects (C64)#

effectmeaning
10xxchange wave: 00 nothing · 01 triangle · 02 saw · 03 triangle+saw · 04 pulse · 05 pulse+triangle · 06 pulse+saw · 07 pulse+triangle+saw · 08 noise
3xxxset duty cycle, 000–FFF
4xxxset filter cutoff, 000–7FF
13xxset resonance, 00–0F
14xxfilter mode: 00 off · 01 low pass · 02 band pass · 03 low+band · 04 high pass · 05 notch (band reject) · 06 high+band · 07 all pass
15xxenvelope reset time in ticks (00, or more than the song speed, = no reset)
1Axxdisable envelope reset for this channel
1Bxyreset cutoff: x ≠ 0 on new note, y ≠ 0 now (unneeded with an absolute cutoff macro)
1Cxyreset duty cycle: x ≠ 0 on new note, y ≠ 0 now (unneeded with an absolute duty macro)
20xyset attack x / decay y
21xyset sustain x / release y
22xx / 23xxpulse-width slide up / down at speed xx (00 stops)
24xx / 25xxcutoff slide up / down at speed xx (00 stops)
11xxcoarse cutoff 00–64 — compatibility only, use 4xxx
12xxcoarse duty 00–64 — compatibility only, use 3xxx
1Exycompatibility: x = 0 attack · 1 decay · 2 sustain · 3 release (y = 0–F) · 4 ring mod · 5 sync · 6 disable channel 3 (y = 0/1)

Instrument fields (C64 tab)#

fieldrange / meaning
Waveformtriangle, saw, pulse, noise; several at once = AND mix (never with noise)
Attack · Decay · Sustain · Release0–15 each; larger = slower (sustain is a level)
Duty0–4095 (2048 = square)
Reset duty on new notereload the instrument's duty on each note — for relative duty macros
Ring Modulation · Oscillator Syncwith the previous channel as modulator
Enable filter · Initialize filterroute through the filter; set cutoff 0–2047, resonance 0–15, mode low / high / band / ch3off (combinable; low + high = notch)
Absolute Cutoff Macro · Absolute Duty Macrocutoff macro 0–2047 / duty macro 0–4095 as absolute values instead of relative ones
Don't test before new noteskip "the one-tick hard reset and test bit before a new note"

Macros#

macronotes
Volumeglobal — the chip's volume register, affects all channels
Arpeggiopitch sequence in semitones (chord-arpeggio)
Duty · Waveform · Pitchpulse width (pulse-width-modulation) · waveform (wavetable-programming) · fine pitch, per tick
Cutoff · Filter mode · Resonancethe filter, per tick (filter-programming)
Specialring mod, sync, the gate bit (0→1 starts or restarts the envelope, 1→0 releases it, otherwise nothing) and the test bit (1 mutes the channel at once and suspends ring/sync for channels using it as a source; 0 restores) (ring-modulation-and-sync)
Attack · Decay · Sustain · Releasechange the running envelope immediately; sustain can only go down while sustaining

Chip configuration#

optionmeaning
Clock ratethe SID clock
Global parameter prioritywhose macros win for global parameters (volume, filter): Left to right (channels 1→3 in order, the last to run wins) or Last used channel (the channel with the latest note-on wins)
Hard reset envelopethe ADSR used during the pre-note reset — the HR ADSR of other trackers
Envelope reset timeticks of gate-off before a note: 0 none (notes do not trigger), 1 short but may bug, 2 good

(source: s-furnace-c64-docs)

sid · hard-restart · adsr-envelope · pulse-width-modulation · filter-programming · ring-modulation-and-sync · chord-arpeggio · chip-samples · sid-wizard · goattracker · tracker · instrument-tables

Sources#

s-furnace-c64-docs

source file wiki/entities/furnace.md · graph