]> git.donarmstrong.com Git - lilypond.git/commitdiff
Merge branch 'translation' into staging
authorFrancisco Vila <francisco.vila@hispalinux.es>
Wed, 9 May 2012 15:27:05 +0000 (17:27 +0200)
committerFrancisco Vila <francisco.vila@hispalinux.es>
Wed, 9 May 2012 15:27:05 +0000 (17:27 +0200)
Documentation/contributor/administration.itexi
Documentation/contributor/issues.itexi
Documentation/notation/rhythms.itely
Documentation/web/server/tweets.xml
lily/include/engraver-group.hh
lily/include/global-context.hh
lily/include/performer-group.hh
ly/performer-init.ly
scm/define-music-display-methods.scm
scm/music-functions.scm
stepmake/aclocal.m4

index aeb0ebfc23dd7d36c4a5c6fde5c520a2e63a5e1a..21fb76d2b7a555563cb5c5e23e3b420ebf2a8d98 100644 (file)
@@ -91,7 +91,7 @@ Bug Meister: trains new Bug Squad volunteers, organizes who works
 on which part of their job, checks to make sure that everything is
 running smoothly, and has final say on our policy for Issues.
 
-Currently: Phil
+Currently: Colin H
 
 @item
 Doc Meister: trains new doc editors/writers, organizes who works
index 19509f1e52d03584505ea565cfdbceeddef81001..7bea16493755889276220f35dc2aa15b7eb4586e 100644 (file)
@@ -186,13 +186,13 @@ the currently-active Bug Squad member(s) can handle the message.
 @subsubheading Daily schedule
 
 @example
-Monday:    Ralph
+Monday:    Colin H
 Tuesday:   Eluze
 Wednesday: Marek
-Thursday:  Colin Hall (disambiguation here)
+Thursday:  Ralph
 Friday:    Marek
-Saturday:  James
-Sunday:    Phil
+Saturday:  Mark
+Sunday:    Colin H
 @end example
 
 
index 680e96c4fdeb78cc58dfb216915a8b60c463eab1..e223bab4124b6d54cedca6e31056b37e6c6a3521 100644 (file)
@@ -1401,21 +1401,35 @@ r8 e,8 | a4 c8 b[ c b] |
 @node Unmetered music
 @unnumberedsubsubsec Unmetered music
 
-@cindex bar lines, turning off
-@cindex bar numbering, turning off
 @cindex cadenza
+@cindex cadenza, beams
+@cindex cadenza, accidentals
+@cindex cadenza, bar lines
+@cindex cadenza, bar numbers
 @cindex unmetered music
+@cindex unmetered music, beams
+@cindex unmetered music, accidentals
+@cindex unmetered music, bar lines
+@cindex unmetered music, bar numbers
+@cindex accidentals, cadenzas
+@cindex accidentals, unmetered music
+@cindex bar lines, cadenzas
+@cindex bar lines, unmetered music
+@cindex bar numbers, cadenzas
+@cindex bar numbers, unmetered music
+@cindex beams, cadenzas
+@cindex beams, unmetered music
 
 @funindex \cadenzaOn
 @funindex cadenzaOn
 @funindex \cadenzaOff
 @funindex cadenzaOff
 
-Bar lines and bar numbers are calculated automatically.  For
-unmetered music (some cadenzas, for example), this is not desirable.
-To turn off automatic calculation of bar lines and bar numbers,
-use the command @code{\cadenzaOn}, and use @code{\cadenzaOff}
-to turn them on again.
+In metered music bar lines are inserted and bar numbers are calculated
+automatically. In unmetered music (i.e. cadenzas), this is not
+desirable and can be @q{switched off} using the command
+@code{\cadenzaOn}, then @q{switched back on} at the appropriate place
+using @code{\cadenzaOff}.
 
 @lilypond[verbatim,relative=2,quote]
 c4 d e d
@@ -1426,8 +1440,7 @@ c4 c d8[ d d] f4 g4.
 d4 e d c
 @end lilypond
 
-Bar numbering is resumed at the end of the cadenza as if the
-cadenza were not there:
+Bar numbering is resumed at the end of the cadenza.
 
 @lilypond[verbatim,relative=2,quote]
 % Show all bar numbers
@@ -1440,29 +1453,37 @@ c4 c d8[ d d] f4 g4.
 d4 e d c
 @end lilypond
 
-@cindex beams, in cadenzas
-@cindex beams, in unmetered music
-@cindex cadenza, with beams
-@cindex unmetered music, with beams
+A new bar is never started within a cadenza, even if one or more
+@code{\bar} commands are inserted within it.  Therefore, reminder
+accidentals will need to be added manually.  See @ref{Accidentals}.
 
-Automatic beaming is disabled by @code{\cadenzaOn} and enabled
-by @code{\cadenzaOff}.  Therefore, all beaming in cadenzas
-must be entered manually (@ref{Manual beams}).
+@lilypond[verbatim,relative=2,quote]
+c4 d e d
+\cadenzaOn
+cis4 d cis d
+\bar "|"
+cis4 d cis! d
+\cadenzaOff
+\bar "|"
+@end lilypond
+
+Automatic beaming is disabled by @code{\cadenzaOn}. Therefore, all
+beaming in cadenzas must be entered manually. See @ref{Manual beams}.
 
 @lilypond[verbatim,relative=2,quote]
 \repeat unfold 8 { c8 }
 \cadenzaOn
-\repeat unfold 5 { c8 }
+cis8 c c c c
 \bar"|"
+c8 c c
 \cadenzaOff
 \repeat unfold 8 { c8 }
 @end lilypond
 
-Note that these predefined commands affect all staves in the
-score, even when they are placed in just one @code{Voice}
-context.  To change this, move the @code{Timing_translator}
-from the @code{Score} context to the @code{Staff} context, as
-shown in @ref{Polymetric notation}.
+These predefined commands affect all staves in the score, even when
+placed in just one @code{Voice} context.  To change this, move the
+@code{Timing_translator} from the @code{Score} context to the
+@code{Staff} context.  See @ref{Polymetric notation}.
 
 @predefined
 @code{\cadenzaOn},
@@ -1476,35 +1497,33 @@ Music Glossary:
 Notation Reference:
 @ref{Visibility of objects},
 @ref{Polymetric notation},
-@ref{Manual beams}.
+@ref{Manual beams},
+@ref{Accidentals}.
 
 Snippets:
 @rlsr{Rhythms}.
 
-@cindex cadenza line breaks
-@cindex cadenza page breaks
+@cindex cadenza, line breaks
+@cindex cadenza, page breaks
 @cindex unmetered music, line breaks
 @cindex unmetered music, page breaks
 @cindex breaks in unmetered music
-@cindex line breaks in cadenzas
-@cindex page breaks in cadenzas
-@cindex line breaks in unmetered music
-@cindex page breaks in unmetered music
+@cindex line breaks, cadenzas
+@cindex page breaks, cadenzas
+@cindex line breaks, unmetered music
+@cindex page breaks, unmetered music
 
 @knownissues
-LilyPond will insert line breaks and page breaks only at a
-bar line.  Unless the unmetered music ends before the end of the
-staff line, you will need to insert invisible bar lines with
+Automatic line and page breaks are inserted only at bar lines, so
+@q{invisible} bar lines will need to be inserted manually in long
+stretches of unmetered music to permit breaking:
 
 @example
 \bar ""
 @end example
 
-@noindent
-to indicate where breaks can occur.
-
-You should explicitly create a @code{Voice} context when starting a
-piece with @code{\cadenzaOn}, otherwise strange errors may occur.
+Explicitly create a @code{Voice} context when starting a piece with
+@code{\cadenzaOn}, else unexpected errors may occur.
 
 @example
 \new Voice @{
index fdf308ece9471b54b582a97aab0169bca73e6014..355ba95c7325bc19cec28891a834678bdc879048 100644 (file)
@@ -6,6 +6,12 @@ href="http://www.kickstarter.com/projects/751757415/ensemble-101"
 &gt;here&lt;/a&gt; to learn more!
 </tweet>
 <tweet>
+L'Ensemble 101 part en &lt;a target="_blank"
+href="http://www.kickstarter.com/projects/751757415/ensemble-101"
+&gt;tournée&lt;/a&gt; en France et en Irlande où ils chanteront
+des partitions gravées avec LilyPond.
+</tweet>
+<tweet>
 2012-06-17: &lt;a target="_blank"
 href="http://en.wikipedia.org/wiki/Oskar_Fried"&gt;Oskar Fried&lt;/a&gt;
 (1871-1941) - Complete Songs. New revised
@@ -13,4 +19,19 @@ edition, typeset using LilyPond, presented at a &lt;a target="_blank"
 href="http://www.hugo-wolf-akademie.de/veranstaltung/komponistenportraet-oskar-fried"&gt;
 concert in Stuttgart&lt;/a&gt;.
 </tweet>
+<tweet>
+17.06.2012: &lt;a target="_blank"
+href="http://de.wikipedia.org/wiki/Oskar_Fried"&gt;Oskar Fried&lt;/a&gt;
+(1871-1941) - Sämtliche Lieder. Revidierte Neuausgabe, gesetzt mit LilyPond,
+vorgestellt bei einem
+&lt;a target="_blank"
+href="http://www.hugo-wolf-akademie.de/veranstaltung/komponistenportraet-oskar-fried"&gt;
+Konzert in Stuttgart&lt;/a&gt;.
+</tweet>
+<tweet>
+&lt;a target="_blank"
+href="http://www.inadiutorium.xf.cz"&gt;
+Project&lt;/a&gt; in adiutorium provides chants to the catholic Divine
+Office in the Czech language. We use LilyPond for the typesetting.
+</tweet>
 </tweets>
index 52d931b523b6db31dc053246d9f349945506b617..5738b8a9f2c06ffe316a913f65d96bb97f9a1653 100644 (file)
@@ -23,7 +23,7 @@
 #include "engraver.hh"
 #include "translator-group.hh"
 
-class Engraver_group : public virtual Translator_group
+class Engraver_group : public Translator_group
 {
 protected:
   vector<Grob_info> announce_infos_;
index b49918591190d5d91ffd1715ac2d4d99a1742fa6..079162d27223bfac8295a577118135360d25b6e4 100644 (file)
@@ -23,7 +23,7 @@
 #include "context.hh"
 #include "pqueue.hh"
 
-class Global_context : public virtual Context
+class Global_context : public Context
 {
   PQueue<Moment> extra_mom_pq_;
   Output_def *output_def_;
index c2ee2ca1592cdc3275c29aba29f989842bd0f77b..4316d8bb73a8069cb41077b8b8507ed5c58afd60 100644 (file)
@@ -26,7 +26,7 @@
 
 typedef void (Performer:: *Performer_method) (void);
 
-class Performer_group : public virtual Translator_group
+class Performer_group : public Translator_group
 {
 public:
   VIRTUAL_COPY_CONSTRUCTOR (Translator_group, Performer_group);
index 0ad1e2964ee9cab5e4b7b7f030b00f1fed8ffd71..1a36b7fd19ef8b13a326ac610b08007f3fad19e9 100644 (file)
@@ -31,6 +31,7 @@
   \consists "Staff_performer"
   \consists "Key_performer"
 }
+
 \context {
   \name Global
   \accepts Score
   EventClasses = #all-event-classes
 }
 
+\context {
+  \type "Performer_group"
+  \name KievanStaff
+  \denies Voice
+  \accepts KievanVoice
+  \defaultchild KievanVoice
+  \alias Staff
+  \consists "Staff_performer"
+  \consists "Key_performer"
+}
+
+\context {
+  \type "Performer_group"
+  \name VaticanaStaff
+  \alias Staff
+  \denies Voice
+  \accepts VaticanaVoice
+  \defaultchild VaticanaVoice
+  \consists "Staff_performer"
+  \consists "Key_performer"
+}
+
+\context {
+  \type "Performer_group"
+  \name MensuralStaff
+  \denies Voice
+  \accepts MensuralVoice
+  \defaultchild MensuralVoice
+  \alias Staff
+  \consists "Staff_performer"
+  \consists "Key_performer"
+}
+
 \context {
   \Staff
   \name DrumStaff
 }
 
 \context {
-  \Voice
+  \type "Performer_group"
   \name VaticanaVoice
   \alias Voice
+  \consists "Dynamic_performer"
+  \consists "Tie_performer"
+  \consists "Note_performer"
+  \consists "Beam_performer"
+  \consists "Slur_performer"
+}
+
+\context {
+  \type "Performer_group"
+  \name KievanVoice
+  \alias Voice
+  \consists "Dynamic_performer"
+  \consists "Tie_performer"
+  \consists "Note_performer"
+  \consists "Beam_performer"
+  \consists "Slur_performer"
+}
+
+\context {
+  \type "Performer_group"
+  \name MensuralVoice
+  \alias Voice
+  \consists "Dynamic_performer"
+  \consists "Tie_performer"
+  \consists "Note_performer"
+  \consists "Beam_performer"
+  \consists "Slur_performer"
 }
 
 \context {
   \defaultchild TabVoice
 }
 
-\context {
-  \type "Performer_group"
-  \name "VaticanaStaff"
-  \alias "Staff"
-  \denies "Voice"
-  \accepts "VaticanaVoice"
-  \defaultchild "VaticanaVoice"
-}
-
 \context {
   \type "Score_performer"
 
   \accepts FretBoards
   \accepts Lyrics
   \accepts VaticanaStaff
+  \accepts KievanStaff
+  \accepts MensuralStaff
 
   \consists "Time_signature_performer"
   \consists "Control_track_performer"
index 5c7ec677de70850bc7f33e1e18a8dcf4d4edec41..6089e2539255c85f509b608d6ec87b94e25517d3 100644 (file)
@@ -428,37 +428,52 @@ Otherwise, return #f."
 
   (let* ((elements (append (ly:music-property chord 'elements)
                           (ly:music-property chord 'articulations)))
-        (chord-elements (filter (lambda (m)
-                                   (music-is-of-type? m 'rhythmic-event))
-                                elements))
-        (post-events (filter post-event? elements))
         (chord-repeat (ly:music-property chord 'duration)))
-    (cond ((ly:duration? chord-repeat)
-          (let ((duration (duration->lily-string chord-repeat #:remember #t)))
-            (format #f "q~a~{~a~^ ~}"
-                    duration
-                    (map-in-order (lambda (music)
-                                    (music->lily-string music parser))
-                                  post-events))))
-         ((pair? chord-elements)
-          ;; note_chord_element : '<' (notepitch | drumpitch)* '>" duration post_events
-          (let ((duration (duration->lily-string (ly:music-property
-                                                  (car chord-elements)
-                                                  'duration) #:remember #t)))
-            ;; Format duration first so that it does not appear on chord elements
-            (format #f "< ~{~a ~}>~a~{~a~^ ~}"
-                    (map-in-order (lambda (music)
-                                    (music->lily-string music parser))
-                                  chord-elements)
-                    duration
-                    (map-in-order (lambda (music)
-                                    (music->lily-string music parser))
-                                  post-events))))
-         (else
-          ;; command_element
-          (format #f "~{~a~^ ~}" (map-in-order (lambda (music)
-                                                 (music->lily-string music parser))
-                                               elements))))))
+    (call-with-values
+       (lambda ()
+         (partition (lambda (m) (music-is-of-type? m 'rhythmic-event))
+                    elements))
+      (lambda (chord-elements other-elements)
+       (cond ((pair? chord-elements)
+              ;; note_chord_element :
+              ;; '<' (notepitch | drumpitch)* '>" duration post_events
+              (let ((duration (duration->lily-string (ly:music-property
+                                                      (car chord-elements)
+                                                      'duration)
+                                                     #:remember #t)))
+                ;; Format duration first so that it does not appear on
+                ;; chord elements
+                (format #f "< ~{~a ~}>~a~:{~:[-~;~]~a~^ ~}"
+                        (map-in-order (lambda (music)
+                                        (music->lily-string music parser))
+                                      chord-elements)
+                        duration
+                        (map-in-order (lambda (music)
+                                        (list
+                                         (post-event? music)
+                                         (music->lily-string music parser)))
+                                      other-elements))))
+             ((ly:duration? chord-repeat)
+              (let ((duration (duration->lily-string chord-repeat
+                                                     #:remember #t)))
+                (format #f "q~a~:{~:[-~;~]~a~^ ~}"
+                        duration
+                        (map-in-order (lambda (music)
+                                        (list
+                                         (post-event? music)
+                                         (music->lily-string music parser)))
+                                      other-elements))))
+
+             ((and (= 1 (length other-elements))
+                   (not (post-event? (car other-elements))))
+              (format #f (music->lily-string (car other-elements) parser)))
+             (else
+              (format #f "< >~:{~:[-~;~]~a~^ ~}"
+                      (map-in-order (lambda (music)
+                                      (list
+                                       (post-event? music)
+                                       (music->lily-string music parser)))
+                                    other-elements))))))))
 
 (define-display-method MultiMeasureRestMusic (mmrest parser)
   (format #f "R~a~{~a~^ ~}"
index 84055ed9addd552432c11ecba6afec558ef5a98f..559eae3c3ff300e04e2a0eed635ea678e32d37ff 100644 (file)
@@ -653,7 +653,11 @@ respective predecessor chord."
        (let ((chord-repeat (ly:music-property music 'duration)))
          (cond
           ((not (ly:duration? chord-repeat))
-           music)
+           (if (any (lambda (m) (ly:duration?
+                                 (ly:music-property m 'duration)))
+                    (ly:music-property music 'elements))
+               music
+               last-chord))
           (last-chord
            (set! (ly:music-property music 'duration) '())
            (copy-repeat-chord last-chord music chord-repeat event-types)
index 8be2cab11dbe82218add1190679c27782c3b57b8..b42851e57d32ba495b9ee823ada3a6358e27e553 100644 (file)
@@ -287,12 +287,16 @@ AC_DEFUN(STEPMAKE_CXXTEMPLATE, [
 ])
 
 AC_DEFUN(STEPMAKE_GXXCODEGENBUG, [
-    AC_MSG_CHECKING([options for known g++ tail call bug])
+    AC_MSG_CHECKING([options for known g++ bugs])
     case "$GXX:$CXX_VERSION" in
-       yes:400600?)
-           AC_MSG_RESULT([-fno-optimize-sibling-calls])
+       yes:400600[[0-2]])
+           AC_MSG_RESULT([-fno-optimize-sibling-calls (tail call bug)])
            CXXFLAGS="$CXXFLAGS -fno-optimize-sibling-calls"
            ;;
+       yes:400700?)
+           AC_MSG_RESULT([-fno-tree-vrp (comparison bug)])
+           CXXFLAGS="$CXXFLAGS -fno-tree-vrp"
+           ;;
        *) AC_MSG_RESULT([none])
     esac
     AC_SUBST(CXXFLAGS)