+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.
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
-\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 = "
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)."
}
%%% 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
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
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
}
}
}
-\version "1.7.19"
+\version "1.8.0"
\header {
title = "Gregorian Scripts"
texidoc = "@cindex 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).
\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
- }
}
}
-\version "1.7.19"
+\version "1.8.0"
% possible rename to ancient-something.
\header { texidoc = "Ancient Vaticana
\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
}
\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
}
}
}
\\grandstaff
GrandStaff
\\GrandStaffContext
+GregorianTranscriptionStaff
+GregorianTranscriptionVoice
\\grobdescriptions
\\groupClose
\\groupOpen
HaraKiriStaffContext = \translator {
\RemoveEmptyStaffContext
\accepts "VaticanaVoice"
+ \accepts "GregorianTranscriptionVoice"
}
ScoreContext = \translator {
\accepts "Staff"
\accepts "TabStaff"
\accepts "VaticanaStaff"
+ \accepts "GregorianTranscriptionStaff"
\accepts "StaffContainer"
\accepts "StaffGroup"
\accepts "RhythmicStaff"
% 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"
TextSpanner \set #'style = #'line
TextSpanner \set #'edge-height = #'(0 . 0)
TextSpanner \set #'padding = #0.5
+ TextSpanner \set #'enclose-bounds = ##t
TextSpanner \set #'edge-text = #'("" . "")
}
\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
% 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
+}
\translator { \TabVoiceContext }
\translator { \VaticanaStaffContext }
\translator { \VaticanaVoiceContext }
+\translator { \GregorianTranscriptionStaffContext }
+\translator { \GregorianTranscriptionVoiceContext }
%%