[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Incipits / spacing
From: |
Stefan Waler |
Subject: |
Incipits / spacing |
Date: |
Tue, 22 Feb 2011 17:40:04 +0100 |
User-agent: |
Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.2.13) Gecko/20101207 Thunderbird/3.1.7 |
Hi all,
about two years ago (I don't remember exactly), there was a discussion
where I was involved and the outcome of which was a new approach for
incipits in ancient music. To be clear, I paste the snippet I'm
referring to at the bottom of this message.
At this time, nobody was able to bring a solution for a little flaw in
this snippet, which was that the timing automatism between the staffs
cannot be turned off and the notes/rests are placed at a position that
is based on their duration.
This is kind of unfavourable, because it leads to a different picture
than you would expect in mensural notation where voices are completely
independent.
Thus, I would like to ask again if there is anybody has ideas, maybe
based on newer lilypond version?
Thanks in advance!
Stefan
incipit =
#(define-music-function (parser location incipit-music) (ly:music?)
#{
\once \override Staff.InstrumentName #'self-alignment-X = #RIGHT
\once \override Staff.InstrumentName #'self-alignment-Y = #UP
\once \override Staff.InstrumentName #'Y-offset = #4
\once \override Staff.InstrumentName #'padding = #0.3
\once \override Staff.InstrumentName #'stencil =
#(lambda (grob)
(let* ((instrument-name (ly:grob-property grob 'long-text))
(layout (ly:output-def-clone (ly:grob-layout grob)))
(music (make-music 'SequentialMusic
'elements (list (make-music 'ContextSpeccedMusic
'context-type 'MensuralStaff
'element (make-music 'PropertySet
'symbol 'instrumentName
'value instrument-name))
$incipit-music)))
(score (ly:make-score music))
(mm (ly:output-def-lookup layout 'mm))
(indent (ly:output-def-lookup layout 'indent))
(width (ly:output-def-lookup layout 'incipit-width))
(incipit-width (if (number? width)
(* width mm)
(* indent 0.5))))
(ly:output-def-set-variable! layout 'indent (- indent
incipit-width))
(ly:output-def-set-variable! layout 'line-width indent)
(ly:output-def-set-variable! layout 'ragged-right #f)
(ly:output-def-set-variable! layout 'ragged-last #f)
(ly:output-def-set-variable! layout 'system-count 1)
(ly:score-add-output-def! score layout)
(set! (ly:grob-property grob 'long-text)
(markup #:score score))
(ly:system-start-text::print grob)))
#})
- Incipits / spacing,
Stefan Waler <=