from an 8bc post by abrasive:

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 scriptThe 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 latest [now outdated, see below] version of the script (works with LSDJ 3.9.9) can be found at

Some examples:

24-tone equal temperament

 lsdj_tune --et 24 --base A5 440 --rom --out

12-tone ET, manually

 lsdj_tune --cents 0,100,200,300,400,500,600,700,800,900,1000,1200 --base A5 440 --rom --out

Wendy Carlos' alpha scale

 lsdj_tune --cstep 78 --base 0 70 --rom --out

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 --out

Current limitations (1.3):

Base frequency specification is a bit dumb – it won't take custom note names, and sequences (--cents, --ratio) always start on the base note


The script broke due to some updates in LSDJ code. A version of the script updated to work with current LSDJ versions is available on Github at: 

Community content is available under CC-BY-SA unless otherwise noted.