« Return to Thread: Overriding NoteHead stencil in a chord produces unwanted X offset

Re: Overriding NoteHead stencil in a chord produces unwanted X offset

by Mike Solomon-2 :: Rate this Message:

Reply to Author | View in Thread

The up and down arrows are eighth tones, but there is no standard convention
for how to write them.  Also, as you can imagine, they are approximations of
just-intoned intervals.  What really matters is the fingering chart.  To
effectuate these eighth tones, I modified someone else's quarter tone code
(see below).  
As I'll be using a lot of microtones, I may work on automating your very
good solution. My deadline for the piece is July 20, so I am under the gun,
but as Confucius once said, "One day devoted to automating a process saves
you a lifetime of doing it manually."

~Mike

#(define-public Q-SHARP 499/4000)
#(define-public Q-Q-SHARP 999/4000)
#(define-public Q-Q-Q-SHARP 1499/4000)
#(define-public SHARP-Q 2499/4000)
#(define-public SHARP-Q-Q 2999/4000)
#(define-public SHARP-Q-Q-Q 3499/4000)
#(define-public Q-FLAT -499/4000)
#(define-public Q-Q-FLAT -999/4000)
#(define-public Q-Q-Q-FLAT -1499/4000)
#(define-public FLAT-Q -2499/4000)
#(define-public FLAT-Q-Q -2999/4000)
#(define-public FLAT-Q-Q-Q -3499/4000)

quartertonearrowPitchNames =  #`(

        (ceses . ,(ly:make-pitch -1 0 DOUBLE-FLAT))
        (cesfff . ,(ly:make-pitch -1 0 FLAT-Q-Q-Q))
        (cesff . ,(ly:make-pitch -1 0 FLAT-Q-Q))
        (cesf . ,(ly:make-pitch -1 0 FLAT-Q))
        (ces . ,(ly:make-pitch -1 0 FLAT))
        (cfffes . ,(ly:make-pitch -1 0 Q-Q-Q-FLAT))
        (cffes . ,(ly:make-pitch -1 0 Q-Q-FLAT))
        (cfes . ,(ly:make-pitch -1 0 Q-FLAT))
        (c . ,(ly:make-pitch -1 0 NATURAL))
        (csis . ,(ly:make-pitch -1 0 Q-SHARP))
        (cssis . ,(ly:make-pitch -1 0 Q-Q-SHARP))
        (csssis . ,(ly:make-pitch -1 0 Q-Q-Q-SHARP))
        (cis . ,(ly:make-pitch -1 0 SHARP))
        (ciss . ,(ly:make-pitch -1 0 SHARP-Q))
        (cisss . ,(ly:make-pitch -1 0 SHARP-Q-Q))
        (cissss . ,(ly:make-pitch -1 0 SHARP-Q-Q-Q))
        (cisis . ,(ly:make-pitch -1 0 DOUBLE-SHARP))

        (deses . ,(ly:make-pitch -1 1 DOUBLE-FLAT))
        (desfff . ,(ly:make-pitch -1 1 FLAT-Q-Q-Q))
        (desff . ,(ly:make-pitch -1 1 FLAT-Q-Q))
        (desf . ,(ly:make-pitch -1 1 FLAT-Q))
        (des . ,(ly:make-pitch -1 1 FLAT))
        (dfffes . ,(ly:make-pitch -1 1 Q-Q-Q-FLAT))
        (dffes . ,(ly:make-pitch -1 1 Q-Q-FLAT))
        (dfes . ,(ly:make-pitch -1 1 Q-FLAT))
        (d . ,(ly:make-pitch -1 1 NATURAL))
        (dsis . ,(ly:make-pitch -1 1 Q-SHARP))
        (dssis . ,(ly:make-pitch -1 1 Q-Q-SHARP))
        (dsssis . ,(ly:make-pitch -1 1 Q-Q-Q-SHARP))
        (dis . ,(ly:make-pitch -1 1 SHARP))
        (diss . ,(ly:make-pitch -1 1 SHARP-Q))
        (disss . ,(ly:make-pitch -1 1 SHARP-Q-Q))
        (dissss . ,(ly:make-pitch -1 1 SHARP-Q-Q-Q))
        (disis . ,(ly:make-pitch -1 1 DOUBLE-SHARP))

        (eeses . ,(ly:make-pitch -1 2 DOUBLE-FLAT))
        (eesfff . ,(ly:make-pitch -1 2 FLAT-Q-Q-Q))
        (eesff . ,(ly:make-pitch -1 2 FLAT-Q-Q))
        (eesf . ,(ly:make-pitch -1 2 FLAT-Q))
        (ees . ,(ly:make-pitch -1 2 FLAT))
        (efffes . ,(ly:make-pitch -1 2 Q-Q-Q-FLAT))
        (effes . ,(ly:make-pitch -1 2 Q-Q-FLAT))
        (efes . ,(ly:make-pitch -1 2 Q-FLAT))
        (e . ,(ly:make-pitch -1 2 NATURAL))
        (esis . ,(ly:make-pitch -1 2 Q-SHARP))
        (essis . ,(ly:make-pitch -1 2 Q-Q-SHARP))
        (esssis . ,(ly:make-pitch -1 2 Q-Q-Q-SHARP))
        (eis . ,(ly:make-pitch -1 2 SHARP))
        (eiss . ,(ly:make-pitch -1 2 SHARP-Q))
        (eisss . ,(ly:make-pitch -1 2 SHARP-Q-Q))
        (eissss . ,(ly:make-pitch -1 2 SHARP-Q-Q-Q))
        (eisis . ,(ly:make-pitch -1 2 DOUBLE-SHARP))

        (feses . ,(ly:make-pitch -1 3 DOUBLE-FLAT))
        (fesfff . ,(ly:make-pitch -1 3 FLAT-Q-Q-Q))
        (fesff . ,(ly:make-pitch -1 3 FLAT-Q-Q))
        (fesf . ,(ly:make-pitch -1 3 FLAT-Q))
        (fes . ,(ly:make-pitch -1 3 FLAT))
        (ffffes . ,(ly:make-pitch -1 3 Q-Q-Q-FLAT))
        (fffes . ,(ly:make-pitch -1 3 Q-Q-FLAT))
        (ffes . ,(ly:make-pitch -1 3 Q-FLAT))
        (f . ,(ly:make-pitch -1 3 NATURAL))
        (fsis . ,(ly:make-pitch -1 3 Q-SHARP))
        (fssis . ,(ly:make-pitch -1 3 Q-Q-SHARP))
        (fsssis . ,(ly:make-pitch -1 3 Q-Q-Q-SHARP))
        (fis . ,(ly:make-pitch -1 3 SHARP))
        (fiss . ,(ly:make-pitch -1 3 SHARP-Q))
        (fisss . ,(ly:make-pitch -1 3 SHARP-Q-Q))
        (fissss . ,(ly:make-pitch -1 3 SHARP-Q-Q-Q))
        (fisis . ,(ly:make-pitch -1 3 DOUBLE-SHARP))

        (geses . ,(ly:make-pitch -1 4 DOUBLE-FLAT))
        (gesfff . ,(ly:make-pitch -1 4 FLAT-Q-Q-Q))
        (gesff . ,(ly:make-pitch -1 4 FLAT-Q-Q))
        (gesf . ,(ly:make-pitch -1 4 FLAT-Q))
        (ges . ,(ly:make-pitch -1 4 FLAT))
        (gfffes . ,(ly:make-pitch -1 4 Q-Q-Q-FLAT))
        (gffes . ,(ly:make-pitch -1 4 Q-Q-FLAT))
        (gfes . ,(ly:make-pitch -1 4 Q-FLAT))
        (g . ,(ly:make-pitch -1 4 NATURAL))
        (gsis . ,(ly:make-pitch -1 4 Q-SHARP))
        (gssis . ,(ly:make-pitch -1 4 Q-Q-SHARP))
        (gsssis . ,(ly:make-pitch -1 4 Q-Q-Q-SHARP))
        (gis . ,(ly:make-pitch -1 4 SHARP))
        (giss . ,(ly:make-pitch -1 4 SHARP-Q))
        (gisss . ,(ly:make-pitch -1 4 SHARP-Q-Q))
        (gissss . ,(ly:make-pitch -1 4 SHARP-Q-Q-Q))
        (gisis . ,(ly:make-pitch -1 4 DOUBLE-SHARP))

        (aeses . ,(ly:make-pitch -1 5 DOUBLE-FLAT))
        (aesfff . ,(ly:make-pitch -1 5 FLAT-Q-Q-Q))
        (aesff . ,(ly:make-pitch -1 5 FLAT-Q-Q))
        (aesf . ,(ly:make-pitch -1 5 FLAT-Q))
        (aes . ,(ly:make-pitch -1 5 FLAT))
        (afffes . ,(ly:make-pitch -1 5 Q-Q-Q-FLAT))
        (affes . ,(ly:make-pitch -1 5 Q-Q-FLAT))
        (afes . ,(ly:make-pitch -1 5 Q-FLAT))
        (a . ,(ly:make-pitch -1 5 NATURAL))
        (asis . ,(ly:make-pitch -1 5 Q-SHARP))
        (assis . ,(ly:make-pitch -1 5 Q-Q-SHARP))
        (asssis . ,(ly:make-pitch -1 5 Q-Q-Q-SHARP))
        (ais . ,(ly:make-pitch -1 5 SHARP))
        (aiss . ,(ly:make-pitch -1 5 SHARP-Q))
        (aisss . ,(ly:make-pitch -1 5 SHARP-Q-Q))
        (aissss . ,(ly:make-pitch -1 5 SHARP-Q-Q-Q))
        (aisis . ,(ly:make-pitch -1 5 DOUBLE-SHARP))

        (beses . ,(ly:make-pitch -1 6 DOUBLE-FLAT))
        (besfff . ,(ly:make-pitch -1 6 FLAT-Q-Q-Q))
        (besff . ,(ly:make-pitch -1 6 FLAT-Q-Q))
        (besf . ,(ly:make-pitch -1 6 FLAT-Q))
        (bes . ,(ly:make-pitch -1 6 FLAT))
        (bfffes . ,(ly:make-pitch -1 6 Q-Q-Q-FLAT))
        (bffes . ,(ly:make-pitch -1 6 Q-Q-FLAT))
        (bfes . ,(ly:make-pitch -1 6 Q-FLAT))
        (b . ,(ly:make-pitch -1 6 NATURAL))
        (bsis . ,(ly:make-pitch -1 6 Q-SHARP))
        (bssis . ,(ly:make-pitch -1 6 Q-Q-SHARP))
        (bsssis . ,(ly:make-pitch -1 6 Q-Q-Q-SHARP))
        (bis . ,(ly:make-pitch -1 6 SHARP))
        (biss . ,(ly:make-pitch -1 6 SHARP-Q))
        (bisss . ,(ly:make-pitch -1 6 SHARP-Q-Q))
        (bissss . ,(ly:make-pitch -1 6 SHARP-Q-Q-Q))
        (bisis . ,(ly:make-pitch -1 6 DOUBLE-SHARP))

)


%% set pitch names.
pitchnames = \quartertonearrowPitchNames
#(ly:parser-set-note-names parser pitchnames)


quartertonearrowGlyphs = #`(
        (1 . "accidentals.doublesharp")
        (3499/4000 . "accidentals.sharp.slashslash.stemstemstem")
    (2999/4000 . "accidentals.sharp.slashslashslash.stemstem")
    (2499/4000 . "accidentals.sharp.arrowup")
        (1/2 . "accidentals.sharp")
    (1499/4000 . "accidentals.sharp.arrowdown")
    (999/4000 . "accidentals.sharp.slashslashslash.stem")
    (499/4000 . "accidentals.sharp.slashslash.stem")
        (0 . "accidentals.natural")
    (-499/4000 . "accidentals.mirroredflat")
        (-999/4000 . "accidentals.mirroredflat.flat")
        (-1499/4000 . "accidentals.flat.arrowup")
        (-1/2 . "accidentals.flat")
        (-2499/4000 . "accidentals.flat.arrowdown")
        (-2999/4000 . "accidentals.flat.slash")
        (-3499/4000 . "accidentals.flat.slashslash")
        (-1 . "accidentals.flatflat")
)


On 7/4/09 1:14 PM, "Mark Polesky" <markpolesky@...> wrote:

>
> Mike Solomon wrote:
>> Good question!
>> I am trying to write clarinet multiphonics.>
>> http://userpages.umbc.edu/~emrich/chapter6-5.html
>
> I see. Here's a temporary solution, which could be automated with
> some ingenuity. The value 1.65 seems to work below, but it's not
> the value I would have expected to work. I might play around a
> little more with this, because as it stands, this would be
> cumbersome if you have a lot of these. Are you writing just a few
> here and there? By the way, what do the up and down arrows mean,
> eighth-tones? Also, is there always just one quarter-note-head in
> the middle? I assume that there can be more than one.
>
> \relative  c' {
>   <c
>   \tweak #'duration-log #2 \tweak #'X-extent #'(0 . 1.65) cis'
>   g'>1
> }
>
>> THANK YOU very much for your help!
>
> Happy to help.
> - Mark
>
>
>      
>




_______________________________________________
lilypond-user mailing list
lilypond-user@...
http://lists.gnu.org/mailman/listinfo/lilypond-user

 « Return to Thread: Overriding NoteHead stencil in a chord produces unwanted X offset