[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Cello fingering indications
From: |
David Kastrup |
Subject: |
Re: Cello fingering indications |
Date: |
Thu, 27 Nov 2014 10:24:43 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux) |
MarcM <address@hidden> writes:
> This function apparently worked in version 2.14.
> I tried in 2.18 and the line is not printed so the change is not due to a
> recent commit.
>
> I just want to implement a simple function for the music directive "restez"
> (*) which is usually indicated with the text "restez" and a line that spans
> a list of notes.
>
> (*) restez [French]
> A directive to the performer of a stringed instrument to perform the
> indicated passage of a composition remaining on he same note, on the same
> string or in the same finger position.
> http://dictionary.onmusic.org/terms/2880-restez
The old code presents a few other challenges to convert-ly (it converts
anything containing ly:export to a version using $(...) instead of
#(...) and that goes wrong in this case), but it's essentially issue
2240 and would (after changing $ back to #), as stated previously, yield
to using event-chord-wrap! at the start of the music function.
At any rate, here is a "nice" version without such workarounds.
add-event seems to be a frequent enough use case to figure out a nice
global name for it and provide it in LilyPond proper.
\version "2.18.0"
stringNumberSpanner =
#(define-music-function (parser location StringNumber music)
(markup? ly:music?)
(define (add-event mus event)
(let ((prop (if (music-is-of-type? mus 'rhythmic-event)
'articulations 'elements)))
(set! (ly:music-property mus prop)
(append (ly:music-property mus prop) (list event)))))
(let ((elts (extract-typed-music music '(rhythmic-event event-chord))))
(if (pair? elts)
(begin
(add-event (first elts)
#{
\tweak style #'solid
\tweak font-size #-5
\tweak bound-details.left.stencil-align-dir-y #CENTER
\tweak bound-details.left.text
\markup { \circle \number $StringNumber }
\startTextSpan
#})
(add-event (last elts) #{ \stopTextSpan #}))))
music)
\relative c {
\clef "treble_8"
\textSpannerDown
\stringNumberSpanner "5" { a8 b c d e f }
\stringNumberSpanner "4" { g a bes4 a g2 }
}
--
David Kastrup