2016-12-21 16:30 GMT+01:00 Br. Samuel Springuel <rpspring...@gmail.com>: > I'm typesetting a bunch of chant in modern notation (i.e. stemless without > timing, etc.). These pieces are being pulled from different sources which > have different conventions for a hollow note. In some cases it's a stemless > half-note, in others a whole note, and in still others a breve (with either > one or two lines). Now, while I'm going to want a consistent look for these > in the final project, I don't yet know which convention we're going to > settle on and thus need to be able to change things rather easily. > > To that end I developed a function which takes a single note as its argument > and applies a specific duration to it. By defining this function in the > project format file (which is included in every score in the project) and > using the function to indicate the hollow notes instead of explicit > durations, I can change the look of all such notes simply by changing the > duration in the function. > > However, I've run into a problem in that some of these notes have markup > attached to them and the function doesn't like that. It wants a plain > pitch. Is there a way that I can modify the function so that it doesn't > revolt when markup is attached to the note it is supposed to apply to or > insert the markup in the same place so that it isn't attached to the note? > > Snippet follows (note, doesn't compile in current state because of markup): > > \version "2.19.53" > \language "english" > > hold = #(define-music-function (note) (ly:pitch?) > #{ > $note 2 % or 1 or \breve > #}) > > global = { \key c \major \omit Stem \set Score.timing = ##f } > > music = { \hold b-flat'^\markup {Cantor} a' g' f' \bar "|" } > > \new Staff \with { > \remove "Time_signature_engraver" } { > \new Voice = "mel" {\voiceOne \global \music} > } > > --
\version "2.19.53" \language "english" hold = #(define-music-function (note) (ly:music?) #{ $note \breve #}) global = { \key c \major \omit Stem \set Score.timing = ##f } music = { \hold b-flat'^\markup {Cantor} a' g' f' \bar "|" } \new Staff \with { \remove "Time_signature_engraver" } { \new Voice = "mel" {\voiceOne \global \music} } Works here, at least for he given example. Cheers, Harm _______________________________________________ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user