CheeseCutter
A cross-platform SID music editor in the jch-editor lineage, by Abaddon ("Timo" per scarzix's interview; Finnish coder-musician; Damage → Fairlight 2003 → solo → triad 2012–2017): the 0-series opened JCH-editor work files, and its player is "based on NP21.G4 by laxity / Vibrants / MoN" — the 2-series runs abaddon's own fork "NP21.B6 (the B stands for booty, by the way)" and drops JCH compatibility. Open source (GPL, written in D, integrated resid), it keeps the JCH-style stacked track view — whose design intent is documented first-hand in JCH's own memoir. Since 2026 the project continues as CheeseCutter 2.11R "Hypercut" under arch0N (sources: s-sidin14-scarzix-interview, s-cheesecutter-guide, s-cheesecutter-repo-and-releases, s-chordian-my-computer-chronicles).
Facts#
- Written because Abaddon "really missed having JCH editor on a modern PC platform, but with SID sound" — "JCH editor anno 2013"; the 2.x generation "broke with the old NewPlayer standards as he wanted to evolve the player further in his own directions" (chordian; source: s-sidin14-scarzix-interview).
- The stacked track-sequencer: instead of flipping to the next pattern at its end, the editor "shows/scrolls the next pattern in below or above it", so a tune scrolls top to bottom and transposes between sequences do not break the visual flow — Scarzix's reason for choosing it over goattracker (orderlist; source: s-sidin14-scarzix-interview). The design is inherited: JCH conceived voices side by side "having independent sequences of any size" before he ever saw SoundTracker, and his editor v3 (1990) introduced follow-play, "the channels scrolling to the music" — the ancestor of CheeseCutter's
SHIFT+F2(source: s-chordian-my-computer-chronicles). - Tech: D language (Mr. SID gave up building 2.3.0 in 2012 over "the lack of maturity of the D tool set"), reSID/reSID-fp by dag-lem & A. Lankila with SID-interface portions by Cadaver, bundled ACME assembler 0.91; git master is version 2.10 with an SDL2 port merged 2026-03 (source: s-cheesecutter-repo-and-releases).
- 0.x vs 2.x (the recovered About page): the 2-series began with 2.0.0 on 2011-12-09 (2.0–2.2.6 were site-only; 2.3.0 was "First beta!") and brought 32 subtunes, 48 instruments, 128 sequences, multispeed ("doesn't work well past 4x"), 3-column sequences (note · instrument · command), tied notes as shifted note keys, GT2-style gate commands in the note column, signed SDI-style track transposes (
A0= zero), instrument descriptions, and the SID model + filter preset saved in the song header; "All filter settings can only be controlled from the filter table" (source: s-cheesecutter-guide). - Release history (CSDb): 0.4.0 (2011-03-15) · 0.5.1 (2011-10-15, with the
depack-jch20g4companion — jch-editor tunes in NewPlayer 20.G4) · 2.3.0/2.3.1 (2012-03) · 2.4.0 (2012-09, first Triad release) · 2.5.0 (2013-05-13, announced with the CSDb compo "Release The Cheese") · 2.6.1 (2014-06) · 2.7.1 (2015-01) · 2.8.0 (2015-11) · 2.9.0 (2017-04-13, with the ccstereo 2SID build as an official parallel download) — matching the 2SID beta Scarzix used for Singularity in early 2015 (sources: s-cheesecutter-repo-and-releases, s-sidin14-scarzix-interview). ct2util, the companion binary: export.ct→ PRG or SID (sid-format), dump song data to assembler source, import (move a tune between songs "without overwriting the player") and init (fresh.ctfrom a player binary); relocation of address and zero page; up to 32 subtunes per.ct. TheccutterCLI: reSID-fp by default,-fprfilter presets (0–16 for the 6581),-mSID model,-nNTSC (source: s-cheesecutter-repo-and-releases).- Community: little publicity from the author; distribution ran through the homepage and the CheeseCutter Facebook group founded by scarzix (180 members in January 2015; in 2014 the Mac build was only available there — "I remember having to sign up into the facebook group just to get a copy", an0va); tempest ranked it "on par with Goat Tracker and Sid Duzz It". The v2.9 zip ships 14 example
.cttunes (Abaddon, Scarzix ×3, tempest, vent, wisdom, drvector, guyshavitt, mch, spider_jerusalem). The homepage (theyamo.kapsi.fi/ccutter) has been down since at least mid-2025 (sources: s-sidin14-scarzix-interview, s-chipmusic-cheesecutter-tutorial-thread, s-cheesecutter-repo-and-releases). - Tutorials: Scarzix's four-part YouTube series (2014) — Galactix Intro, Pulse programs, Basic GUI tricks + Drums, Wavetable + Ringmod (video only, not ingested; links in s-chipmusic-cheesecutter-tutorial-thread). The instrument editor "is a really nasty killer if you don't know anything about SID programming" (instrument-tables; source: s-sidin14-scarzix-interview).
- CheeseCutter 2.11R "Hypercut" (2026-07-25, CSDb 263220, 10/10): credits "Abaddon of Artline Designs / arch0N"; Windows x64 + macOS + source. New "Hypercut interface": a Track Overview/timeline strip,
CTRL+F9toggling oscilloscope vs SID register view,ALT+Hhides quick-help; a multispeed buffer overrun fixed; announced next: font selector (a browser-based PSF font editor ships in the source), pattern numbers in tracks, raster-time meter, a live "Waterfall display"; USBSID-Pico support discussed (source: s-cheesecutter-repo-and-releases).
Where the design and the version numbers come from#
- The stacked track view it inherits was not copied from Amiga SoundTracker: JCH's own paper notes show the first sketches, made "before I saw SoundTracker on Amiga", drawing "the notes in horizontal bars", and only later adopting "the design of SoundTracker on Amiga" — "the beginning of the idea of having note columns going downwards". What JCH kept from his own side was independent, flexible-size sequences per voice, which is exactly the part CheeseCutter still has and Amiga-style patterns do not (source: s-chordian-player-editor-notes; the reasoning is on jch-editor).
- The
NP21.G4in this program's player credit is JCH'sNN.GNversion scheme, dated on paper in his notes: NewPlayer 10.G0 (packer and relocator), 15.G7, 17.G1 ("the hard restart implementation") — so abaddon's base is version 21 of that same line, the one laxity contributed (hard-restart; source: s-chordian-player-editor-notes).
Cheat sheet#
From the recovered site Guide (source: s-cheesecutter-guide, all rows, except where noted).
Keys
| key | function |
|---|---|
F1 | play from the playback mark (blue bar, Backspace; tracks must be aligned there — Ctrl-L resets a misaligned sequencer) |
F3 | play from the cursor — "advisable to use it" |
SHIFT+F1 / SHIFT+F2 | followplay (the stacked view scrolls with the tune; source: s-sidin14-scarzix-interview) |
Ctrl-Backspace | set the wrap point (purple bar) — where playback returns at song end |
Keypad +/- | select the active instrument (auto-inserted with notes; ; toggles that) |
1 / ! or a (note column) | gate off / gate on ("works mostly like in GT2") |
| shifted note key | tied note (purple) |
Ctrl-T / Ctrl-R | note display absolute (JCH-style) vs transpose-relative (SDI-style) · row counters |
Ctrl-Tab / Enter (instr. table) / Alt-T | navigate sequencer↔tables · instrument descriptions · edit info strings |
CTRL+F9 / ALT+H | Hypercut only: oscilloscope vs SID register view · hide quick-help (source: s-cheesecutter-repo-and-releases) |
Sequence command column: 01–3F command-table entry · 40–5F pulse pointer · 60–7F filter pointer · 80–9F chord · A0–DF set A/D/S/R nibble for the note · E0–EF global volume · F0–FF song speed (0/1 = swing tempo from chord program 0).
Command table (cmd + 2 parameters; row 0's value bytes = the hard-restart ADSR, default 0F 00): 0/1 slide up/down · 2 vibrato (JCH 20.G4-style delta; "try 2-00 32") · 3 16-bit detune · 4 set ADSR · 5 lowfi vibrato · 6 set waveform · 7 portamento (set it before the tied notes) · 8 stop slide/portamento.
Instrument (bytes A–H): ADSR · restart nibble + wave delay — 0x note restart, 4x soft (best with release ≥ 8), 8x hard restart, Ax "Laxity restart" (AD untouched) · HR waveform (0 or 8) · filter program · pulse program · (unused) · wave pointer.
Tables: wave — transpose 00–5F relative / 80–DF absolute / 7E stop / 7F wrap; waveform 00 keep, 01–0F wave-delay override, E0–EF = $00–$0F. Pulse — duration (bit 7 = direction), add, init (FF keep), jump (00 next, 7F stop). Filter — byte A ≥ $80 = init row (type, resonance+voice mask, cutoff); sweeps are two's-complement adds at 10-bit accuracy ("4 times as fine as those on JCH players"). Chord — 00–3F up, 40–7F down (7F = −1), 80–FF wrap; indexed via the chord index column.
Workflow tips: keep sequence 00 empty (reserved dummy); build parts as subtunes, combine at the end; a subtune of all-A000 voices is skipped by the packer.
Related#
jch-editor · chordian · scarzix · triad · goattracker · sid-wizard · sid-factory-ii · defmon · resid · dag-lem · lasse-oorni · tracker · orderlist · sid-format · vice
Sources#
s-sidin14-scarzix-interview · s-cheesecutter-repo-and-releases · s-chipmusic-cheesecutter-tutorial-thread · s-chordian-my-computer-chronicles · s-cheesecutter-guide · s-chordian-player-editor-notes