Some time ago we had this discussion that \overrides are not quoted from the
original music when you use \cueDuring or \quoteDuring.
Unfortunately, this also means that accacciaturas will be quoted wrong, since
the slash through the note will not be quoted (so singers will usually read
the quoted grace as taking half the duration of the following note instead of
being as short as possible).
And the fact that \set commands are not quoted means that the beaming of vocal
cue voices can be wrong, since the auto-beaming is not turned off (see also the
attached file).
I tried debugging this issue, by looking at ly:make-event-class (which is
called by internal_in_event_class, which is called in the Quote_iterator), but
it seems that e.g. SetProperty is also a StreamEvent, so setting
quotedEventTypes=#'(StreamEvent) should quote
\set, too...
So, can anyone help me figure out which music classes to allow to also quote
\override and \set commands? In particular, the music expression look like:
(make-music 'OverrideProperty ...)
(make-music 'RevertProperty ...)
(make-music 'PropertySet ...)
(make-music 'PropertyUnset ...)
In the expression tree, they are inside a ContextSpeccedMusic expression:
(make-music 'ContextSpeccedMusic
'context-type 'Bottom
'element (list ...))
However, the problem has nothing to do with the ContextSpeccedMusic, since
other events inside ContextSpeccedMusic are quoted.
I tried adding various classes to the quotedEventTypes list, e.g. override-
property-event general-music override-property OverrideProperty property-set
PropertySet, but nothing seems to have any effect. Any idea how to make
lilypond also quote overrides and \set commands?
Thanks,
Reinhold
--
------------------------------------------------------------------
Reinhold Kainhofer, [email protected], http://reinhold.kainhofer.com/
* Financial & Actuarial Math., Vienna Univ. of Technology, Austria
* http://www.fam.tuwien.ac.at/, DVR: 0005886
* LilyPond, Music typesetting, http://www.lilypond.org
% \displayMusic
musI = \relative c' {
c4
\once \override Staff.Stem #'thickness = #8.0 d
\set autoBeaming = ##f e8 e \set fontSize = #6 f \unset fontSize f |
\acciaccatura f8 g4 a b c |
c1 }
\addQuote "M1" \musI
% Basically the same as above, in Scheme, but an additional ContextSpeccedMusic
% wrapped around one note (to check whether ContextSpeccedMusic is quoted) and
% one ContextSpeccedMusic removed from a set command:
musIa = #(make-music
'RelativeOctaveMusic
'element
(make-music
'SequentialMusic
'elements
(list (make-music
'EventChord
'elements
(list (make-music
'NoteEvent
'duration (ly:make-duration 2 0 1 1)
'pitch (ly:make-pitch 0 0 0))))
(make-music
'ContextSpeccedMusic
'context-type 'Staff
'element (make-music
'OverrideProperty
'pop-first #t
'grob-property-path (list (quote thickness))
'grob-value 8.0
'once #t
'symbol 'Stem))
(make-music
'ContextSpeccedMusic
'context-type 'Bottom
'element (make-music
; (make-music
'EventChord
'elements (list (make-music
'NoteEvent
'duration (ly:make-duration 2 0 1 1)
'pitch (ly:make-pitch 0 1 0)))))
(make-music
'ContextSpeccedMusic
'context-type 'Bottom
'element (make-music
'PropertySet
'value #f
'symbol 'autoBeaming))
(make-music
'EventChord
'elements (list (make-music
'NoteEvent
'duration (ly:make-duration 3 0 1 1)
'pitch (ly:make-pitch 0 2 0))))
(make-music
'EventChord
'elements (list (make-music
'NoteEvent
'duration (ly:make-duration 3 0 1 1)
'pitch (ly:make-pitch 0 2 0))))
(make-music
'PropertySet
'value 6
'symbol 'fontSize)
(make-music
'EventChord
'elements (list (make-music
'NoteEvent
'duration (ly:make-duration 3 0 1 1)
'pitch (ly:make-pitch 0 3 0))))
(make-music
'ContextSpeccedMusic
'context-type 'Bottom
'element (make-music
'PropertyUnset
'symbol 'fontSize))
(make-music
'EventChord
'elements (list (make-music
'NoteEvent
'duration (ly:make-duration 3 0 1 1)
'pitch (ly:make-pitch 0 3 0))))
(make-music (quote BarCheck))
(make-music
'GraceMusic
'element (make-music
'SequentialMusic
'elements (list (make-music
'SequentialMusic
'elements (list (make-music
'EventChord
'elements (list (make-music
'SkipEvent
'duration (ly:make-duration 0 0 0 1))
(make-music
'SlurEvent
'span-direction -1)))
(make-music
'ContextSpeccedMusic
'context-type 'Bottom
'element (make-music
'OverrideProperty
'pop-first #t
'grob-property-path (list (quote stroke-style))
'grob-value "grace"
'symbol 'Stem))))
(make-music
'EventChord
'elements
(list (make-music
'NoteEvent
'duration (ly:make-duration 3 0 1 1)
'pitch (ly:make-pitch 0 3 0))))
(make-music
'SequentialMusic
'elements
(list (make-music
'ContextSpeccedMusic
'context-type 'Bottom
'element (make-music
'RevertProperty
'grob-property-path (list (quote stroke-style))
'symbol 'Stem))
(make-music
'EventChord
'elements (list (make-music
'SkipEvent
'duration (ly:make-duration 0 0 0 1))
(make-music
'SlurEvent
'span-direction 1))))))))
(make-music
'EventChord
'elements (list (make-music
'NoteEvent
'duration (ly:make-duration 2 0 1 1)
'pitch (ly:make-pitch 0 4 0))))
(make-music
'EventChord
'elements (list (make-music
'NoteEvent
'duration (ly:make-duration 2 0 1 1)
'pitch (ly:make-pitch 0 5 0))))
(make-music
'EventChord
'elements (list (make-music
'NoteEvent
'duration (ly:make-duration 2 0 1 1)
'pitch (ly:make-pitch 0 6 0))))
(make-music
'EventChord
'elements (list (make-music
'NoteEvent
'duration (ly:make-duration 2 0 1 1)
'pitch (ly:make-pitch 1 0 0))))
(make-music (quote BarCheck))
(make-music
'EventChord
'elements (list (make-music
'NoteEvent
'duration (ly:make-duration 0 0 1 1)
'pitch (ly:make-pitch 1 0 0)))))))
\addQuote "M1a" \musIa
musII = \relative c' { a4 \cueDuring #"M1a" #DOWN {r4 r2 |R1} | e'1 }
\new Score \with { quotedEventTypes = #'(general-music override-property-event general-music StreamEvent override-property OverrideProperty property-set PropertySet) }
{ <<
\new Staff \musIa
\new Staff \musII
>> }_______________________________________________
lilypond-devel mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/lilypond-devel