]> 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 03:20:00 +0000 (03:20 +0000)
committerJürgen Reuter <j@web.de>
Sun, 17 Aug 2003 03:20:00 +0000 (03:20 +0000)
Vaticana contexts

* Documentation/user/refman.itely (Ancient notation): documented
some bugs; tiny fixes; added docu on Vaticana contexts

* gregorian-init.ly, ly/script-init.ly: moved ancient articulation
scripts

ChangeLog
Documentation/user/refman.itely
lilypond.words
ly/engraver-init.ly
ly/gregorian-init.ly
ly/params-init.ly
ly/script-init.ly

index b9469a719d529a1d9b962141932313d24c8b8065..65083d642770c413268068d7089f59be32217f8a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2003-08-17  Juergen Reuter  <reuter@ipd.uka.de>
+
+       * lilypond.words, ly/engraver-init.ly, ly/params-init.ly: added
+       Vaticana contexts
+
+       * Documentation/user/refman.itely (Ancient notation): documented
+       some bugs; tiny fixes; added docu on Vaticana contexts
+
+       * gregorian-init.ly, ly/script-init.ly: moved ancient articulation
+       scripts
+
 2003-08-16  Juergen Reuter  <reuter@ipd.uka.de>
 
        * Documentation/user/refman.itely (Ancient notation): added some
index ea3dc7f9d16c37f578bf9ee130ef729730b4df62..19283e72bd4720573e7c4aa3e54455bc93bcd542 100644 (file)
@@ -2030,7 +2030,7 @@ For finger changes, use markup texts:
 You can use the thumb-script to indicate that a note should be
 played with your thumb (used in cello music):
 
-@lilypond[verbatim, singleline, fragmnt]
+@lilypond[verbatim, singleline, fragment]
       <<a' a''-3>>8-(_\thumb-[ <<b' b''-3>>-)_\thumb
       <<c'' c'''-3>>-(_\thumb <<d'' d'''-3>>-)_\thumb-]
 @end lilypond
@@ -4368,7 +4368,9 @@ output:
 
 @c [TODO: write more comprehensive introduction on ancient notation]
 
-Support for ancient notation currently includes features for mensural
+Support for ancient notation is still under heavy development.
+Regardless of all of the current limitations (see the bugs section
+below for details), it currently includes features for mensural
 notation and Gregorian Chant notation.  There is also limited support
 for figured bass notation.
 
@@ -4402,6 +4404,29 @@ ancient notation, see @ref{Custodes}, @ref{Divisiones},
 * Figured bass::                
 @end menu
 
+If this all is way too much of documentation for you, and you just
+want to dive into typesetting without worrying too much about the
+details on how to customize a context, then you may have a look at the
+predefined contexts (see @ref{Vaticana style contexts}).  Use them to
+set up predefined style-specific voice and staff contexts, and
+directly go ahead with the note entry.
+
+@menu
+* Vaticana style contexts::
+@end menu
+
+@refbugs
+
+Ligatures need special spacing that has not yet been implemented.  As
+a result, there is too much space between ligatures most of the time,
+and line breaking often is unsatisfactory.  Also, lyrics do not
+correctly align with ligatures.
+
+Accidentals must not be printed within a ligature, but instead need to
+be collected and printed in front of it.
+
+Augmentum dots within ligatures are currently not handled correctly.
+
 
 @node Ancient note heads
 @subsection Ancient note heads
@@ -6985,6 +7010,37 @@ and @internalsref{FiguredBass} context.
 Slash notation for alterations is not supported.
 
 
+@node Vaticana style contexts
+@subsection Vaticana style contexts
+
+@cindex VaticanaVoiceContext
+@cindex VaticanaStaffContext
+
+The predefined @code{VaticanaVoiceContext} and
+@code{VaticanaStaffContext} can be used to easily engrave a piece of
+Gregorian Chant in the style of the Editio Vaticana.  These contexts
+initialize all relevant context properties and grob properties to
+proper values.  With these contexts, you can immediately go ahead
+entering the chant, as the following short excerpt demonstrates:
+
+@lilypond[raggedright,verbatim,noindent]
+\include "gregorian-init.ly"
+\score {
+  \addlyrics
+  \context VaticanaVoice {
+    \property Score.BarNumber \set #'transparent = ##t
+    \notes {
+      \[ c'( c' \flexa a \] \[ a \flexa \deminutum g-) \] f \divisioMinima
+      \[ f( \pes a c' c' \pes d'-) \] c' \divisioMinima \break
+      \[ c'( c' \flexa a \] \[ a \flexa \deminutum g-) \] f \divisioMinima
+    }
+  }
+  \context Lyrics \lyrics {
+    San- ctus, San- ctus, San- ctus
+  }
+}
+@end lilypond
+
 @node Contemporary notation
 @section Contemporary notation
 
index 595eeec779baf52d9a3d15dcad6a40a39fbe40e2..bd3957a18dda30cad63269e01c759c749e43d706 100644 (file)
@@ -487,6 +487,8 @@ unfold
 \\upperVoice
 \\upprall
 \\varcoda
+VaticanaStaff
+VaticanaVoice
 \\version
 VerticalAlignment
 \\verylongfermata
index 25e2ad92e5ba22f94e44e906f41dc0666fbfed94..d9ca7589618a56152575ad36901ff44702b344ec 100644 (file)
@@ -375,7 +375,10 @@ RemoveEmptyStaffContext = \translator {
        Beam \override #'auto-knee-gap = #'()
 }
 
-HaraKiriStaffContext = \translator { \RemoveEmptyStaffContext }
+HaraKiriStaffContext = \translator {
+       \RemoveEmptyStaffContext
+       \accepts "VaticanaVoice"
+}
 
 ScoreContext = \translator {
        \type Score_engraver
@@ -415,16 +418,17 @@ ScoreContext = \translator {
 
        \accepts "Staff"
        \accepts "TabStaff"
+       \accepts "VaticanaStaff"
        \accepts "StaffContainer"
        \accepts "StaffGroup"
-       \accepts "RhythmicStaff"        
+       \accepts "RhythmicStaff"
        \accepts "Lyrics"
        \accepts "ChordNames"
        \accepts "GrandStaff"
        \accepts "ChoirStaff"
        \accepts "PianoStaff"
        \accepts "NoteNames"
-       \accepts "FiguredBass"  
+       \accepts "FiguredBass"
 
        soloText = #"Solo"
        soloIIText = #"Solo II"
@@ -589,4 +593,91 @@ TabStaffContext = \translator {
       clefGlyph = #"clefs-tab"
       clefPosition = #0
 }
-   
+
+% TODO: Gregorian Chant contexts should be moved to gregorian-init.ly,
+% but this does not work (is this a bug or intended behaviour?):
+%
+% If I try to do so, I get "error: unknown escaped string:
+% `\VaticanaStaffContext'" in params-init.ly.  If I also move
+% "\translator { \Vaticana*Context }" from params-init.ly to the end
+% of gregorian-init.ly, then I get "error: parse error, unexpected
+% TRANSLATOR: \translator { \VaticanaStaffContext }" in
+% gregorian-init.ly. --jr
+
+VaticanaVoiceContext = \translator {
+  \VoiceContext
+  \name "VaticanaVoice"
+  \alias "Voice"
+  \description "Same as @code{Voice} context, except that it is accommodated for tyepsetting Gregorian Chant in the notational style of Editio Vaticana."
+
+  % 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
+
+  \remove "Ligature_bracket_engraver"
+  \consists "Vaticana_ligature_engraver"
+
+  % Set default head for notes outside of \[ \].
+  NoteHead \set #'style = #'vaticana_punctum
+
+  % 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 #'edge-text = #'("" . "")
+}
+
+VaticanaStaffContext = \translator {
+  \StaffContext
+  \name "VaticanaStaff"
+  \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."
+
+  \remove "Time_signature_engraver"
+  \consists "Custos_engraver"
+
+  % We can not remove Bar_engraver, since clef and custos depend on it.
+  % Instead, we make the grob transparent.
+  BarLine \set #'transparent = ##t
+
+  StaffSymbol \set #'line-count = #4
+
+  % FIXME: unit on StaffSymbol's width should be \linewidth.
+  % StaffSymbol \set #'width = #60.0
+
+  % Choose vaticana do clef on 3rd line as default.
+  clefGlyph = #"clefs-vaticana_do"
+  centralCPosition = #1
+  clefPosition = #1
+  clefOctavation = #0
+
+  % Select vaticana style font.
+  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
+
+  % Score.timing = ##f
+  % Score.barAlways = ##t
+}
index 8485d215dcc25f7d9252a80fdbf72b87c5cf5742..8111cae2300ee9370e3eb97aec2c90df04fdef91 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.7.18"
+\version "1.8.0"
 
 %%%%%%%%
 %%%%%%%% shortcuts common for all styles of gregorian chant notation
@@ -87,6 +87,12 @@ finalis = {
   \breathe
 }
 
+%
+% declare articulation shortcuts
+%
+accentus = #(make-articulation "accentus")
+ictus = #(make-articulation "ictus")
+semicirculus = #(make-articulation "semicirculus")
+circulus = #(make-articulation "circulus")
 episemInitium = #(make-span-event 'TextSpanEvent START)
-
 episemFinis = #(make-span-event 'TextSpanEvent STOP)
index 504a3deb870444999d95fdade414885ac81d0b68..c47e714ea1f32fc7d8ca285e4dc8a3496280caa9 100644 (file)
@@ -50,6 +50,8 @@ interscoreline = 4. \mm
 \translator { \FiguredBassContext }
 \translator { \TabStaffContext }
 \translator { \TabVoiceContext }
+\translator { \VaticanaStaffContext }
+\translator { \VaticanaVoiceContext }
 
 
 %%
index 0ce835037d2f85021b3ce5b4acec7f0bffb1ad43..8dd3521cac79ca687a7dcce904e54f34137cf979 100644 (file)
@@ -14,10 +14,6 @@ accent = #(make-articulation "accent")
 marcato = #(make-articulation "marcato")
 staccatissimo = #(make-articulation "staccatissimo")
 portato = #(make-articulation "portato")
-accentus = #(make-articulation "accentus")
-ictus = #(make-articulation "ictus")
-semicirculus = #(make-articulation "semicirculus")
-circulus = #(make-articulation "circulus")
 signumcongruentiae = #(make-articulation "signumcongruentiae")
 fermata = #(make-articulation "fermata")
 shortfermata = #(make-articulation "shortfermata")