From 105bc22bbb1887c9be2c5f6288a4f9249159f250 Mon Sep 17 00:00:00 2001 From: David Kastrup Date: Wed, 21 Aug 2013 04:09:29 +0200 Subject: [PATCH] Issue 3489: Let \cue... use quoted-context-type of CueVoice consistently Previously Voice was used and this relied on a a CueVoice purportedly being created by cue-substitute itself and providing a Voice alias. There is a regtest input/regression/quote-tuplet-end.ly which relied on an explicit Voice = "cue" serving as a substite catch for the cue notes, effectively turning \cueDuring into \quoteDuring. This kind of usage is rather bizarre, and since it diverts the \voiceOne/\voiceTwo settings for the cue voice into a CueVoice context anyway (which is otherwise empty), the cue voice is still missing proper directional information. This was not worth supporting. Regularizing the usage in this manner will reliably stop \quoteDuring from introducing surprise CueVoice contexts. --- ly/music-functions-init.ly | 6 +++--- scm/define-music-display-methods.scm | 2 +- scm/music-functions.scm | 18 +++++++++--------- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/ly/music-functions-init.ly b/ly/music-functions-init.ly index 7e9feba98f..3f88b07252 100644 --- a/ly/music-functions-init.ly +++ b/ly/music-functions-init.ly @@ -307,7 +307,7 @@ cueDuring = in a CueVoice oriented by @var{dir}.") (make-music 'QuoteMusic 'element main-music - 'quoted-context-type 'Voice + 'quoted-context-type 'CueVoice 'quoted-context-id "cue" 'quoted-music-name what 'quoted-voice-direction dir)) @@ -319,7 +319,7 @@ cueDuringWithClef = in a CueVoice oriented by @var{dir}.") (make-music 'QuoteMusic 'element main-music - 'quoted-context-type 'Voice + 'quoted-context-type 'CueVoice 'quoted-context-id "cue" 'quoted-music-name what 'quoted-music-clef clef @@ -1364,7 +1364,7 @@ as a first or second voice.") (make-music 'QuoteMusic 'element main-music - 'quoted-context-type 'Voice + 'quoted-context-type 'CueVoice 'quoted-context-id "cue" 'quoted-music-name what 'quoted-voice-direction dir diff --git a/scm/define-music-display-methods.scm b/scm/define-music-display-methods.scm index bafa57200d..fd759d52d1 100644 --- a/scm/define-music-display-methods.scm +++ b/scm/define-music-display-methods.scm @@ -1054,7 +1054,7 @@ Otherwise, return #f." quoted-voice-direction ?quoted-voice-direction quoted-music-name ?quoted-music-name quoted-context-id "cue" - quoted-context-type 'Voice + quoted-context-type 'CueVoice element ?music)) (format #f "\\cueDuring #~s #~a ~a" ?quoted-music-name diff --git a/scm/music-functions.scm b/scm/music-functions.scm index ff2bcb7ec7..617e9e90f0 100644 --- a/scm/music-functions.scm +++ b/scm/music-functions.scm @@ -1095,6 +1095,8 @@ set to the @code{location} parameter." (clef (ly:music-property quote-music 'quoted-music-clef #f)) (main-voice (case dir ((1) 1) ((-1) 0) (else #f))) (cue-voice (and main-voice (- 1 main-voice))) + (cue-type (ly:music-property quote-music 'quoted-context-type #f)) + (cue-id (ly:music-property quote-music 'quoted-context-id)) (main-music (ly:music-property quote-music 'element)) (return-value quote-music)) @@ -1116,17 +1118,15 @@ set to the @code{location} parameter." (delq! #f (list (and clef (make-cue-clef-set clef)) - - ;; Need to establish CueVoice context even in #CENTER case - (context-spec-music - (if cue-voice - (make-voice-props-override cue-voice) - (make-music 'Music)) - 'CueVoice "cue") + (and cue-type cue-voice + (context-spec-music + (make-voice-props-override cue-voice) + cue-type cue-id)) quote-music - (and cue-voice + (and cue-type cue-voice (context-spec-music - (make-voice-props-revert) 'CueVoice "cue")) + (make-voice-props-revert) + cue-type cue-id)) (and clef (make-cue-clef-unset)))))) quote-music)) -- 2.39.2