Homeentitytool

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-jch20g4 companion — 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 .ct from a player binary); relocation of address and zero page; up to 32 subtunes per .ct. The ccutter CLI: reSID-fp by default, -fpr filter presets (0–16 for the 6581), -m SID model, -n NTSC (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 .ct tunes (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+F9 toggling oscilloscope vs SID register view, ALT+H hides 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.G4 in this program's player credit is JCH's NN.GN version 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

keyfunction
F1play from the playback mark (blue bar, Backspace; tracks must be aligned there — Ctrl-L resets a misaligned sequencer)
F3play from the cursor — "advisable to use it"
SHIFT+F1 / SHIFT+F2followplay (the stacked view scrolls with the tune; source: s-sidin14-scarzix-interview)
Ctrl-Backspaceset 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 keytied note (purple)
Ctrl-T / Ctrl-Rnote display absolute (JCH-style) vs transpose-relative (SDI-style) · row counters
Ctrl-Tab / Enter (instr. table) / Alt-Tnavigate sequencer↔tables · instrument descriptions · edit info strings
CTRL+F9 / ALT+HHypercut 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.

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

source file wiki/entities/cheesecutter.md · graph