\version "2.16.1" % The pitches for the scale are specified in terms of equal-tempered % whole tones. % Transposition, key signatures, transposition, and % MIDI output will use these pitches. scalepitches = #(list->vector (map (lambda (steps) (* 6/53 steps)) '(0 9 18 22 31 40 49))) #(ly:set-default-scale (ly:make-scale scalepitches)) % Arrow denotes one step in 53-EDO % Nearly a syntonic comma 80/81 (Pythagorean -> just-major third) ARROW = #(* 1 6/53) % Flat denotes four steps in 53-EDO % Nearly a major limma 128/135 (Pythagorean -> just-minor third) FLAT = #(* -4 6/53) SHARP =#(* FLAT -1) "SEMI-SHARP" =#(* SHARP 1/2) "SEMI-FLAT" =#(* FLAT 1/2) "SESQUI-SHARP" =#(* SHARP 3/2) "SESQUI-FLAT" =#(* FLAT 3/2) "DOUBLE-SHARP" =#(* SHARP 2) "DOUBLE-FLAT" =#(* FLAT 2) "SHARP-RAISE" =#(+ SHARP ARROW) "SHARP-LOWER" =#(- SHARP ARROW) "RAISE" =#(+ NATURAL ARROW) "LOWER" =#(- NATURAL ARROW) "FLAT-RAISE" =#(+ FLAT ARROW) "FLAT-LOWER" =#(- FLAT ARROW) "DBL-FL-RAISE" =#(+ DOUBLE-FLAT ARROW) "DBL-SH-LOWER" =#(- DOUBLE-SHARP ARROW) arrowedPitchNames = #`( (a . ,(ly:make-pitch -1 5 NATURAL)) (aeh . ,(ly:make-pitch -1 5 SEMI-FLAT)) (aes . ,(ly:make-pitch -1 5 FLAT)) (aeseh . ,(ly:make-pitch -1 5 SESQUI-FLAT)) (aeses . ,(ly:make-pitch -1 5 DOUBLE-FLAT)) (aesn . ,(ly:make-pitch -1 5 FLAT-LOWER)) (aeso . ,(ly:make-pitch -1 5 FLAT-RAISE)) (aih . ,(ly:make-pitch -1 5 SEMI-SHARP)) (ais . ,(ly:make-pitch -1 5 SHARP)) (aisih . ,(ly:make-pitch -1 5 SESQUI-SHARP)) (aisis . ,(ly:make-pitch -1 5 DOUBLE-SHARP)) (aisn . ,(ly:make-pitch -1 5 SHARP-LOWER)) (aiso . ,(ly:make-pitch -1 5 SHARP-RAISE)) (an . ,(ly:make-pitch -1 5 LOWER)) (ao . ,(ly:make-pitch -1 5 RAISE)) (as . ,(ly:make-pitch -1 5 FLAT)) (ases . ,(ly:make-pitch -1 5 DOUBLE-FLAT)) (asn . ,(ly:make-pitch -1 5 FLAT-LOWER)) (aso . ,(ly:make-pitch -1 5 FLAT-RAISE)) (b . ,(ly:make-pitch -1 6 NATURAL)) (beh . ,(ly:make-pitch -1 6 SEMI-FLAT)) (bes . ,(ly:make-pitch -1 6 FLAT)) (beseh . ,(ly:make-pitch -1 6 SESQUI-FLAT)) (beses . ,(ly:make-pitch -1 6 DOUBLE-FLAT)) (besn . ,(ly:make-pitch -1 6 FLAT-LOWER)) (beso . ,(ly:make-pitch -1 6 FLAT-RAISE)) (bih . ,(ly:make-pitch -1 6 SEMI-SHARP)) (bis . ,(ly:make-pitch -1 6 SHARP)) (bisih . ,(ly:make-pitch -1 6 SESQUI-SHARP)) (bisis . ,(ly:make-pitch -1 6 DOUBLE-SHARP)) (bisn . ,(ly:make-pitch -1 6 SHARP-LOWER)) (biso . ,(ly:make-pitch -1 6 SHARP-RAISE)) (bn . ,(ly:make-pitch -1 6 LOWER)) (bo . ,(ly:make-pitch -1 6 RAISE)) (c . ,(ly:make-pitch -1 0 NATURAL)) (ceh . ,(ly:make-pitch -1 0 SEMI-FLAT)) (ces . ,(ly:make-pitch -1 0 FLAT)) (ceseh . ,(ly:make-pitch -1 0 SESQUI-FLAT)) (ceses . ,(ly:make-pitch -1 0 DOUBLE-FLAT)) (cesso . ,(ly:make-pitch -1 0 DBL-FL-RAISE)) (cesn . ,(ly:make-pitch -1 0 FLAT-LOWER)) (ceso . ,(ly:make-pitch -1 0 FLAT-RAISE)) (cih . ,(ly:make-pitch -1 0 SEMI-SHARP)) (cis . ,(ly:make-pitch -1 0 SHARP)) (cisih . ,(ly:make-pitch -1 0 SESQUI-SHARP)) (cisis . ,(ly:make-pitch -1 0 DOUBLE-SHARP)) (cissn . ,(ly:make-pitch -1 0 DBL-SH-LOWER)) (cisn . ,(ly:make-pitch -1 0 SHARP-LOWER)) (ciso . ,(ly:make-pitch -1 0 SHARP-RAISE)) (cn . ,(ly:make-pitch -1 0 LOWER)) (co . ,(ly:make-pitch -1 0 RAISE)) (d . ,(ly:make-pitch -1 1 NATURAL)) (deh . ,(ly:make-pitch -1 1 SEMI-FLAT)) (des . ,(ly:make-pitch -1 1 FLAT)) (deseh . ,(ly:make-pitch -1 1 SESQUI-FLAT)) (deses . ,(ly:make-pitch -1 1 DOUBLE-FLAT)) (desso . ,(ly:make-pitch -1 1 DBL-FL-RAISE)) (desn . ,(ly:make-pitch -1 1 FLAT-LOWER)) (deso . ,(ly:make-pitch -1 1 FLAT-RAISE)) (dih . ,(ly:make-pitch -1 1 SEMI-SHARP)) (dis . ,(ly:make-pitch -1 1 SHARP)) (disih . ,(ly:make-pitch -1 1 SESQUI-SHARP)) (disis . ,(ly:make-pitch -1 1 DOUBLE-SHARP)) (dissn . ,(ly:make-pitch -1 1 DBL-SH-LOWER)) (disn . ,(ly:make-pitch -1 1 SHARP-LOWER)) (diso . ,(ly:make-pitch -1 1 SHARP-RAISE)) (dn . ,(ly:make-pitch -1 1 LOWER)) (do . ,(ly:make-pitch -1 1 RAISE)) (e . ,(ly:make-pitch -1 2 NATURAL)) (eeh . ,(ly:make-pitch -1 2 SEMI-FLAT)) (ees . ,(ly:make-pitch -1 2 FLAT)) (eeseh . ,(ly:make-pitch -1 2 SESQUI-FLAT)) (eeses . ,(ly:make-pitch -1 2 DOUBLE-FLAT)) (eesso . ,(ly:make-pitch -1 2 DBL-FL-RAISE)) (eesn . ,(ly:make-pitch -1 2 FLAT-LOWER)) (eeso . ,(ly:make-pitch -1 2 FLAT-RAISE)) (eih . ,(ly:make-pitch -1 2 SEMI-SHARP)) (eis . ,(ly:make-pitch -1 2 SHARP)) (eisih . ,(ly:make-pitch -1 2 SESQUI-SHARP)) (eisis . ,(ly:make-pitch -1 2 DOUBLE-SHARP)) (eissn . ,(ly:make-pitch -1 2 DBL-SH-LOWER)) (eisn . ,(ly:make-pitch -1 2 SHARP-LOWER)) (eiso . ,(ly:make-pitch -1 2 SHARP-RAISE)) (en . ,(ly:make-pitch -1 2 LOWER)) (eo . ,(ly:make-pitch -1 2 RAISE)) (es . ,(ly:make-pitch -1 2 FLAT)) (eses . ,(ly:make-pitch -1 2 DOUBLE-FLAT)) (esn . ,(ly:make-pitch -1 2 FLAT-LOWER)) (eso . ,(ly:make-pitch -1 2 FLAT-RAISE)) (f . ,(ly:make-pitch -1 3 NATURAL)) (feh . ,(ly:make-pitch -1 3 SEMI-FLAT)) (fes . ,(ly:make-pitch -1 3 FLAT)) (feseh . ,(ly:make-pitch -1 3 SESQUI-FLAT)) (feses . ,(ly:make-pitch -1 3 DOUBLE-FLAT)) (fesn . ,(ly:make-pitch -1 3 FLAT-LOWER)) (feso . ,(ly:make-pitch -1 3 FLAT-RAISE)) (fih . ,(ly:make-pitch -1 3 SEMI-SHARP)) (fis . ,(ly:make-pitch -1 3 SHARP)) (fisih . ,(ly:make-pitch -1 3 SESQUI-SHARP)) (fisis . ,(ly:make-pitch -1 3 DOUBLE-SHARP)) (fissn . ,(ly:make-pitch -1 3 DBL-SH-LOWER)) (fisn . ,(ly:make-pitch -1 3 SHARP-LOWER)) (fiso . ,(ly:make-pitch -1 3 SHARP-RAISE)) (fn . ,(ly:make-pitch -1 3 LOWER)) (fo . ,(ly:make-pitch -1 3 RAISE)) (g . ,(ly:make-pitch -1 4 NATURAL)) (geh . ,(ly:make-pitch -1 4 SEMI-FLAT)) (ges . ,(ly:make-pitch -1 4 FLAT)) (geseh . ,(ly:make-pitch -1 4 SESQUI-FLAT)) (geses . ,(ly:make-pitch -1 4 DOUBLE-FLAT)) (gesso . ,(ly:make-pitch -1 4 DBL-FL-RAISE)) (gesn . ,(ly:make-pitch -1 4 FLAT-LOWER)) (geso . ,(ly:make-pitch -1 4 FLAT-RAISE)) (gih . ,(ly:make-pitch -1 4 SEMI-SHARP)) (gis . ,(ly:make-pitch -1 4 SHARP)) (gisih . ,(ly:make-pitch -1 4 SESQUI-SHARP)) (gisis . ,(ly:make-pitch -1 4 DOUBLE-SHARP)) (gisn . ,(ly:make-pitch -1 4 SHARP-LOWER)) (giso . ,(ly:make-pitch -1 4 SHARP-RAISE)) (gn . ,(ly:make-pitch -1 4 LOWER)) (go . ,(ly:make-pitch -1 4 RAISE)) ) pitchnames = \arrowedPitchNames #(ly:parser-set-note-names parser pitchnames) % The symbols for each alteration arrowGlyphs = #`( ( 0 . "accidentals.natural") (,FLAT . "accidentals.flat") (,FLAT-LOWER . "accidentals.flat.arrowdown") (,FLAT-RAISE . "accidentals.flat.arrowup") (,SHARP . "accidentals.sharp") (,SHARP-LOWER . "accidentals.sharp.arrowdown") (,SHARP-RAISE . "accidentals.sharp.arrowup") (,DOUBLE-FLAT . "accidentals.flatflat") (,DOUBLE-SHARP . "accidentals.doublesharp") (,LOWER . "accidentals.natural.arrowdown") (,RAISE . "accidentals.natural.arrowup") (,SEMI-FLAT . "accidentals.mirroredflat") (,SEMI-SHARP . "accidentals.sharp.slashslash.stem") (,SESQUI-FLAT . "accidentals.mirroredflat.flat") (,SESQUI-SHARP . "accidentals.sharp.slashslash.stemstemstem") (,DBL-FL-RAISE . "accidentals.flatflat.slash") (,DBL-SH-LOWER . "accidentals.sharp.slashslashslash.stemstem") ) major = #`( (0 . ,NATURAL) (1 . ,NATURAL) (2 . ,LOWER) (3 . ,NATURAL) (4 . ,NATURAL) (5 . ,LOWER) (6 . ,LOWER) ) minor = #`( (0 . ,NATURAL) (1 . ,NATURAL) (2 . ,FLAT) (3 . ,NATURAL) (4 . ,NATURAL) (5 . ,FLAT) (6 . ,FLAT) ) sixth = #`( (0 . ,NATURAL) (1 . ,NATURAL) (2 . ,FLAT) (3 . ,NATURAL) (4 . ,NATURAL) (5 . ,LOWER) (6 . ,LOWER) ) % keyAlterationOrder needs to know our pitches to typeset key signatures. % Each object that draws accidentals needs to know our glyphs. \layout { \context { \Score keyAlterationOrder = #`( (6 . ,FLAT) (6 . ,FLAT-LOWER) (6 . ,FLAT-RAISE) (2 . ,FLAT) (2 . ,FLAT-LOWER) (2 . ,FLAT-RAISE) (5 . ,FLAT) (5 . ,FLAT-LOWER) (5 . ,FLAT-RAISE) (1 . ,FLAT) (1 . ,FLAT-LOWER) (1 . ,FLAT-RAISE) (4 . ,FLAT) (4 . ,FLAT-LOWER) (4 . ,FLAT-RAISE) (0 . ,FLAT) (0 . ,FLAT-LOWER) (0 . ,FLAT-RAISE) (3 . ,FLAT) (3 . ,FLAT-LOWER) (3 . ,FLAT-RAISE) (3 . ,SHARP) (3 . ,SHARP-LOWER) (3 . ,SHARP-RAISE) (0 . ,SHARP) (0 . ,SHARP-LOWER) (0 . ,SHARP-RAISE) (4 . ,SHARP) (4 . ,SHARP-LOWER) (4 . ,SHARP-RAISE) (1 . ,SHARP) (1 . ,SHARP-LOWER) (1 . ,SHARP-RAISE) (5 . ,SHARP) (5 . ,SHARP-LOWER) (5 . ,SHARP-RAISE) (2 . ,SHARP) (2 . ,SHARP-LOWER) (2 . ,SHARP-RAISE) (6 . ,SHARP) (6 . ,SHARP-LOWER) (6 . ,SHARP-RAISE) (6 . ,LOWER) (2 . ,LOWER) (5 . ,LOWER) (1 . ,LOWER) (4 . ,LOWER) (0 . ,LOWER) (3 . ,LOWER) (3 . ,RAISE) (0 . ,RAISE) (4 . ,RAISE) (1 . ,RAISE) (5 . ,RAISE) (2 . ,RAISE) (6 . ,RAISE) ) \override KeySignature #'glyph-name-alist = \arrowGlyphs \override KeySignature #'padding-pairs = #'( (("accidentals.natural.arrowdown" . "accidentals.natural.arrowdown") . 0.5) (("accidentals.natural.arrowdown" . "accidentals.sharp.arrowdown") . 0.2) (("accidentals.natural.arrowdown" . "accidentals.flat.arrowdown") . 0.7) (("accidentals.natural.arrowup" . "accidentals.natural.arrowup") . 0.5) (("accidentals.natural.arrowup" . "accidentals.sharp.arrowup") . 0.2) (("accidentals.natural.arrowup" . "accidentals.flat.arrowup") . 0.7) (("accidentals.flat.arrowup" . "accidentals.flat.arrowup") . 0.3) (("accidentals.sharp" . "accidentals.natural.arrowdown") . 0.5)) \override Accidental #'glyph-name-alist = \arrowGlyphs \override AccidentalCautionary #'glyph-name-alist = \arrowGlyphs \override TrillPitchAccidental #'glyph-name-alist = \arrowGlyphs \override AmbitusAccidental #'glyph-name-alist = \arrowGlyphs } } \midi { \context { \Staff \remove "Staff_performer" } \context { \Voice %midiInstrument = "pad 4 (choir)" %midiInstrument = "string ensemble 1" %midiInstrument = "lead 1 (square)" %midiInstrument = "ocarina" midiInstrument = "drawbar organ" \consists "Staff_performer" } \context { \Score tempoWholesPerMinute = #(ly:make-moment 30 4) } } \score { \new Staff { \time 3/4 \accidentalStyle #'Score "modern" << \relative c'' { c4 co16 cih cisn cis ciso cisih cissn cisis d4 do16 dih disn dis diso disih dissn disis e4 \times 2/3 {eo8 eih eisn} eis8(\noBeam f) fo16 fih fisn fis fiso fisih fissn fisis g4 }\\ \relative c' { r4 deses16 desso deseh desn des deso deh dn d4 eeses16 eesso eeseh eesn ees eeso eeh en e8(\noBeam fes) \times 2/3 {feso8 feh fn} f4 geses16 gesso geseh gesn ges geso geh gn g4 }>> } \layout{} \midi{} } \score { \transpose b c' << \new Staff \with { instrumentName = \markup\center-column {"Sopr." "Alto"} } \relative c'' { \key b\minor s1*0^\markup\huge"from St. Matthew Passion, J. S. Bach" % Was mein Gott will, das geschn allzeit << { \accidentalStyle #'Score "modern" \partial 4 do4 | cis b e do8 ciso | ciso2 b } \\ { fiso4 | e8 fiso gis ais b4 b | b ais fiso2 } >> } \new Staff \with { instrumentName = \markup\center-column {"Tenor" "Bass"} } \relative c' { \key b\minor << { \clef "treble_8" ao8 b | cis dis e4 b8 cis do4 | giso, ciso dis2 } \\ { fiso,8 gis | a4 gis go fiso | eis fiso b,2 } >> } >> \layout{} \midi{}} \score {\transpose c' a << \new Staff << { \key c\major \clef "treble_8" fn'4 g' en'2 } \\ { \clef "treble_8" g4 en' c'2 } >> \new Staff << { \key c\major \clef bass bn4 bn4 g2 } \\ { \clef bass d4 g c2 } >> >> \layout{} \midi{}} \score { \transpose c c' { \key c\major \time 2/4 << { c'8 d' en' f' g' an' bn' c'' } \\ { c2 c2 } >> \bar "||" <>^"comma pump" << { g4 an an beh cn'2 c' \bar "||" <>^"mistuning to avoid the pump" g4 an an bn c'2 c' } \\ { c4 c dn dn eeh2 en c4 c d d en2 en } \\ { en4 en f gn gn2 g en4 en f g g2 g } >> } \layout {} \midi {} }