Hello,I've got a problem: I'm typesetting a Brahms lied where some melismata are only for one stanza and not for the other. Now look at the following example (output attached):
\version "2.19.3"
<< \new Staff <<
\new Voice = "one" { \voiceOne c'4 c' c'8 c' c'4 }
\new Voice = "two" { \voiceTwo s4 s c' s }
>>
\new Lyrics \lyricsto "one" {
foo \set associatedVoice = "two"
foo \set associatedVoice = "one"
bar
bar
}
>>
The associated voice has to be set one syllable early, which I did, only
the lyrics "come back" to voice "one" one note early: it should be for
the last quaver and not for the second crotchet. It seems to me that the
roots of this problem lie very deep. An optimal fix would of course be
to make the effect of \set associatedVoice enter immediately rather than
one syllable later, but this is probably far away.
Can anyone think of a workaround?In case someone might ask why this is necessary, I attach what I already have of the entire lied also. The \makeOctaves function is from LSR 445 <http://lsr.di.unimi.it/LSR/Snippet?id=445> and I added it to scm/music-functions.scm or a similar one in order to always have it at hand.
Best regards, Simon
associatedVoice problem.pdf
Description: Adobe PDF document
\version "2.19.3"
\language "deutsch"
#(set-global-staff-size 18)
%{ \satzspiegel definiert das Seiten-
verhältnis des Satzspiegels
(Zeilenlänge:Satzspiegelhöhe).
% topMarginFactor ist das Verhältnis
oberer Rand:Papierhöhe.
% Es wird so berechnet, dass:
%%% die oberen Ecken des Satz-
spiegels auf den Diagonalen
gedachter Doppelseiten
%%% und die unteren Ecken auf
den Diagonalen der Einzelseite liegen.
% Daraus folgt bei DIN-Papier-
formaten, dass das Satzspiegelseiten-
verhältnis Zeilenlänge:Satzspiegel-
höhe gröÃer als 1:1,414⦠(Wurzel
aus 2) sein muss, und zwar je breiter
die Seitenränder, desto mehr. %}
satzspiegel = #'(2 . 3)
% Standard 2/3
% Varianten: kleiner sind 5/8 und 3/5
topMarginFactor = #( /
(- (cdr satzspiegel)
(* (car satzspiegel) (sqrt 2)))
(- (* 4 (cdr satzspiegel))
(* 3 (car satzspiegel) (sqrt 2))) )
\paper {
#(set-paper-size "a4")
two-sided = ##f
top-margin = #(*
paper-height
topMarginFactor)
% In den folgenden Verhältnissen
% steckt wohl die Qualität
% dieser Konstruktionsweiseâ¦
bottom-margin = #(* top-margin 2)
left-margin = #(* top-margin (sqrt 2))
right-margin = #(* top-margin (sqrt 2))
fonts = #(make-pango-font-tree
"Linux Libertine O"
"Linux Biolinum O"
"Ubuntu Mono"
(/ (* staff-height pt) 2.5))
}
\header {
title = "Es wohnet ein Fiedler"
composer = "Johannes Brahms (1833â1897)"
piece = "Original in a"
opus = "WoO 33, Nr. 36"
}
\layout {
\context {
\Score
\remove "Bar_number_engraver"
}
\context {
\Voice
\override TextScript.whiteout = ##t
\override TextScript.layer = 5
\consists "Melody_engraver"
\override Stem #'neutral-direction = #'()
}
}
ru = #(define-music-function
(parser location num mus)
(number? ly:music?)
#{ \repeat unfold $num $mus #} )
leftLyr = \once\override LyricText.self-alignment-X = #LEFT
diff = #(define-music-function
(parser location mus1 mus2)
(ly:music? ly:music?)
#{ << { \voiceOne $mus1 \oneVoice }
\context Voice = "aux" { \voiceTwo $mus2 } >> #} )
alt = #(define-music-function
(parser location lyr)
(ly:music?)
#{ \set associatedVoice = "aux"
$lyr
\set associatedVoice = "voice" #} )
global = {
\key c \major
\time 4/4
\partial 4
\tempo "Lebhaft, doch nicht zu rasch"
}
voice = \transpose a fis \relative c'' {
\global
\autoBeamOff
\repeat volta 2 {
e,4
a gis8 gis a4 h8 h
c4 h8 a h4 r8 e,
a4 gis8 gis a4 h8 h
c4 \diff { h8[ a] } { h8 a } h4 e,8 g
c4 \diff { c8 c } { c4 } g4 r8 e'
e[ d] \diff { d[ c] } { d c } h4 r8 h |
c4 \diff { h8[ a] } { h a } gis4 r8 e |
\diff { a gis a h c[ h] a } { a[ gis] a[ h] c[ h a] } d |
c8[ h] a gis }
\alternative {
{ a4 r | r2 r4 }
{ a4 r } }
R1 r2 r4 \bar ".|:-||"
%\pageBreak
}
auxVoice = \relative {
\autoBeamOff
\repeat volta 2 { s4 s1*8 s2 }
\alternative { { s4*5 } { s2 } }
s4*7
% st. 3+4
%\repeat volta 2 { s4 s1*9 }
%\alternative { { s4*3 } { s4*3 } }
}
verseOne = \lyricmode {
\set stanza = "1."
Es woh -- net ein Fied -- ler zu Frank -- furt am Main,
der keh -- ret von lus -- ti -- ger Ze -- che heim,
und er trat auf den Markt,
was schaut er dort,
was schaut er dort?
Der schö -- nen Frau -- en schmaus -- ten gar viel an dem Ort.
\skip 1
}
verseTwo = \lyricmode {
\set stanza = "2."
Du buck -- lich -- ter Fied -- ler, nun fied -- le uns auf,
wir wol -- len dir zah -- len des \alt { Loh -- nes } voll -- auf!
Ei -- nen \alt { fei -- } nen Tanz,
\alt { be -- hen -- de } ge -- geigt,
be -- \alt { hen -- de } ge -- geigt,
Wal -- pur -- gis Nacht __ wir heu -- er ge -- \skip 1 feirât.
}
right = \transpose a fis \relative c'' {
\global
\dynamicDown
\clef alto
\repeat volta 2 {
e,4-.
<< { r8 a r gis r a r h
r c r a r gis4.
r8 a r gis r a r h
r c r a r gis r c
r g4.~ g4 r8 e'
r g, r c r h4.
r8 e, r a r gis4. }
{ s8 e s e s e s f
s a s e s e4.
s8 e s e s e s f
s a s e s e s e
s e4.~ e4 s8 c'
s e, s g s g4.
s8 c, s e s e4. }
{ s8 c s h s c s d
s e s c s h4.
s8 c s h s c s d
s e s c s h s c
s c4.~ c4 s8 e
s g, s c s d4.
s8 e, s a s h4. }
>>
<d a'>4. ( <f h>8) << { c'4( a8) } \\ { e4. } >> <f d a>8-. |
<e c a>-. r <gis e d>-. r
}
\alternative {
{ <a e c>4 \clef treble r8 <a' f a,>-.
<e c a e>4-. <gis, e>-. r }
{ <a e c>8-. r <e' c~>4^( }
}
<fis c>4) <g h,>2-> <f d a>4 |
<e~ a,>2->_( <e gis,>4)
}
dyn = \relative {
\repeat volta 2 {
s4\mf
s1*3
s2. s1\f
s\p s s4
s1\f s2 }
\alternative {
{ s4. s8\f | s2. }
{ s4 s-\markup { \dynamic f \italic { ben marcato } } }
}
s4*7
% stanzas 3+4
}
left = \transpose a fis \relative c' {
\global
\repeat volta 2 {
\ottava #-1
\set Staff.ottavation = #"ad lib. col 8vb"
e,,4-.
a,-. e'-. a-. d,-.
a-. c-. e2
a,4-. e'-. a-. d,-.
a-. c-. e-. \ottava #0 <c' g'>-. ->
<c, g'>2.-> <c' g'>4
\makeOctaves #-1 { c-. e-. g2
a,4-. c-. e2 }
<< { a2 a4. } \\ { f4.( d8) a4( c8) } >>
\makeOctaves #-1 { h8-. |
e-. r e,-. r }
}
\alternative {
{ <a a,>4 r8 <d d,>-. |
<e e,>4-. <e h' d> r }
{ <a, a,>8-. r \clef alto <e''' a,>4-> }
}
<a, d,>-> <d, g,>2-> <a' d,>4-> |
<e h e,> \clef bass e,,2
}
\score {
<<
\new Staff <<
\new Voice = "voice" \voice
\new Voice = "aux" \auxVoice
>>
\new Lyrics \lyricsto "voice" \verseOne
\new Lyrics \lyricsto "voice" \verseTwo
\new PianoStaff <<
\new Staff = "right" \right
\new Dynamics \dyn
\new Staff = "left" { \clef bass \left }
>>
>>
\layout { }
}
_______________________________________________ lilypond-user mailing list [email protected] https://lists.gnu.org/mailman/listinfo/lilypond-user
