defMONing 101: A defMON Operator Field Guide (iLKke, 2013)
A compact survival guide to defmon by iLKke, "the result of my limited defMON knowledge based largely on experimentation… not intended as an exhaustive explanation of the program, but rather a brief survival guide and reference. It assumes basic familiarity with trackers and the SID chip."
Key claims#
The pitch#
- "defMON is what I would call the only true tracker for the C64 (as opposed to sound 'editors'). No tables with pointers to tables, no multiple lines of table data performing a single function. In defMON, screen Y-axis is always time, as in a tracker." (tracker)
- Advantages, per iLKke: single all-powerful instrument table; "no discrimination between instruments & effects (similar to NinjaTracker)" — he calls table entries sidCalls; combine 2 sidCalls at once ("modifiers for instruments instead of duplicating and then modifying"); two cutoff controls "so you can modulate/offset a filter envelope"; relative channel filtering ("filter CURRENT channel"); "Most flexible hard-restart ever, period. Because you do it all yourself. You can have each instrument use a completely different HR."; "Almost any SID tune can be remade in defMON (up to 8x speed, and with the exception of 'digis', or samples)"; adjustable BPM; low rastertime use.
- Disadvantages: "The program is in an eternal beta state. You will receive no tech support"; possible bugs ("You might want to not save too many songs to a disk"); instruments have no names; instrument number must be typed for each note; the packer is built in "but you will need to make a PRG or SID file yourself"; "You might not want to go back."
- Three screens: pattern editor + arranger (main), the sidTAB ("the only table you will ever need… quite similar to siddump output"), disk menu. Per-track columns: note, speed, sidCall1, sidCall2 — "Exact order of these columns can differ depending on defMON version."
Keyboard reference (as of 2013)#
- Navigation:
←switch pattern/sidtab; C=+←/ SHIFT+←jump to position in sidtab; CTRL+←switch SID1/SID2; RUN/STOP switch pattern/arranger, exit sidtab; C=+RUN/STOP jump to position in pattern; CTRL+cursor step through patterns/sidtab; SHIFT+X disk menu (RETURN/L load, S save new, SHIFT+S overwrite, SHIFT+P pack, SPACE read dir, W/R legacy format write and read,,/.prev/next drive,←exit). - Playback: F1 play from cursor; F3 play from start; F5 follow on/off; F7 stop/top;
[,],=mute tracks ("Ö,Ä,* on Swedish keyboard") — the mute keys of live-tracking use. - Setup: F2/F4/F6/F8 multispeed; C=+F-keys BPM; SHIFT+F1 BPM reset; CTRL+
<,>octave up/down; C=+/decrease chunk size, SHIFT+/increase (values 0 = whole table, 1, 2, 4, 8, $10, $20, $40, $80). - Input: RETURN insert step; SHIFT+RETURN remove step;
</>decrease/increase a value; SHIFT+N clone pattern into new, SHIFT+U into unused (arranger); C= and SHIFT edit the two instrument columns; CTRL+C= edit speed column; CTRL+C=+SPACE insert pattern break; C= column edit mode; DEL delete value; SPACE delete value + advance; CTRL+number edit X steps at once.
sidTAB reference#
JPposition jump;DLstep delay.WGfirst column (x0): waveform bits +1 triangle, +2 saw, +4 pulse, +8 noise.WGsecond column (0x): +1 gate on, +2 sync, +4 ringmod, +8 test-bit (reset) (ring-modulation-and-sync).ADSR: the volume envelope (adsr-envelope).TR:$00–$7Frelative pitch up (wraps),$80–$FFabsolute notes.AF:$00–$19finetune ($19= a note up);$21–$7Fpitch up (wrap);$80–$BFpitch bend up;$C0–$FFpitch bend down.PWpulse width set — "low byte first, then high byte";PSpulse-width slide:$00–$7Fleft,$80–$FFright.RE—x0resonance;0xchannel mask, fully enumerated:$00disable on current,$01voice 1,$02voice 2,$031+2,$04voice 3,$051+3,$062+3,$071+2+3,$08current,$09current+1,$0Acurrent+2,$0Bcurrent+1+2,$0Ccurrent+3,$0Dcurrent+1+3,$0Ecurrent+2+3,$0Fcurrent+1+2+3.FVfilter type (first digit):$00/$80off,$10/$90lp,$20/$A0bp,$30/$B0lp+bp (high stop),$40/$C0hp,$50/$D0lp+hp (band stop),$60/$E0bp+hp (low stop),$70/$F0lp+bp+hp (filter-programming).CPrelative cutoff offset:$00–$7Fadd,$80–$FFsubtract.ACIDcutoff:$0000–$7FFFset,$8000–$BFFFslide up,$C000–$FFFFslide down.
Transpose table#
- Relative pitches:
TR$00–$7F, laid out as octaves 0–10 of 12 semitones ($0C= +1 octave,$18= +2, …$7F= the top of octave 10). - Absolute pitches:
$81(C#0) through$F7(B9), 12 per octave with$8C= C1,$B0= C4, etc. — the reference the interface-overview page defers to forTRvalues ≥$80.
Practical takeaways#
- Treat sidTAB rows as "sidCalls" — one vocabulary for instruments and effects; build modifier chunks (vibrato, slides, filter moves) to combine with instrument chunks via the second call column instead of cloning instruments (instrument-tables).
- The
REmask value$08(filter the current channel) is the key to writing one reusable filter chunk for all three voices. ACIDdoubles as a cutoff slide command: values$8000+ slide rather than set — combined withCPyou get set, offset and sweep from two columns.- Up to 8x multispeed means nearly any SID tune except sample playback can be covered in defMON.
Notable quotes#
- "defMON is what I would call the only true tracker for the C64."
- "Most flexible hard restart ever, period. Because you do it all yourself."
- "You might not want to go back." (listed as a disadvantage)
Relevance to the wiki#
The canonical quick reference for defmon's sidTAB value ranges — the tables above are the numbers a composer actually needs — and a clear statement of the tracker-vs-editor design argument. Supersedes nothing; extended by s-defmon-wiki-defmoning-102.
Pages touched#
defmon, tracker, hard-restart, multispeed, filter-programming, adsr-envelope, instrument-tables, ring-modulation-and-sync, pitch-slide-and-portamento, detune, pulse-width-modulation, ninjatracker, siddump, live-tracking