lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Microtonal Helmholtz-Ellis notation in Lilypond: fine-tuning


From: Stefan Thomas
Subject: Re: Microtonal Helmholtz-Ellis notation in Lilypond: fine-tuning
Date: Sun, 27 Sep 2009 13:12:07 +0200

Dear Community,
I have now defined a table for mictotones (I use the division of 12 of the whole tone, which is not 100 percent just intonation).
The spacing, I guess, is ok, I only get problems, sometimes, at the beginning of a measure.
I've defined for that the variable "machplatz" ("makespace", if you translate into english).
There are tow more things I would like to know:
  1. The new accidentals are also played via midi, which is great. But not, when different accidentals are in a chord. Is there a possibilitie to change this?
  2. How can I define the accidental-style neo-modern for the whole score?
Here now the file:
\version "2.12.0"


% Define tunings:
\paper{
#(define fonts (make-pango-font-tree "Century Schoolbook L"
                                      "HE"
                                      "Bitstream Vera Sans Mono"
                         1))
}
#(define-public SHARPSYMBOL 1/2)
#(define-public SHARPSYMBOL -1/2)
#(define-public Vierteltonkreuz 1/4)
#(define-public VierteltonBSYMBOL -1/4)
#(define-public SyntohochAufloesungszeichen 1/12)
#(define-public ZweiSyntohochAufloesungszeichen 1/6)
#(define-public ZweiSyntotiefKreuz 1/3)
#(define-public SyntotiefKreuz 5/12)
#(define-public SyntohochKreuz 7/12)
#(define-public ZweiSyntohochKreuz 2/3)
#(define-public SyntotiefAufloesungszeichen -1/12)
#(define-public ZweiSyntotiefAufloesungszeichen -1/6)
#(define-public ZweiSyntohochBe -1/3)
#(define-public SyntohochBe -5/12)
#(define-public SyntotiefBe -7/12)
#(define-public ZweiSyntotiefBe -2/3)



StefansPitchnames = #`(
    (ceses . ,(ly:make-pitch -1 0 DOUBLE-FLAT))
    (ces . ,(ly:make-pitch -1 0 FLAT))
    (c . ,(ly:make-pitch -1 0 NATURAL))
    (cis . ,(ly:make-pitch -1 0 SHARP))
    (cisis . ,(ly:make-pitch -1 0 DOUBLE-SHARP))
    (deses . ,(ly:make-pitch -1 1 DOUBLE-FLAT))
    (des . ,(ly:make-pitch -1 1 FLAT))
    (d . ,(ly:make-pitch -1 1 NATURAL))
    (dis . ,(ly:make-pitch -1 1 SHARP))
    (disis . ,(ly:make-pitch -1 1 DOUBLE-SHARP))
    (eeses . ,(ly:make-pitch -1 2 DOUBLE-FLAT))
    (ees . ,(ly:make-pitch -1 2 FLAT))
    (es . ,(ly:make-pitch -1 2 FLAT))
    (e . ,(ly:make-pitch -1 2 NATURAL))
    (eis . ,(ly:make-pitch -1 2 SHARP))
    (eisis . ,(ly:make-pitch -1 2 DOUBLE-SHARP))
    (feses . ,(ly:make-pitch -1 3 DOUBLE-FLAT))
    (fes . ,(ly:make-pitch -1 3 FLAT))
    (f . ,(ly:make-pitch -1 3 NATURAL))
    (fis . ,(ly:make-pitch -1 3 SHARP))
    (fisis . ,(ly:make-pitch -1 3 DOUBLE-SHARP))
    (geses . ,(ly:make-pitch -1 4 DOUBLE-FLAT))
    (ges . ,(ly:make-pitch -1 4 FLAT))
    (g . ,(ly:make-pitch -1 4 NATURAL))
    (gis . ,(ly:make-pitch -1 4 SHARP))
    (gisis . ,(ly:make-pitch -1 4 DOUBLE-SHARP))
    (aeses . ,(ly:make-pitch -1 5 DOUBLE-FLAT))
    (aes . ,(ly:make-pitch -1 5 FLAT))
    (as . ,(ly:make-pitch -1 5 FLAT))
    (a . ,(ly:make-pitch -1 5 NATURAL))
    (ais . ,(ly:make-pitch -1 5 SHARP))
    (aisis . ,(ly:make-pitch -1 5 DOUBLE-SHARP))
    (beses . ,(ly:make-pitch -1 6 DOUBLE-FLAT))
    (bes . ,(ly:make-pitch -1 6 FLAT))
    (b . ,(ly:make-pitch -1 6 NATURAL))
    (bis . ,(ly:make-pitch -1 6 SHARP))
    (bisis . ,(ly:make-pitch -1 6 DOUBLE-SHARP))

   
    (ceh . ,(ly:make-pitch -1 0 VierteltonBSYMBOL))
    (c . ,(ly:make-pitch -1 0 NATURAL))
    (cih . ,(ly:make-pitch -1 0 Vierteltonkreuz))
       
   
   
    (deh . ,(ly:make-pitch -1 1 VierteltonBSYMBOL))
    (d . ,(ly:make-pitch -1 1 NATURAL))
    (dih . ,(ly:make-pitch -1 1 Vierteltonkreuz))
   
   
    (eeh . ,(ly:make-pitch -1 2 VierteltonBSYMBOL))
    (e . ,(ly:make-pitch -1 2 NATURAL))
    (eih . ,(ly:make-pitch -1 2 Vierteltonkreuz))
   

   
    (feh . ,(ly:make-pitch -1 3 VierteltonBSYMBOL))
    (f . ,(ly:make-pitch -1 3 NATURAL))
    (fih . ,(ly:make-pitch -1 3 Vierteltonkreuz))

    (geh . ,(ly:make-pitch -1 4 VierteltonBSYMBOL))
    (g . ,(ly:make-pitch -1 4 NATURAL))
    (gih . ,(ly:make-pitch -1 4 Vierteltonkreuz))

    (aeh . ,(ly:make-pitch -1 5 VierteltonBSYMBOL))
    (a . ,(ly:make-pitch -1 5 NATURAL))
    (aih . ,(ly:make-pitch -1 5 Vierteltonkreuz))


    (beh . ,(ly:make-pitch -1 6 VierteltonBSYMBOL))
    (b . ,(ly:make-pitch -1 6 NATURAL))
    (bih . ,(ly:make-pitch -1 6 Vierteltonkreuz))
       
         (ch . ,(ly:make-pitch -1 0 SyntohochAufloesungszeichen))
         (chh . ,(ly:make-pitch -1 0 ZweiSyntohochAufloesungszeichen))
         (cistt . ,(ly:make-pitch -1 0 ZweiSyntotiefKreuz))
         (cist . ,(ly:make-pitch -1 0 SyntotiefKreuz))
         (cish . ,(ly:make-pitch -1 0 SyntohochKreuz))
         (cishh . ,(ly:make-pitch -1 0 ZweiSyntohochKreuz))

         (dh . ,(ly:make-pitch -1 1 SyntohochAufloesungszeichen))
         (dhh . ,(ly:make-pitch -1 1 ZweiSyntohochAufloesungszeichen))
         (distt . ,(ly:make-pitch -1 1 ZweiSyntotiefKreuz))
         (dist . ,(ly:make-pitch -1 1 SyntotiefKreuz))
         (dish . ,(ly:make-pitch -1 1 SyntohochKreuz))
         (dishh . ,(ly:make-pitch -1 1 ZweiSyntohochKreuz))
        
         (eh . ,(ly:make-pitch -1 2 SyntohochAufloesungszeichen))
         (ehh . ,(ly:make-pitch -1 2 ZweiSyntohochAufloesungszeichen))
         (eistt . ,(ly:make-pitch -1 2 ZweiSyntotiefKreuz))
         (eist . ,(ly:make-pitch -1 2 SyntotiefKreuz))
         (eish . ,(ly:make-pitch -1 2 SyntohochKreuz))
         (eishh . ,(ly:make-pitch -1 2 ZweiSyntohochKreuz))

         (fh . ,(ly:make-pitch -1 3 SyntohochAufloesungszeichen))
         (fhh . ,(ly:make-pitch -1 3 ZweiSyntohochAufloesungszeichen))
         (fistt . ,(ly:make-pitch -1 3 ZweiSyntotiefKreuz))
         (fist . ,(ly:make-pitch -1 3 SyntotiefKreuz))
         (fish . ,(ly:make-pitch -1 3 SyntohochKreuz))
         (fishh . ,(ly:make-pitch -1 3 ZweiSyntohochKreuz))
        
         (gh . ,(ly:make-pitch -1 4 SyntohochAufloesungszeichen))
         (ghh . ,(ly:make-pitch -1 4 ZweiSyntohochAufloesungszeichen))
         (gistt . ,(ly:make-pitch -1 4 ZweiSyntotiefKreuz))
         (gist . ,(ly:make-pitch -1 4 SyntotiefKreuz))
         (gish . ,(ly:make-pitch -1 4 SyntohochKreuz))
         (gishh . ,(ly:make-pitch -1 4 ZweiSyntohochKreuz))
        
         (ah . ,(ly:make-pitch -1 5 SyntohochAufloesungszeichen))
         (ahh . ,(ly:make-pitch -1 5 ZweiSyntohochAufloesungszeichen))
         (aistt . ,(ly:make-pitch -1 5 ZweiSyntotiefKreuz))
         (aist . ,(ly:make-pitch -1 5 SyntotiefKreuz))
         (aish . ,(ly:make-pitch -1 5 SyntohochKreuz))
         (aishh . ,(ly:make-pitch -1 5 ZweiSyntohochKreuz))
        
         (bh . ,(ly:make-pitch -1 6 SyntohochAufloesungszeichen))
         (bhh . ,(ly:make-pitch -1 6 ZweiSyntohochAufloesungszeichen))
         (bistt . ,(ly:make-pitch -1 6 ZweiSyntotiefKreuz))
         (bist . ,(ly:make-pitch -1 6 SyntotiefKreuz))
         (bish . ,(ly:make-pitch -1 6 SyntohochKreuz))
         (bishh . ,(ly:make-pitch -1 6 ZweiSyntohochKreuz))
        
         (cl . ,(ly:make-pitch -1 0 SyntotiefAufloesungszeichen))
         (cll . ,(ly:make-pitch -1 0 ZweiSyntotiefAufloesungszeichen))
         (ceshh . ,(ly:make-pitch -1 0 ZweiSyntohochBe))
         (cesh . ,(ly:make-pitch -1 0 SyntohochBe))
         (cesl . ,(ly:make-pitch -1 0 SyntotiefBe))
         (cesll . ,(ly:make-pitch -1 0 ZweiSyntotiefBe))
        
         (dl . ,(ly:make-pitch -1 1 SyntotiefAufloesungszeichen))
         (dll . ,(ly:make-pitch -1 1 ZweiSyntotiefAufloesungszeichen))
         (deshh . ,(ly:make-pitch -1 1 ZweiSyntohochBe))
         (desh . ,(ly:make-pitch -1 1 SyntohochBe))
         (desl . ,(ly:make-pitch -1 1 SyntotiefBe))
         (desll . ,(ly:make-pitch -1 1 ZweiSyntotiefBe))
        
         (el . ,(ly:make-pitch -1 2 SyntotiefAufloesungszeichen))
         (ell . ,(ly:make-pitch -1 2 ZweiSyntotiefAufloesungszeichen))
         (eeshh . ,(ly:make-pitch -1 2 ZweiSyntohochBe))
         (eesh . ,(ly:make-pitch -1 2 SyntohochBe))
         (eesl . ,(ly:make-pitch -1 2 SyntotiefBe))
         (eesll . ,(ly:make-pitch -1 2 ZweiSyntotiefBe))
        
         (fl . ,(ly:make-pitch -1 3 SyntotiefAufloesungszeichen))
         (fll . ,(ly:make-pitch -1 3 ZweiSyntotiefAufloesungszeichen))
         (feshh . ,(ly:make-pitch -1 3 ZweiSyntohochBe))
         (fesh . ,(ly:make-pitch -1 3 SyntohochBe))
         (fesl . ,(ly:make-pitch -1 3 SyntotiefBe))
         (fesll . ,(ly:make-pitch -1 3 ZweiSyntotiefBe))
        
         (gl . ,(ly:make-pitch -1 4 SyntotiefAufloesungszeichen))
         (gll . ,(ly:make-pitch -1 4 ZweiSyntotiefAufloesungszeichen))
         (geshh . ,(ly:make-pitch -1 4 ZweiSyntohochBe))
         (gesh . ,(ly:make-pitch -1 4 SyntohochBe))
         (gesl . ,(ly:make-pitch -1 4 SyntotiefBe))
         (gesll . ,(ly:make-pitch -1 4 ZweiSyntotiefBe))
        
         (al . ,(ly:make-pitch -1 5 SyntotiefAufloesungszeichen))
         (all . ,(ly:make-pitch -1 5 ZweiSyntotiefAufloesungszeichen))
         (aeshh . ,(ly:make-pitch -1 5 ZweiSyntohochBe))
         (aesh . ,(ly:make-pitch -1 5 SyntohochBe))
         (aesl . ,(ly:make-pitch -1 5 SyntotiefBe))
         (aesll . ,(ly:make-pitch -1 5 ZweiSyntotiefBe))
        
         (bl . ,(ly:make-pitch -1 6 SyntotiefAufloesungszeichen))
         (bll . ,(ly:make-pitch -1 6 ZweiSyntotiefAufloesungszeichen))
         (beshh . ,(ly:make-pitch -1 6 ZweiSyntohochBe))
         (besh . ,(ly:make-pitch -1 6 SyntohochBe))
         (besl . ,(ly:make-pitch -1 6 SyntotiefBe))
         (besll . ,(ly:make-pitch -1 6 ZweiSyntotiefBe))
        
        
        
)




FONTNAME = "HE"


NATURALSYMBOL = "Ñ"
VierteltonBSYMBOL = "ç"
Vierteltonkreuz = "è"
FLATSYMBOL = "e"
SHARPSYMBOL = "Ø"
DFLATSYMBOL = "Ã"
DSHARPSYMBOL = "ß"
SyntohochAufloesungszeichen = "o"
ZweiSyntohochAufloesungszeichen = "p"
ZweiSyntotiefKreuz ="t"   
SyntotiefKreuz ="u"
SyntohochKreuz ="Ù"
ZweiSyntohochKreuz ="Ú"
SyntotiefAufloesungszeichen = "m"
ZweiSyntotiefAufloesungszeichen = "l"
ZweiSyntotiefBe = "È"
SyntotiefBe = "É"
ZweiSyntohochBe = "Ì"
SyntohochBe ="Ë"



StefansStrings = #`(
       (-1/4 . ,VierteltonBSYMBOL)
       (1/4 .   ,Vierteltonkreuz)
       (0 .     ,NATURALSYMBOL)
       (1/2 .   ,SHARPSYMBOL)
       (-1/2 .  ,FLATSYMBOL)
       (-1 .    ,DFLATSYMBOL)
       ( 1 .    ,DSHARPSYMBOL)
        (1/12 . ,SyntohochAufloesungszeichen)
         (1/6 . ,ZweiSyntohochAufloesungszeichen)
         (1/3 . ,ZweiSyntotiefKreuz)
         (5/12 . ,SyntotiefKreuz)
         (7/12 . ,SyntohochKreuz)
           (2/3 . ,ZweiSyntohochKreuz)
        (-1/12 . ,SyntotiefAufloesungszeichen)
         (-1/6 . ,ZweiSyntotiefAufloesungszeichen)
         (-1/3 . ,ZweiSyntohochBe)
         (-5/12 . ,SyntohochBe)
         (-7/12 . ,SyntotiefBe)
           (-2/3 . ,ZweiSyntotiefBe)
      
       
)

\layout {
  \context {
    \Score
    \override KeySignature #'stencil = #ly:text-interface::print
    \override KeySignature #'font-name = #FONTNAME
\override Accidental #'stencil = #(lambda (grob) (box-stencil (ly:text-interface::print grob) 0 0))
    \override Accidental #'stencil = #ly:text-interface::print
    \override Accidental #'font-name = #FONTNAME
    \override Accidental #'text = #(lambda (grob)
         (cdr (assoc (ly:grob-property grob 'alteration)
                  StefansStrings)))
    \override Accidental #'X-extent = #(lambda (grob)
  (let ((iv (ly:stencil-extent (ly:text-interface::print grob) X)))
    (cons (- (interval-start iv)0.1 ) (- (interval-end iv) 0.7))))
  \override Accidental #'font-size = #-1
     \override Accidental #'Y-extent = #(lambda (grob)
   (ly:stencil-extent (ly:text-interface::print grob) Y)  )
  }
}

pitchnames = \StefansPitchnames

#(ly:parser-set-note-names parser pitchnames)


      
       


\layout {
  \context {
    \Score
    \override KeySignature #'stencil = #ly:text-interface::print
    \override KeySignature #'font-name = #FONTNAME
\override Accidental #'stencil = #(lambda (grob) (box-stencil (ly:text-interface::print grob) 0 0))
    \override Accidental #'stencil = #ly:text-interface::print
    \override Accidental #'font-name = #FONTNAME
    \override Accidental #'text = #(lambda (grob)
         (cdr (assoc (ly:grob-property grob 'alteration)
                  StefansStrings)))
    \override Accidental #'X-extent = #(lambda (grob)
  (let ((iv (ly:stencil-extent (ly:text-interface::print grob) X)))
    (cons (- (interval-start iv)0.1 ) (- (interval-end iv) 0.7))))
  \override Accidental #'font-size = #-1
     \override Accidental #'Y-extent = #(lambda (grob)
   (ly:stencil-extent (ly:text-interface::print grob) Y)  )
  }
}

pitchnames = \StefansPitchnames

#(ly:parser-set-note-names parser pitchnames)


%TaktPlatz = {\once \override Score.BarLine #'space-alist = #'((first-note extra-space . 1.5)) }
machplatz = #(define-music-function (parser location x) (number?)
  #{
\once \override Score.NoteColumn #'X-offset = #$x 
#})







reply via email to

[Prev in Thread] Current Thread [Next in Thread]