X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=input%2Fregression%2Fincipit.ly;h=a5545558e8611f9d0bbc8a109663fe61fe7cebd4;hb=80e4d58800a5722ba8dd6940d23573e740a159cc;hp=f936ba779cf99e2cff8e37a6ee8a9a72d4416870;hpb=20b8c1519bbba8728457aa98e59993837bedfb04;p=lilypond.git diff --git a/input/regression/incipit.ly b/input/regression/incipit.ly index f936ba779c..a5545558e8 100644 --- a/input/regression/incipit.ly +++ b/input/regression/incipit.ly @@ -1,56 +1,60 @@ -\header { - - texidoc = "Incipit can be printed using an InstrumentName grob." +\version "2.17.10" +\header { + texidoc = "Incipits can be printed using an @code{InstrumentName} +grob." } -\version "2.11.51" - -%% to avoid warnings: -#(set-object-property! 'music 'backend-type? ly:music?) -#(set-object-property! 'music 'backend-doc "Incipit music") +%% to prevent warnings/programming errors: +#(begin + (set-object-property! 'music 'backend-type? ly:music?) + (set-object-property! 'music 'backend-doc "Incipit music") + (ly:add-interface 'incipit-interface "An incipit." '(music)) + (let* ((instrument-def (assoc 'InstrumentName all-grob-descriptions)) + (meta-def (assoc 'meta (cdr instrument-def))) + (interfaces-def (assoc 'interfaces (cdr meta-def))) + (interfaces (cdr interfaces-def))) + (set-cdr! interfaces-def (cons 'incipit-interface interfaces)))) \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 - 'element (make-music 'PropertySet - 'symbol 'instrumentName - 'value instrument-name)) - (ly:grob-property grob 'music)))) - (score (ly:make-score music)) - (mm (ly:output-def-lookup layout 'mm)) - (indent (ly:output-def-lookup layout 'indent)) - (incipit-width (ly:output-def-lookup layout 'incipit-width)) - (scaled-incipit-width (if (number? incipit-width) - (* incipit-width mm) - (* indent 0.5)))) - (ly:output-def-set-variable! layout 'indent (- indent scaled-incipit-width)) - (ly:output-def-set-variable! layout 'line-width indent) - (ly:output-def-set-variable! layout 'ragged-right #f) - (ly:score-add-output-def! score layout) - (set! (ly:grob-property grob 'long-text) - (markup #:score score)) - (ly:system-start-text::print grob))) + \override Staff.InstrumentName.music = ##{ \clef "petrucci-c1" c'4 d' e' f' #} + \override Staff.InstrumentName.self-alignment-X = #RIGHT + \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-sequential-music + (list (context-spec-music + (make-sequential-music + (list (make-property-set + 'instrumentName instrument-name) + (make-grob-property-set + 'VerticalAxisGroup + 'Y-extent '(-4 . 4)))) + 'MensuralStaff) + (ly:grob-property grob 'music)))) + (score (ly:make-score music)) + (indent (ly:output-def-lookup layout 'indent)) + (incipit-width (ly:output-def-lookup layout 'incipit-width + (* 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:score-add-output-def! score layout) + (set! (ly:grob-property grob 'long-text) + (markup #:score score)) + (system-start-text::print grob))) %% the instrument name definition is separated: - \set Staff.instrumentName = \markup Instrument - c'4 d' e' f' g'1 + \set Staff.instrumentName = #"Instrument" + c'4 d' e' f' + g'1 } \layout { - ragged-right = ##t indent = 5\cm - incipit-width = 3 \cm + incipit-width = 3\cm } -} \ No newline at end of file +}