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 http://bur.st/~abrasive/lsdj_tune/
Some examples:
24-tone equal temperament
lsdj_tune --et 24 --base A5 440 --rom lsdj.gb --out lsdj_et24.gb
12-tone ET, manually
lsdj_tune --cents 0,100,200,300,400,500,600,700,800,900,1000,1200 --base A5 440 --rom lsdj.gb --out lsdj_et12.gb
Wendy Carlos' alpha scale
lsdj_tune --cstep 78 --base 0 70 --rom lsdj.gb --out lsdj_alpha.gb
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
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
Update:
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: https://github.com/Dmac9244/LSDJ-Tune