[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Incipits
From: |
Nicolas Sceaux |
Subject: |
Re: Incipits |
Date: |
Mon, 11 Feb 2008 22:17:25 +0100 |
Le 11 févr. 08 à 02:07, Han-Wen Nienhuys a écrit :
[...]
- If I'm reading this correctly, this is all a grand hack to add a
little staff to an instrument name. I don't see the essential
difference between this and
\set instrumentName = \markup { \score { .. } the-real-name }
except that this is longer, more error prone and less flexible. Again,
what problem are you trying to solve?
The problem I was trying to solve is to separate the definition
of the instrument name, from the one of the incipit. They are not
the same thing, and should be entered separetely. It's well enough
to explicitely write
\set instrumentName = \markup { \score { .. } the-real-name }
when you have a single piece to typeset. It really sucks when you
have hundreds. (I have more than 600 pieces that would use this
incipit thing.)
...
Actually, if there were ly:score-add-output-def! (or an optional
output-def argument to ly:make-score) and ly:output-def-set-variable!
functions, all could be done entirely from the outside.
Example:
\score {
\new Staff {
%% All this would be shortcuted by an appropriate music function:
\override Staff.InstrumentName #'music = ##{ \clef "petrucci-
c1" c'4 d' e' f' #}
\override Staff.InstrumentName #'self-alignment-X = #RIGHT
\override Staff.InstrumentName #'self-alignment-Y = #UP
\override Staff.InstrumentName #'Y-offset = #4
\override Staff.InstrumentName #'padding = #0
\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
;;'property-operations
'((remove "Time_signature_engraver"))
'element (make-music
'PropertySet
'symbol
'instrumentName
'value instrument-
name))
(ly:grob-property grob 'music)))))
(ly:output-def-set-variable! layout 'indent 0)
(ly:output-def-set-variable! layout 'line-width 20)
(ly:output-def-set-variable! layout 'ragged-right #f)
(set! (ly:grob-property grob 'long-text)
(markup #:score (ly:make-score music layout)))
(ly:system-start-text::print grob)))
%% the instrument name definition is separated:
\set Staff.instrumentName = "Violon"
c'4 d' e' f' g'1
}
\layout {
ragged-right = ##t
indent = 5\cm
}
}
==>
That would address the points you raised in your answer.
Are you ok with this (much less enormous) patch?
nicolas
incipit-helper-functions.patch
Description: Binary data
- Re: Incipits, (continued)
- Re: Incipits, Nicolas Sceaux, 2008/02/08
- Re: Incipits, Nicolas Sceaux, 2008/02/09
- Re: Incipits, Han-Wen Nienhuys, 2008/02/10
- Re: Incipits, Karl Hammar, 2008/02/11
- Re: Incipits, Juergen Reuter, 2008/02/11
- Re: Incipits, Robert Memering, 2008/02/11
- Re: Incipits, Till Rettig, 2008/02/11
- Re: Incipits, Juergen Reuter, 2008/02/11
- Re: Incipits, Till Rettig, 2008/02/11
- Re: Incipits, Karl Hammar, 2008/02/11
- Re: Incipits,
Nicolas Sceaux <=
- Re: Incipits, Han-Wen Nienhuys, 2008/02/11
- Re: [patch] first-clef property, Han-Wen Nienhuys, 2008/02/06
- Re: [patch] first-clef property, Nicolas Sceaux, 2008/02/07
- Re: [patch] first-clef property, Till Rettig, 2008/02/07
Re: [patch] first-clef property, Reinhold Kainhofer, 2008/02/02