little-scale — Abrasive on LSDJ Microtuning (2009)

author Abrasive, quoted in full by little-scale (Sebastian Tomczak)
date 2009-03-23
article blog post; a verbatim repost of Abrasive's 8bitcollective announcement of the lsdj_tune script, with its command-line examples
created 2026-08-31 · updated 2026-08-31

little-scale reposts abrasive's own announcement of lsdj_tune, the script that turns the hand-editing of the previous day's post into a one-line command. Unusually for this blog, everything is in the text.

Key claims#

  • The origin story, in Abrasive's words: "Idle thought: can LSDJ be retuned to non-standard tunings? Cue a few minutes in a hex editor and half an hour in Perl… the result: an LSDJ tuning script."
  • What it does: "The script takes an LSDJ ROM, and rewrites the tuning table (and optionally the note names) into a new copy of the ROM. Frequencies can be manually specified (all 108 notes), or generated in equal temperament, cent steps, cent series or ratio series." The 108 notes match the 216-byte table read from the screenshots in s-little-scale-lsdj-tuning-tables.
  • Rewriting the note names too is the part hand-editing cannot do: on a retuned ROM the note column otherwise keeps lying about what it plays.
  • Version: "The latest version of the script (works with LSDJ 3.9.9) can be found at http://bur.st/~abrasive/lsdj_tune/".
  • The four generation modes, with his examples (verbatim):
modeexample
equal temperamentlsdj_tune --et 24 --base A5 440 --rom lsdj.gb --out lsdj_et24.gb
explicit centslsdj_tune --cents 0,100,200,300,400,500,600,700,800,900,1000,1200 --base A5 440 --rom lsdj.gb --out lsdj_et12.gb
cent step (Wendy Carlos' alpha)lsdj_tune --cstep 78 --base 0 70 --rom lsdj.gb --out lsdj_alpha.gb
ratio series (Pythagorean 13-tone)lsdj_tune --ratio 1,256/243,9/8,32/27,81/64,4/3,729/512,1024/729,3/2,128/81,27/16,16/9,243/128,2 --names D,Eb,E,F,F#,G,G#,Ab,A,Bb,B,C,C# --base 0 73.42 --rom lsdj.gb --out lsdj_pyth.gb
  • Known limitations, his own list: "Base frequency specification is a bit dumb — it won't take custom note names, and sequences (--cents, --ratio) always start on the base note."
  • Discussion thread: 8bitcollective.com/forums/viewtopic.php?pid=169505 (8bitcollective is long dead; not fetched).

Practical takeaways#

  • --et N is the whole of equal-division microtonality: 24 for quarter-tones, 19 and 31 for the historical meantone approximations, 15 or 18 for the alien ones.
  • --ratio takes plain fractions, so a just or historical scale can be typed from a table of ratios without computing a single frequency — the manual route (s-little-scale-koto-tuning) needs a spreadsheet for exactly this step.
  • --names renames the note column to match, which is what makes a non-12 scale playable rather than merely audible.
  • The Carlos alpha example shows the mode that ignores octaves altogether: a fixed 78-cent step stacked upward never returns to 2/1.

Notable quotes#

"Cue a few minutes in a hex editor and half an hour in Perl... the result: an LSDJ tuning script."

Relevance to the wiki#

The tool half of rom-retuning, and the reason the wiki can describe LSDj microtuning as a workflow rather than a stunt.

To verify#

  • bur.st/~abrasive/lsdj_tune/ was not fetched and the domain may be gone; whether the script has since been rebuilt for LSDj 4.x–9.x is unknown here (see the v4.0.5 failure reported in s-little-scale-underclocking-and-retuning).
  • Only the one comment on the post, spam. Abrasive's own name and later Game Boy hardware work are not documented from this source.

Pages touched#

alternative-tunings · rom-retuning · abrasive · lsdj · little-scale · semitone-math · harmonic-series

source file wiki/summaries/s-little-scale-abrasive-lsdj-tune.md · graph