The CheeseCutter Guide — the recovered site manual (Wayback)
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 =!orain the note column ("works mostly like in GT2"); signed track transposes withA0= zero ("similarily to SDI",80= keep previous); SID model + reSID-fp filter preset saved in the song header; the.ctextension. 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:
.sidexport viact2util 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)#
F1play from the playback mark (blue bar, set withBackspace; the tracks must be aligned at the mark or the sequencer misaligns —Ctrl-Lresets);F3plays from the cursor, "advisable to use it"; wrap point (purple bar) withCtrl-Backspace;Shift-F1followplay.Keypad +/-selects the active instrument (auto-inserted with notes; toggle with;);Enterin the instrument table edits descriptions;Ctrl-Ttoggles note display absolute (JCH-style) vs relative to transpose (SDI-style);Ctrl-Rrow counters;Alt-Tedits info strings.- Tips: keep sequence
00empty (reserved dummy); develop parts as subtunes and combine at the end; a subtune whose voices are allA000is "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–5Frelative,80–DFabsolute,7Estop,7Fwrap (byte B = wrap point); waveform column00= 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–7Fup,80–FFdown) · add value · init value (FF= keep) · jump (00= next row,7F= stop — really a jump to row 0's00 00 FF 7Fself-wrap) (pulse-width-modulation). - Filter table: a row with byte A ≥
$80is a filter init (type, resonance + voice bitmask, initial cutoff — e.g.90 F1 10 7F= type$10, resonance$Fvoice 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–3Fpositive transposes ("the familiar major chord would be 0-4-7"),40–7Fnegative (7F= −1),80–FFwrap; 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