%LSR originally contributed by Graham Breed for version "2.11.65" % Dodecaphonic notation, after Erv Wilson, but probably an earlier idea. \include "english.ly" % set the nominals to be 12-equal #(ly:set-default-scale (ly:make-scale '#((0 . 0) (0 . 0) (0 . 0) (0 . 0) (0 . 0) (0 . 0) (0 . 0) (0 . 0) (0 . 0) (0 . 0) (0 . 0) (0 . 0) (0 . 0)) 1/2 1/2 1/4)) % Set the pitches to 12-equal with enharmonic equivalences % keep the original pitch names. % Preserves quartertones as half-sharps. dodecaPitchNames = #(map (lambda (pitchname) (let* ((pitch (cdr pitchname)) (quartertones (ly:pitch-quartertones pitch)) (fractional-steps (/ quartertones 2)) (steps (inexact->exact (floor fractional-steps))) ;; Not sure if inexact->exact is needed here (alt (inexact->exact (floor (* 2 (- fractional-steps steps)))))) (cons (car pitchname) (ly:make-pitch 0 steps (cons 0 alt))))) pitchnames) #(ly:parser-set-note-names parser dodecaPitchNames) \layout { \context { \Score \override StaffSymbol #'line-positions = #'(-5 -3 0 2 4) % hack to suppress ledger line, seems to have a lower limit \override StaffSymbol #'ledger-line-thickness = #'(0.0006 . 0) } } \score{ \new Staff \relative c' { c d e f g a b c c, cs d ds e f fs g gs a as b c1 c4 b bf a af g gf f e ef d df c1 c4 cqs cs dqf d dqs ds eqf e eqs f fqs fs gqf g gqs gs aqf a aqs as bqf b bqs c1 } }