The CheeseCutter Guide — the recovered site manual (Wayback)

author abaddon
date Guide stable 2013-06-18 → 2019; About final state 2013-era ("abaddon + contributors in 2009-2013"); changelog 2011-12-09 → 2012-03-18
article the site's Guide (general tips, FAQ, default player documentation, SID cheat sheet), the About page (0.x vs 2.x, player features, credits), the 2.0–2.3 changelog
source file raw/theyamo-kapsi/guide-ref.txt, about.txt, changes-2012.txt, ct00ref-2012.txt
source url theyamo.kapsi.fi/ccutter/ref.html + about.html + changes.html + ct00ref.html, recovered via web.archive.org (site dead since ~2025; Guide content stable 2013–2019, this copy from the oldsite mirror captured 2023-02-17)
created 2026-08-30 · updated 2026-08-30

The manual exists after all: the dead homepage's Guide page — enumerated out of the Wayback CDX index after the live site, the repo and the release zips all came up empty — documents cheesecutter's default player, every table format, the command system and the editor's core keys, plus an About page that states the player lineage precisely and a changelog that dates the 2-series. The author's own caveat on the player doc: "Warning: this doc is slightly inaccurate."

Key claims#

Lineage and versions (About, changelog)#

  • The "0-series" aimed for JCH Editor compatibility — "Most JCH Editor files are compatible with this editor, so there was a large stock of music already composed 'for it'" (jch-editor). The "2-series" is "a totally different beast … JCH compatibility is gone", feature-wise "pretty close to top of the line SID music editors such as GoatTracker 2 and Sid Duzz' It".
  • Player lineage, stated exactly: "Music player based on NP21.G4 by laxity / Vibrants / MoN"; the 2.x player is "NP21.B6 (the B stands for booty, by the way), which was based on Laxity's NP21.G5" with "dozens more" features. Credits also name Cadaver's goattracker and "Geir & GRG of Shape for authoring SDI, and Laxity and JCH for their editors which were the main sources of inspiration"; ascii logo by iLKke (the defmon defMONing 101 author).
  • 2-series capacities: 32 subtunes, 48 instruments, 128 sequences; multispeed support ("doesn't work well past 4x"); 3-column sequences (note · instrument · command); tied notes entered as shifted note keys (purple); gate off = 1, gate on = ! or a in the note column ("works mostly like in GT2"); signed track transposes with A0 = zero ("similarily to SDI", 80 = keep previous); SID model + reSID-fp filter preset saved in the song header; the .ct extension. Changelog: 2.0.0 on 2011-12-09 (Ctrl-Tab navigation, instrument copy/paste) through 2.3.0 "First beta!" on 2012-03-18; 2.1.0 (2012-02-01) made reSID-fp the default and moved swing tempos into the chord table.
  • FAQ: .sid export via ct2util sid (the 0.5.x era instead used the JCH editor's NP-Packer from CSDb, sid-format); vs GoatTracker — "mostly a matter of taste … The player is more rastertime-heavy but I chose features/comfort over speed" (sid-player-routine).

Editor keys and workflow (Guide tips, About)#

  • F1 play from the playback mark (blue bar, set with Backspace; the tracks must be aligned at the mark or the sequencer misaligns — Ctrl-L resets); F3 plays from the cursor, "advisable to use it"; wrap point (purple bar) with Ctrl-Backspace; Shift-F1 followplay. Keypad +/- selects the active instrument (auto-inserted with notes; toggle with ;); Enter in the instrument table edits descriptions; Ctrl-T toggles note display absolute (JCH-style) vs relative to transpose (SDI-style); Ctrl-R row counters; Alt-T edits info strings.
  • Tips: keep sequence 00 empty (reserved dummy); develop parts as subtunes and combine at the end; a subtune whose voices are all A000 is "unused" to the packer; keep voice lengths aligned while composing, split and de-duplicate at the end (orderlist, tracking-workflow).

The command system (Guide)#

Sequence command column: 01–3F execute Command Table entry · 40–5F set pulse pointer for the playing note · 60–7F set filter pointer · 80–9F activate a chord (chord-arpeggio) · A0–AF/B0–BF/C0–CF/D0–DF set Attack/Decay/Sustain/Release for the current note (adsr-envelope) · E0–EF global volume · F0–FF song speed, values 0 or 1 enable the swing tempo (shuffle-funktempo).

Command Table (3 bytes: command number + two parameters — in JCH's editor this was "the Super Table"): 0 slide up · 1 slide down · 2 vibrato ("the usual delta vibrato as found in JCH's players from 20.G4 upwards; try 2-00 32") · 3 detune, 16-bit (detune) · 4 set ADSR · 5 lowfi vibrato (speed, depth) · 6 set waveform (only while the wave program is not changing waveforms) · 7 portamento (activate before the target notes; works only on tied notes) · 8 stop slide/portamento (pitch-slide-and-portamento, vibrato). The hard-restart ADSR value is the first row's two value bytes; default 0F 00 (hard-restart).

Instrument bytes and the four restart types (Guide)#

Bytes A/B = ADSR · byte C = restart type nibble + wave-program delay nibble ("works mostly as in NP21.G5"): 0x = note restart (gate off 3 frames before the next note, waveform cleared 1 frame before) · 4x = soft restart (gate off 2 frames before; "usually works best (least buggy) with big (>= 8) release values") · 8x = regular hard restart (gate off + HR ADSR 2 frames before; byte D written to the waveform register 1 frame before) · Ax = "Laxity restart" (like 8x but "the AD part of the volume envelope is not touched"). "Restart types 0x and 8x are the ones to use for most of the time." Byte D = HR waveform ("usually values 0 & 8…"; the gate bit is set automatically) · byte E/F = filter/pulse program (00 = none — the voice keeps a program set elsewhere) · byte H = wave table pointer (instrument-tables, hard-restart).

Table formats (Guide)#

  • Wave table: transpose column 00–5F relative, 80–DF absolute, 7E stop, 7F wrap (byte B = wrap point); waveform column 00 = keep, 01–0F = override the wave delay for the previous row, 10–DF = SID waveform, E0–EF = values $00–$0F (wavetable-programming).
  • Pulse table (4 bytes, "like byte C/B/A/D in JCH's players"): duration with direction in bit 7 (00–7F up, 80–FF down) · add value · init value (FF = keep) · jump (00 = next row, 7F = stop — really a jump to row 0's 00 00 FF 7F self-wrap) (pulse-width-modulation).
  • Filter table: a row with byte A ≥ $80 is a filter init (type, resonance + voice bitmask, initial cutoff — e.g. 90 F1 10 7F = type $10, resonance $F voice 1, cutoff $10, stop); sweep rows add two's-complement values (FF = −1), with 10-bit accuracy — "4 times as fine as those on JCH players" (filter-programming).
  • Chord table (indexed — the command points at an index holding each chord's start): 00–3F positive transposes ("the familiar major chord would be 0-4-7"), 40–7F negative (7F = −1), 80–FF wrap; chord program 0 doubles as the swing-tempo program when song speed is 0/1 (chord-arpeggio, shuffle-funktempo).
  • Known player quirks: a slide/vibrato on a tied-note row is not executed; portamento resets an ongoing slide; switching between swing and regular tempo mid-song "can mess the timing"; changing the wave-table pointer on the fly is impossible ("would probably require yet another table").

The SID cheat sheet (Guide)#

A compact control-register table (waveform high nybble with LOCK flagged for $9–$F noise combinations, gate/sync/ring/test low nybble), the note that "Waveforms $3, $6 and $7 are audible only on new SID (8580)" (ring-modulation-and-sync, sid), a two-directional transpose table (up 01… / down 7F… for the chord table), and a pulse-sweep duration table in frames and ms.

Practical takeaways#

  • CheeseCutter's restart-type nibble is the wiki's cleanest per-instrument menu of hard-restart flavours — including a named "Laxity restart" that spares the attack/decay register.
  • The swing implementation is unique among the wiki's editors: the chord table's program 0 becomes a tick-length list when speed is 0/1.
  • Everything filter goes through the filter table — no filter commands at all ("more flexibility but also slightly more work"), the opposite call to defmon's everything-in-one-table and GoatTracker's AXY/BXY/CXY.

Notable quotes#

  • "Warning: this doc is slightly inaccurate." (the author, atop his own player documentation)
  • "The player is more rastertime-heavy but I chose features/comfort over speed."
  • "NP21.B6 (the B stands for booty, by the way)."

Relevance to the wiki#

Fills cheesecutter's empty cheat sheet with the real command system, instrument format and table semantics; pins the player lineage (laxity's NP21.G4/G5 → NP21.B6); and adds tool-specific sections to hard-restart, shuffle-funktempo, chord-arpeggio, filter-programming, pulse-width-modulation and instrument-tables.

Pages touched#

cheesecutter · jch-editor · laxity · hard-restart · shuffle-funktempo · chord-arpeggio · filter-programming · pulse-width-modulation · wavetable-programming · instrument-tables · adsr-envelope · vibrato · pitch-slide-and-portamento · detune · multispeed · sid-format · sid-player-routine · orderlist · sid · ring-modulation-and-sync · goattracker

source file wiki/summaries/s-cheesecutter-guide.md · graph