\version "2.12.3" %our maximum is 100 cents, or half of a 12et tone #(define-public MAX_SHIFT (/ -1 2)) %define accidental shifts (for midi) as a fraction of a 12et tone #(define-public SEMISHARP (/ (/ 1200 31) 200)) #(define-public SEMIFLAT (* -1 SEMISHARP)) #(define-public SHARP (* 2 SEMISHARP)) #(define-public FLAT (* 2 SEMIFLAT)) #(define-public SESQUISHARP (* 3 SEMISHARP)) #(define-public SESQUIFLAT (* 3 SEMIFLAT)) #(define-public DOUBLESHARP (* 4 SEMISHARP)) #(define-public DOUBLEFLAT (* 4 SEMIFLAT)) thirtyonePitchNames = #`( (c . ,(ly:make-pitch -1 0 (* -3/31 MAX_SHIFT))) (d . ,(ly:make-pitch -1 1 (* -1/31 MAX_SHIFT))) (e . ,(ly:make-pitch -1 2 (* 1/31 MAX_SHIFT))) (f . ,(ly:make-pitch -1 3 (* -4/31 MAX_SHIFT))) (g . ,(ly:make-pitch -1 4 (* -2/31 MAX_SHIFT))) (a . ,(ly:make-pitch -1 5 0)) (b . ,(ly:make-pitch -1 6 (* 2/31 MAX_SHIFT))) (css . ,(ly:make-pitch -1 0 (+ SEMISHARP (* -3/31 MAX_SHIFT)))) (dss . ,(ly:make-pitch -1 1 (+ SEMISHARP (* -1/31 MAX_SHIFT)))) (ess . ,(ly:make-pitch -1 2 (+ SEMISHARP (* 1/31 MAX_SHIFT)))) (fss . ,(ly:make-pitch -1 3 (+ SEMISHARP (* -4/31 MAX_SHIFT)))) (gss . ,(ly:make-pitch -1 4 (+ SEMISHARP (* -2/31 MAX_SHIFT)))) (ass . ,(ly:make-pitch -1 5 (+ SEMISHARP 0))) (bss . ,(ly:make-pitch -1 6 (+ SEMISHARP (* 2/31 MAX_SHIFT)))) (csf . ,(ly:make-pitch -1 0 (+ SEMIFLAT (* -3/31 MAX_SHIFT)))) (dsf . ,(ly:make-pitch -1 1 (+ SEMIFLAT (* -1/31 MAX_SHIFT)))) (esf . ,(ly:make-pitch -1 2 (+ SEMIFLAT (* 1/31 MAX_SHIFT)))) (fsf . ,(ly:make-pitch -1 3 (+ SEMIFLAT (* -4/31 MAX_SHIFT)))) (gsf . ,(ly:make-pitch -1 4 (+ SEMIFLAT (* -2/31 MAX_SHIFT)))) (asf . ,(ly:make-pitch -1 5 (+ SEMIFLAT 0))) (bsf . ,(ly:make-pitch -1 6 (+ SEMIFLAT (* 2/31 MAX_SHIFT)))) (cs . ,(ly:make-pitch -1 0 (+ SHARP (* -3/31 MAX_SHIFT)))) (ds . ,(ly:make-pitch -1 1 (+ SHARP (* -1/31 MAX_SHIFT)))) (es . ,(ly:make-pitch -1 2 (+ SHARP (* 1/31 MAX_SHIFT)))) (fs . ,(ly:make-pitch -1 3 (+ SHARP (* -4/31 MAX_SHIFT)))) (gs . ,(ly:make-pitch -1 4 (+ SHARP (* -2/31 MAX_SHIFT)))) (as . ,(ly:make-pitch -1 5 (+ SHARP 0))) (bs . ,(ly:make-pitch -1 6 (+ SHARP (* 2/31 MAX_SHIFT)))) (cf . ,(ly:make-pitch -1 0 (+ FLAT (* -3/31 MAX_SHIFT)))) (df . ,(ly:make-pitch -1 1 (+ FLAT (* -1/31 MAX_SHIFT)))) (ef . ,(ly:make-pitch -1 2 (+ FLAT (* 1/31 MAX_SHIFT)))) (ff . ,(ly:make-pitch -1 3 (+ FLAT (* -4/31 MAX_SHIFT)))) (gf . ,(ly:make-pitch -1 4 (+ FLAT (* -2/31 MAX_SHIFT)))) (af . ,(ly:make-pitch -1 5 (+ FLAT 0))) (bf . ,(ly:make-pitch -1 6 (+ FLAT (* 2/31 MAX_SHIFT)))) (csqs . ,(ly:make-pitch -1 0 (+ SESQUISHARP (* -3/31 MAX_SHIFT)))) (dsqs . ,(ly:make-pitch -1 1 (+ SESQUISHARP (* -1/31 MAX_SHIFT)))) (esqs . ,(ly:make-pitch -1 2 (+ SESQUISHARP (* 1/31 MAX_SHIFT)))) (fsqs . ,(ly:make-pitch -1 3 (+ SESQUISHARP (* -4/31 MAX_SHIFT)))) (gsqs . ,(ly:make-pitch -1 4 (+ SESQUISHARP (* -2/31 MAX_SHIFT)))) (asqs . ,(ly:make-pitch -1 5 (+ SESQUISHARP 0))) (bsqs . ,(ly:make-pitch -1 6 (+ SESQUISHARP (* 2/31 MAX_SHIFT)))) (csqf . ,(ly:make-pitch -1 0 (+ SESQUIFLAT (* -3/31 MAX_SHIFT)))) (dsqf . ,(ly:make-pitch -1 1 (+ SESQUIFLAT (* -1/31 MAX_SHIFT)))) (esqf . ,(ly:make-pitch -1 2 (+ SESQUIFLAT (* 1/31 MAX_SHIFT)))) (fsqf . ,(ly:make-pitch -1 3 (+ SESQUIFLAT (* -4/31 MAX_SHIFT)))) (gsqf . ,(ly:make-pitch -1 4 (+ SESQUIFLAT (* -2/31 MAX_SHIFT)))) (asqf . ,(ly:make-pitch -1 5 (+ SESQUIFLAT 0))) (bsqf . ,(ly:make-pitch -1 6 (+ SESQUIFLAT (* 2/31 MAX_SHIFT)))) (cx . ,(ly:make-pitch -1 0 (+ DOUBLESHARP (* -3/31 MAX_SHIFT)))) (dx . ,(ly:make-pitch -1 1 (+ DOUBLESHARP (* -1/31 MAX_SHIFT)))) (ex . ,(ly:make-pitch -1 2 (+ DOUBLESHARP (* 1/31 MAX_SHIFT)))) (fx . ,(ly:make-pitch -1 3 (+ DOUBLESHARP (* -4/31 MAX_SHIFT)))) (gx . ,(ly:make-pitch -1 4 (+ DOUBLESHARP (* -2/31 MAX_SHIFT)))) (ax . ,(ly:make-pitch -1 5 (+ DOUBLESHARP 0))) (bx . ,(ly:make-pitch -1 6 (+ DOUBLESHARP (* 2/31 MAX_SHIFT)))) (cdf . ,(ly:make-pitch -1 0 (+ DOUBLEFLAT (* -3/31 MAX_SHIFT)))) (ddf . ,(ly:make-pitch -1 1 (+ DOUBLEFLAT (* -1/31 MAX_SHIFT)))) (edf . ,(ly:make-pitch -1 2 (+ DOUBLEFLAT (* 1/31 MAX_SHIFT)))) (fdf . ,(ly:make-pitch -1 3 (+ DOUBLEFLAT (* -4/31 MAX_SHIFT)))) (gdf . ,(ly:make-pitch -1 4 (+ DOUBLEFLAT (* -2/31 MAX_SHIFT)))) (adf . ,(ly:make-pitch -1 5 (+ DOUBLEFLAT 0))) (bdf . ,(ly:make-pitch -1 6 (+ DOUBLEFLAT (* 2/31 MAX_SHIFT)))) ) pitchnames = \thirtyonePitchNames #(ly:parser-set-note-names parser thirtyonePitchNames) #(define (accidental-list pitchlist shift glyphname) (map (lambda (x) (cons (+ shift (* (/ x 31) MAX_SHIFT)) glyphname)) pitchlist)) thirtyoneGlyphs = #(append (accidental-list '(-4 -3 -2 -1 0 1 2) 0 "accidentals.natural") (accidental-list '(-4 -3 -2 -1 0 1 2) SEMISHARP "accidentals.sharp.slashslash.stem") (accidental-list '(-4 -3 -2 -1 0 1 2) SEMIFLAT "accidentals.mirroredflat") (accidental-list '(-4 -3 -2 -1 0 1 2) SHARP "accidentals.sharp") (accidental-list '(-4 -3 -2 -1 0 1 2) FLAT "accidentals.flat") (accidental-list '(-4 -3 -2 -1 0 1 2) SESQUISHARP "accidentals.sharp.slashslash.stemstemstem") (accidental-list '(-4 -3 -2 -1 0 1 2) SESQUIFLAT "accidentals.mirroredflat.flat") (accidental-list '(-4 -3 -2 -1 0 1 2) DOUBLESHARP "accidentals.doublesharp") (accidental-list '(-4 -3 -2 -1 0 1 2) DOUBLEFLAT "accidentals.flatflat")) \layout { \context { \Score \override KeySignature #'glyph-name-alist = \thirtyoneGlyphs \override Accidental #'glyph-name-alist = \thirtyoneGlyphs \override AccidentalCautionary #'glyph-name-alist = \thirtyoneGlyphs \override TrillPitchAccidental #'glyph-name-alist = \thirtyoneGlyphs \override AmbitusAccidental #'glyph-name-alist = \thirtyoneGlyphs } }