]> git.donarmstrong.com Git - lilypond.git/commitdiff
Convert \new Staff ... \addlyrics into \new Staff \new Voice ... \addlyrics
authorDavid Kastrup <dak@gnu.org>
Mon, 8 Sep 2014 15:24:37 +0000 (17:24 +0200)
committerDavid Kastrup <dak@gnu.org>
Sun, 14 Sep 2014 05:44:55 +0000 (07:44 +0200)
scm/ly-syntax-constructors.scm

index 66f34cfceb7c8819659ed0dfd3f68effb1c86d71..68bfb1f9f163361ada22655459bd303ea0f96395 100644 (file)
@@ -253,11 +253,20 @@ into a @code{MultiMeasureTextEvent}."
                          (get-next-unique-voice-name)))
          (voice (if (string? existing-voice-name)
                     music
-                    (make-music 'ContextSpeccedMusic
-                                'element music
-                                'context-type 'Voice
-                                'context-id voice-name
-                                'origin (ly:music-property music 'origin))))
+                    (if (eq? (ly:music-property music 'name) 'ContextSpeccedMusic)
+                        (begin
+                          (set! (ly:music-property music 'element)
+                                (make-music 'ContextSpeccedMusic
+                                            'element (ly:music-property music 'element)
+                                            'context-type 'Voice
+                                            'context-id voice-name
+                                            'origin (ly:music-property music 'origin)))
+                          music)
+                        (make-music 'ContextSpeccedMusic
+                                    'element music
+                                    'context-type 'Voice
+                                    'context-id voice-name
+                                    'origin (ly:music-property music 'origin)))))
          (lyricstos (map (lambda (mus)
                            (let* ((loc (ly:music-property mus 'origin))
                                   (lyr (lyric-combine-music voice-name mus loc)))