]> git.donarmstrong.com Git - lilypond.git/commitdiff
* lilypond.words, ly/engraver-init.ly, ly/params-init.ly: added
authorJürgen Reuter <j@web.de>
Sun, 17 Aug 2003 23:34:22 +0000 (23:34 +0000)
committerJürgen Reuter <j@web.de>
Sun, 17 Aug 2003 23:34:22 +0000 (23:34 +0000)
GregorianTranscription contexts

* ly/engraver-init.ly: vaticana contexts: minor fixes

* Documentation/user/refman.itely (Ancient notation): added note
on appendix length bug

* input/puer-fragment.ly, input/test/gregorian-scripts.ly,
input/test/vaticana.ly: use vaticana contexts; small fixes

ChangeLog
Documentation/user/refman.itely
input/puer-fragment.ly
input/test/gregorian-scripts.ly
input/test/vaticana.ly
lilypond.words
ly/engraver-init.ly
ly/params-init.ly

index 95ffbeace6c6fcb2b1e0439d1ae9360c154a79d4..095ba888cfd74b4c75f10fce2924353bafec6ca0 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,16 @@
+2003-08-18  Juergen Reuter  <reuter@ipd.uka.de>
+
+       * lilypond.words, ly/engraver-init.ly, ly/params-init.ly: added
+       GregorianTranscription contexts
+
+       * ly/engraver-init.ly: vaticana contexts: minor fixes
+
+       * Documentation/user/refman.itely (Ancient notation): added note
+       on appendix length bug
+
+       * input/puer-fragment.ly, input/test/gregorian-scripts.ly,
+       input/test/vaticana.ly: use vaticana contexts; small fixes
+
 2003-08-17  Jan Nieuwenhuizen  <janneke@gnu.org>
 
        * flower/hash.cc: Remove.
index e24d45156303c0486f3f703880206266ff8ff0d1..e7f41991d61d82b9f43cd8b1bbc99f50dacab34d 100644 (file)
@@ -6931,6 +6931,10 @@ Semivocalis head; this looks awful.
 
 Trigonus: apply equal spacing, regardless of pitch.
 
+Flexa and similar figurae: the left appendix should be adjusted with
+respect to the position of this head (on staffline or on staffspace)
+and the vertical position of the subsequent head.
+
 @node Figured bass
 @subsection Figured bass
 
index d4f9edc13c5f77229cb0198d7e8752c9ab0494cc..b521b67fbaadac1ae73b1374561dd2369d23f3bc 100644 (file)
@@ -1,6 +1,6 @@
-\version "1.7.27"
+\version "1.8.0"
 \header {
-    title      = "Puer natus est nobis"
+    title      = "Puer natus est nobis (excerptum)"
     subtitle   = "Antiphona ad introitum VII"
     texidoc = "
 
@@ -8,15 +8,12 @@ Demonstrate gregorian chant notation
 
 This file pretty nicely demonstrates what still does
 not work among ligatures: (i) horizontal spacing between ligatures and
-lyrics aligment is broken; (ii) the clef does not show on each line;
-(iii) lily crashes when removing Stem_engraver, but still using
-Slur_engraver (this is useful needed for the \addlyrics feature when
-no slurs are to be typeset); (iv) episem causes a parse error (this
-used to work a while ago); (v) pitches are typeset half a staff space
-too high (the second note is a d, but it appears on the line of the do
-clef; this bug must have been introduced only recently); (vi) support
-for augmentum dots is missing; (vii) accidentals must be placed before
-the ligature (not demonstrated in this example)."
+lyrics aligment is broken; (ii) lily crashes when removing
+Stem_engraver, but still using Slur_engraver (this is useful needed
+for the \addlyrics feature when no slurs are to be typeset); (iii)
+episem causes a parse error (this used to work a while ago); (iv)
+support for augmentum dots is missing; (v) accidentals must be placed
+before the ligature (not demonstrated in this example)."
 
 }
 
@@ -27,7 +24,7 @@ the ligature (not demonstrated in this example)."
 %%% but this is intentional for editorial purposes (simplifies some
 %%% global search/replace operations in emacs).
 
-cantus = \notes \transpose c c {
+cantus = \notes {
   \[ g4
     (          %%% Pu-
     \pes
@@ -86,40 +83,21 @@ cantus = \notes \transpose c c {
     g-)
   \]
   \divisioMaxima
-  g            %%% cu-
-  a            %%% us
-  c'           %%% im-
-  \[ b
-    (          %%% pe-
-    \pes d' e' \pes
-    f'-)
-  \]
-  \[ d'
-    (          %%% ri-
-    \flexa
-    c'-)
-  \]
-  c'           %%% um
 }
 
 verba = \context Lyrics = verba \lyrics {
   Pu- er na- tus est no- bis,
   et fi- li- us da- tus est no- bis:
-  cu- ius im- pe- ri- um
 }
 
 \score {
-  \context StaffGroup <
-    \context VaticanaStaff <
-      \context VaticanaVoice <
-       \addlyrics
-       \cantus
-       \verba
-      >
-    >
+  \context VaticanaVoice <
+    \addlyrics
+    \cantus
+    \verba
   >
   \paper {
-    stafflinethickness = \staffspace / 5.0
+    stafflinethickness = \staffspace / 7.0
     linewidth = 137.0\mm
     width = 137.0\mm
     indent = 0.0
@@ -127,115 +105,16 @@ verba = \context Lyrics = verba \lyrics {
     packed = ##t
 %   width = 15.0 \cm %%% no effect?
 
-    \translator {
-      \VoiceContext
-      \name VaticanaVoice
-      \alias Voice
-
-      % Can not `\remove "Slur_engraver"', since \addlyrics needs
-      % slurs working.  Hence, set slurs transparent instead.
-      Slur \override #'transparent = ##t
-
-      % N.B.: Warnings of the type "Degenerate bow: infinite steepness
-      % reqd" arise from the fact that all noteheads of a ligature are
-      % in the same paper column.  Therefore, the (transparent) slurs
-      % often start and end in the same column, producing the above
-      % warning.  TODO: supress this warning; we need slurs only for
-      % \addlyrics, not for printing.
-
-      % `\remove "Stem_engraver"' currently produces a crash (see
-      % below).  Hence, set stems transparent instead.
-      Stem \set #'transparent = ##t
-      % \remove "Stem_engraver"
-
-%{
-
-FIXME:
-
-When removing Stem_engraver from VoiceContext (but still using
-Slur_engraver), lily will crash while trying to typeset slurs, since
-`()' is not a valid stem:
-
-In unknown file:
-   ?: 0* [Slur::after_line_breaking #<Grob Slur >]
-   ?: 1* [#<procedure #f (slur dir)> #<Grob Slur > -1]
-In /home/reuter/project/lilypond-1.7/share/lilypond/scm/slur.scm:
-  43: 2* [not ...
-  43: 3*  [attached-to-stem #<Grob Slur > -1]
-  10: 4   (let* ((note-columns #) (col #) (stem #)) (and (eq? col #) stem ...))
-    ...
-  16: 5   [ly:get-grob-property () heads]
-
-/home/reuter/project/lilypond-1.7/share/lilypond/scm/slur.scm:16:6: In procedure ly_get_grob_property in expression (ly:get-grob-property stem (quote heads)):
-/home/reuter/project/lilypond-1.7/share/lilypond/scm/slur.scm:16:6: Wrong type argument in position 1 (expecting grob): ()
-
-%}
-
-      \remove Ligature_bracket_engraver
-      \consists Vaticana_ligature_engraver
-      NoteHead \set #'style = #'vaticana_punctum
-      Script \set #'padding = #0.0
-
-      % prepare TextSpanner for \episem{Initium|Finis} use
-      TextSpanner \set #'style = #'line
-      TextSpanner \set #'edge-height = #'(0 . 0)
-      TextSpanner \set #'padding = #0.5
-      TextSpanner \set #'edge-text = #'("" . "")
-    }
-    \translator {
-      \VoiceContext
-      \name GregorianTransciptionVoice
-      \alias Voice
-      Stem \set #'transparent = ##t
-      % \remove "Stem_engraver"
-      % Slur \override #'transparent = ##t
-      \remove "Slur_engraver"
-    }
-    \translator {
-      \StaffContext
-      \name GregorianTranscriptionStaff
-      \alias Staff
-      \accepts GregorianTranscriptionVoice
-      BarLine \override #'transparent = ##t
-    }
-    \translator {
-      \StaffContext
-      \name VaticanaStaff
-      \alias Staff
-      \accepts VaticanaVoice
-      \remove Bar_engraver
-      \consists Custos_engraver
-      clefGlyph = #"clefs-vaticana_do"
-      centralCPosition = #1
-      clefPosition = #1
-      clefOctavation = #0
-      StaffSymbol \set #'line-count = #4
-      StaffSymbol \set #'width = #60.0 % FIXME: unit should be \linewidth
-      TimeSignature \set #'transparent = ##t
-      KeySignature \set #'style = #'vaticana
-      Accidental \set #'style = #'vaticana
-      Custos \set #'style = #'vaticana
-      Custos \set #'neutral-position = #3
-      Custos \set #'neutral-direction = #-1
-      Custos \set #'adjust-if-on-staffline = ##t
-    }
-    \translator {
-      \HaraKiriStaffContext
-      \accepts VaticanaVoice
-      \accepts GregorianTranscriptionVoice
-    }
     \translator {
       \ScoreContext
-      \accepts VaticanaStaff
-      \accepts GregorianTranscriptionStaff
       \remove Bar_number_engraver
-%      SpacingSpanner \set #'spacing-increment = #0.5
+%     SpacingSpanner \set #'spacing-increment = #0.5
       timing = ##f
 
-      % Don't do this except for transcription -- it will produce
+      % Maybe don't do this except for transcription -- it may produce
       % additional space
       barAlways = ##t
-%      skipBars = ##t
+%     skipBars = ##t
     }
   }
 }
index 922b8e07ad7a3731009402463c27941efe8a58f6..29f4dc3034786f2adcbc8b628536a376f34692a2 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.7.19"
+\version "1.8.0"
 \header {
     title      = "Gregorian Scripts"
     texidoc     = "@cindex Gregorian Scripts
@@ -7,12 +7,11 @@ Gregorian Scripts:
 
 ictus, circulus, semicirculus, accentus, episem.
 
-TODO: augmentum.
-
-FIXME: when applying an episem within a ligature, the TextSpanner's width
-collapses to 0.0.
-
-FIXME: clef does not show on each line.
+TODO: augmentum.  Syntax: either as bracket (\augmentumInitium,
+\augmentumFinis), or as head prefix with subsequently collecting all
+dots and putting them behind the ligature in a vertical row.
+Counterexample to the second approach: Graduale Triplex, tempus per
+annum, hebdomada septima, alleluia (page 280).
 
 FIXME: horizontal spacing (ragged right mode).
 
@@ -22,81 +21,28 @@ FIXME: padding/minimum-distance is fragile.
 
 \include "gregorian-init.ly"
 
-cantus = \notes \relative c' {
-  \clef "vaticana_do2"
-
-  a-\ictus
-  a-\circulus
-  a-\semicirculus
-  a-\accentus
-
-  %{ %% TODO: augmentum:
-     a-\augmentum
-     \[ \augmentumInitium b \flexa a \augmentumFinis \]
-  %}
-
-  a \episemInitium b \flexa a \episemFinis
-
-  \[ a \episemInitium b \flexa a \episemFinis \]
-}
-
 \score {
-  \context VaticanaStaff <
-    \context VaticanaVoice <
-      \cantus
-    >
-  >
+  \context VaticanaVoice {
+    \property VaticanaVoice.Script \set #'padding = #-0.5
+    \notes {
+      a-\ictus
+      a-\circulus
+      a-\semicirculus
+      a-\accentus
+
+      %{ %% TODO: augmentum:
+       a-\augmentum
+       \[ \augmentumInitium b \flexa a \augmentumFinis \]
+      %}
+
+      \[ a \episemInitium \pes b \flexa a \episemFinis \]
+    }
+  }
   \paper {
     linewidth = 70.0
     stafflinethickness = \staffspace / 5.0
     width = 60.0
     indent = 0.0
     raggedright = ##t
-
-%   width = 15.0 \cm %%% no effect?
-%   gourlay_maxmeasures = 1. %%% no effect?
-
-    \translator {
-      \VoiceContext
-      \name VaticanaVoice
-      \alias Voice
-      \remove "Stem_engraver"
-      \remove Ligature_bracket_engraver
-      \consists Vaticana_ligature_engraver
-      NoteHead \set #'style = #'vaticana_punctum
-      Script \set #'padding = #0.0
-
-      % prepare TextSpanner for \episem{Initium|Finis} use
-      TextSpanner \set #'style = #'line
-      TextSpanner \set #'edge-height = #'(0 . 0)
-      TextSpanner \set #'padding = #0.5
-      TextSpanner \set #'edge-text = #'("" . "")
-    }
-    \translator {
-      \StaffContext
-      \name VaticanaStaff
-      \alias Staff
-      \accepts VaticanaVoice
-      \remove Bar_engraver
-      \consists Custos_engraver
-      StaffSymbol \set #'line-count = #4
-%      StaffSymbol \set #'width = #60.0 % FIXME: should be \linewidth
-      TimeSignature \set #'transparent = ##t
-      KeySignature \set #'style = #'vaticana
-      Accidental \set #'style = #'vaticana
-      Custos \set #'style = #'vaticana
-      Custos \set #'neutral-position = #3
-      Custos \set #'neutral-direction = #-1
-      Custos \set #'adjust-if-on-staffline = ##t
-    }
-    \translator {
-      \RemoveEmptyStaffContext
-      \accepts VaticanaVoice
-    }
-    \translator {
-      \ScoreContext
-      \accepts VaticanaStaff
-      \remove Bar_number_engraver
-    }
   }
 }
index fab7d160206f6e05cf4d1585691f3261a721f3a5..5878392129c773c87f09cff434b546a4f710dd9a 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.7.19"
+\version "1.8.0"
 % possible rename to ancient-something.
 
 \header { texidoc      = "Ancient Vaticana
@@ -7,16 +7,7 @@ Vaticana ligature test. "
 
 \include "gregorian-init.ly"
 
-%
-% FIXME: custodes and clefs do not show on all staves
-%
-
-%
-% FIXME: move VaticnaStaff/VaticanaVoice definition to engraver-init.ly?
-% Or rather to gregorian-init.ly?
-%
-
-cantus = \notes \relative c {
+cantus = \notes {
   \clef "vaticana_fa2"
   \[ f \quilisma g \auctum \descendens a \]
   \[ \virga a g \pes a \inclinatum f \inclinatum d
@@ -31,55 +22,23 @@ verba = \context Lyrics = verba \lyrics {
 }
 
 \score {
-  \context VaticanaStaff <
-    \context VaticanaVoice <
-      \cantus
-      \verba
-    >
+  \context VaticanaVoice <
+    \cantus
+    \verba
   >
   \paper {
-    stafflinethickness = \staffspace / 5.0
-    linewidth = 15.0 \cm
+    stafflinethickness = \staffspace / 7.0
+    linewidth = 137.0 \mm
+    width = 137.0 \mm
     indent = 0.0
-       raggedright = ##t
-%
-% FIXME: packed alignment is currently broken
-%
-
-    \translator {
-      \VoiceContext
-      \name VaticanaVoice
-      \alias Voice
-      \remove "Stem_engraver"
-      \remove Ligature_bracket_engraver
-      \consists Vaticana_ligature_engraver
-      NoteHead \set #'style = #'vaticana_punctum
-%     TextScript \set #'padding = #0.0
-    }
-    \translator {
-      \StaffContext
-      \name VaticanaStaff
-      \alias Staff
-      \accepts VaticanaVoice
-      \remove Bar_engraver
-      \consists Custos_engraver
-      StaffSymbol \set #'line-count = #4
-      TimeSignature \set #'transparent = ##t
-      KeySignature \set #'style = #'vaticana
-      Accidental \set #'style = #'vaticana
-      Custos \set #'style = #'vaticana
-      Custos \set #'neutral-position = #3
-      Custos \set #'neutral-direction = #-1
-      Custos \set #'adjust-if-on-staffline = ##t
-    }
-    \translator {
-      \RemoveEmptyStaffContext
-      \accepts VaticanaVoice
-    }
+    raggedright = ##t
+    packed = ##t
+    % packed = ##t %%%% FIXME
     \translator {
       \ScoreContext
-      \accepts VaticanaStaff
       \remove Bar_number_engraver
+      timing = ##f
+      barAlways = ##t
     }
   }
 }
index bd3957a18dda30cad63269e01c759c749e43d706..4048fcfa39eb503b2d3d486ae076d38a361298a7 100644 (file)
@@ -143,6 +143,8 @@ Grace
 \\grandstaff
 GrandStaff
 \\GrandStaffContext
+GregorianTranscriptionStaff
+GregorianTranscriptionVoice
 \\grobdescriptions
 \\groupClose
 \\groupOpen
index d9ca7589618a56152575ad36901ff44702b344ec..67e827de2670838a85502ccca113e1b73b906270 100644 (file)
@@ -378,6 +378,7 @@ RemoveEmptyStaffContext = \translator {
 HaraKiriStaffContext = \translator {
        \RemoveEmptyStaffContext
        \accepts "VaticanaVoice"
+       \accepts "GregorianTranscriptionVoice"
 }
 
 ScoreContext = \translator {
@@ -419,6 +420,7 @@ ScoreContext = \translator {
        \accepts "Staff"
        \accepts "TabStaff"
        \accepts "VaticanaStaff"
+       \accepts "GregorianTranscriptionStaff"
        \accepts "StaffContainer"
        \accepts "StaffGroup"
        \accepts "RhythmicStaff"
@@ -624,6 +626,12 @@ VaticanaVoiceContext = \translator {
   % As a workaround, we make the grob transparent.
   Stem \set #'transparent = ##t
 
+  % Since we do not remove stems, but only make it transparent, we have
+  % to set the length to 0.0.  Otherwise, articulation marks (such as
+  % ictus, circulus or accentus) may be vertically placed quite away from
+  % the note head.
+  Stem \set #'length = #'0.0
+
   \remove "Ligature_bracket_engraver"
   \consists "Vaticana_ligature_engraver"
 
@@ -641,6 +649,7 @@ VaticanaVoiceContext = \translator {
   TextSpanner \set #'style = #'line
   TextSpanner \set #'edge-height = #'(0 . 0)
   TextSpanner \set #'padding = #0.5
+  TextSpanner \set #'enclose-bounds = ##t
   TextSpanner \set #'edge-text = #'("" . "")
 }
 
@@ -650,12 +659,13 @@ VaticanaStaffContext = \translator {
   \alias "Staff"
   \denies "Voice"
   \accepts "VaticanaVoice"
-%  \description "Same as @code{Staff} context, except that it is accommodated for tyepsetting Gregorian Chant in the notational style of Editio Vaticana."
+  \description "Same as @code{Staff} context, except that it is accommodated for tyepsetting Gregorian Chant in the notational style of Editio Vaticana."
 
   \remove "Time_signature_engraver"
   \consists "Custos_engraver"
 
-  % We can not remove Bar_engraver, since clef and custos depend on it.
+  % We can not remove Bar_engraver; otherwise clefs and custodes will
+  % not show up any more among other line breaking issues.
   % Instead, we make the grob transparent.
   BarLine \set #'transparent = ##t
 
@@ -681,3 +691,62 @@ VaticanaStaffContext = \translator {
   % Score.timing = ##f
   % Score.barAlways = ##t
 }
+
+GregorianTranscriptionVoiceContext = \translator {
+  \VoiceContext
+  \name "GregorianTranscriptionVoice"
+  \alias "Voice"
+
+  % Removing ligature bracket engraver without replacing it by some
+  % other ligature engraver would cause a "Junking event: `LigatureEvent'"
+  % warning for every "\[" and "\]".  Therefore, we make the grob
+  % transparent instead.
+  LigatureBracket \set #'transparent = ##t
+
+  % We can not remove Slur_engraver, since \addlyrics depends on it.
+  % Instead, we make the grob transparent.
+  % Unfortunately, this gives us a lot of warnings ("Degenerate bow:
+  % infinite steepness reqd"), since in ligatures, all note heads are in
+  % the same paper column such that the (transparent) slurs eventually may
+  % start and end in the same column.
+  Slur \override #'transparent = ##t
+
+  % We can not remove Stem_engraver, since slurs depend on stems.  If
+  % we try anyway, lily will crash in slur.scm:16:6: "Wrong type argument
+  % in position 1 (expecting grob): ()".
+  % As a workaround, we make the grob transparent.
+  Stem \set #'transparent = ##t
+
+  % Since we do not remove stems, but only make it transparent, we have
+  % to set the length to 0.0.  Otherwise, articulation marks (such as
+  % ictus, circulus or accentus) may be vertically placed quite away from
+  % the note head.
+  Stem \set #'length = #'0.0
+
+  % Put some space before and after divisiones.
+  % FIXME: This does not seem to show any effect.
+  Script \set #'padding = #0.5
+
+  % There are no beams in Gregorian Chant notation.
+  autobeaming = ##f
+
+  % Prepare TextSpanner for \episem{Initium|Finis} use.
+  TextSpanner \set #'style = #'line
+  TextSpanner \set #'edge-height = #'(0 . 0)
+  TextSpanner \set #'padding = #0.5
+  TextSpanner \set #'enclose-bounds = ##t
+  TextSpanner \set #'edge-text = #'("" . "")
+}
+
+GregorianTranscriptionStaffContext = \translator {
+  \StaffContext
+  \name "GregorianTranscriptionStaff"
+  \alias "Staff"
+  \denies "Voice"
+  \accepts "GregorianTranscriptionVoice"
+
+  % We can not remove Bar_engraver; otherwise clefs and custodes will
+  % not show up any more among other line breaking issues.
+  % Instead, we make the grob transparent.
+  BarLine \set #'transparent = ##t
+}
index c47e714ea1f32fc7d8ca285e4dc8a3496280caa9..821511744def130bc979e41bbe2e8b9c499cbf2c 100644 (file)
@@ -52,6 +52,8 @@ interscoreline = 4. \mm
 \translator { \TabVoiceContext }
 \translator { \VaticanaStaffContext }
 \translator { \VaticanaVoiceContext }
+\translator { \GregorianTranscriptionStaffContext }
+\translator { \GregorianTranscriptionVoiceContext }
 
 
 %%