]> git.donarmstrong.com Git - lilypond.git/commitdiff
LSR: adding new files.
authorGraham Percival <graham@percival-music.ca>
Thu, 7 Jun 2007 07:39:57 +0000 (00:39 -0700)
committerGraham Percival <graham@percival-music.ca>
Thu, 7 Jun 2007 07:39:57 +0000 (00:39 -0700)
18 files changed:
input/lsr/connecting/automatic-beam-subdivisions.ly [new file with mode: 0644]
input/lsr/connecting/how-to-improve-automatic-beam-groups-when-frequently-using--time.ly [new file with mode: 0644]
input/lsr/education/putting-parentheses-around-a-note.ly [new file with mode: 0644]
input/lsr/education/white-text-on-black-background.ly [new file with mode: 0644]
input/lsr/guitar/faking-a-hammer-in-tablatures.ly [new file with mode: 0644]
input/lsr/other/all-headers.ly [new file with mode: 0644]
input/lsr/other/engravers-one-by-one.ly [new file with mode: 0644]
input/lsr/other/removing-time-signature-and-bar-lines.ly [new file with mode: 0644]
input/lsr/pitch/combining-two-parts-on-the-same-staff.ly [new file with mode: 0644]
input/lsr/pitch/preventing-stem-extension.ly [new file with mode: 0644]
input/lsr/pitch/rest-styles.ly [new file with mode: 0644]
input/lsr/scheme/generating-random-notes.ly [new file with mode: 0644]
input/lsr/staff/changing-the-staff-size.ly [new file with mode: 0644]
input/lsr/staff/staff-containers.ly [new file with mode: 0644]
input/lsr/text/creating-text-spanners.ly [new file with mode: 0644]
input/lsr/text/how-to-bottom-align-texts-with-different-vertical-extents.ly [new file with mode: 0644]
input/lsr/vocal/aligning-lyrics.ly [new file with mode: 0644]
input/test/engraver-contexts.ly [deleted file]

diff --git a/input/lsr/connecting/automatic-beam-subdivisions.ly b/input/lsr/connecting/automatic-beam-subdivisions.ly
new file mode 100644 (file)
index 0000000..95e8c64
--- /dev/null
@@ -0,0 +1,18 @@
+%%  Do not edit this file; it is auto-generated from LSR!
+\version "2.11.23"
+
+\header { texidoc = "
+Lilypond can subdivide beams automatically. Set the property
+subdivideBeams, and beams are subdivided at beat positions (as
+specified in beat length)
+" }
+
+\relative{ b'32^"default"[ a g f c' b a g f e d' c b a g f ]
+              \set subdivideBeams = ##t
+              b32^"subdivision enabled"[ a g f c' b a g f e d' c b a g f ] 
+              \set Score.beatLength = #(ly:make-moment 1 8)
+              b32^"beatLength 1 8"[ a g f c' b a g f e d' c b a g f ]
+              \set Score.beatLength = #(ly:make-moment 1 16)
+              b32^"beatLength 1 16"[ a g f c' b a g f e d' c b a g f ]
+    }
+
diff --git a/input/lsr/connecting/how-to-improve-automatic-beam-groups-when-frequently-using--time.ly b/input/lsr/connecting/how-to-improve-automatic-beam-groups-when-frequently-using--time.ly
new file mode 100644 (file)
index 0000000..220a8a7
--- /dev/null
@@ -0,0 +1,36 @@
+%%  Do not edit this file; it is auto-generated from LSR!
+\version "2.11.23"
+
+\header { texidoc = "
+Groups of beamed notes can be made by setting the subdivideBeams
+property. However, if you have \"\time\"-statements inside your score,
+you'll need to set the beatLength again after each \time-statement
+(that has a denominator that is not 8).
+
+This happens because the \"\time\"-statements reset the
+beatLength-value to the denominator of the time signature.     So, if
+you have many meter-changes, you can use the following function named
+\"\timenb #X #Y\" instead of \"\time X/Y\".
+" }
+
+% timenb sets TIMEesignature and measure length, but Not Beatlength
+timenb = #(define-music-function (parser location x y ) (integer? integer?) #{
+         \set Staff.timeSignatureFraction = #(cons $x $y)
+         \set Score.measureLength = #(ly:make-moment $x $y)
+#})
+
+\new Staff {
+  \relative c''
+  {
+    \set Score.beatLength = #(ly:make-moment 1 8)
+    \set subdivideBeams = ##t
+
+    \timenb #3 #8 c16.[ c32 c16. c32 c16. c32] |
+    \timenb #5 #8 d8[ d] d16.[ d32  d16. d32 d8] |
+    \timenb #3 #4 e8[ e16. e32] e16.[ e32 e16. e32] e16.[ f32 f8] |
+    \timenb #2 #4
+    g16.[ g32 g16. g32] g16.[ g32 g16. g32] |
+    
+  }
+}
+
diff --git a/input/lsr/education/putting-parentheses-around-a-note.ly b/input/lsr/education/putting-parentheses-around-a-note.ly
new file mode 100644 (file)
index 0000000..cdc3348
--- /dev/null
@@ -0,0 +1,14 @@
+%%  Do not edit this file; it is auto-generated from LSR!
+\version "2.11.23"
+
+\header { texidoc = "
+As children do not always have hands large enough, say, to plays
+octavas when studying piano, or anything else, it can be useful to add
+parentheses around a low note for example. In this snippet, the
+\"parenthesized\" note is made a bit smaller using the \tweak command
+on the #'font-size property.
+" }
+
+{ \clef bass
+< f \parenthesize \tweak #'font-size #-1 f, >2
+}
diff --git a/input/lsr/education/white-text-on-black-background.ly b/input/lsr/education/white-text-on-black-background.ly
new file mode 100644 (file)
index 0000000..af22af8
--- /dev/null
@@ -0,0 +1,11 @@
+%%  Do not edit this file; it is auto-generated from LSR!
+\version "2.11.23"
+
+\header { texidoc = "
+If you want to print some white text on black background, here's the
+trick:
+" }
+
+{
+       g1^\markup { \combine \filled-box #'(-.3 . 6.8) #'(-.3 . 1.8) #0 \with-color #white White}
+}
diff --git a/input/lsr/guitar/faking-a-hammer-in-tablatures.ly b/input/lsr/guitar/faking-a-hammer-in-tablatures.ly
new file mode 100644 (file)
index 0000000..70afad6
--- /dev/null
@@ -0,0 +1,19 @@
+%%  Do not edit this file; it is auto-generated from LSR!
+\version "2.11.23"
+
+\header { texidoc = "
+A hammer in tablature can be faked with slurs.  
+" }
+
+\score{
+\context TabStaff
+  <<
+       \relative c''{
+               c(d)
+               d(d)
+               d(c)
+  }
+  >>
+}
+
+%%some weird letters are displayed in the Staff; can't reproduce it at home... --vv
diff --git a/input/lsr/other/all-headers.ly b/input/lsr/other/all-headers.ly
new file mode 100644 (file)
index 0000000..abfeee4
--- /dev/null
@@ -0,0 +1,48 @@
+%%  Do not edit this file; it is auto-generated from LSR!
+\version "2.11.23"
+
+\header { texidoc = "
+A demonstration of all headers.
+" }
+
+\header {
+copyright = "copyright"
+title = "title"
+subtitle = "subtitle"
+composer = "composer"
+arranger = "arranger"
+instrument = "instrument"
+metre = "metre"
+opus = "opus"
+piece = "piece"
+poet = "poet"
+texidoc = "All header fields with special meanings."
+  copyright = "public domain"
+  enteredby = "jcn"
+  source = "urtext"
+
+}
+
+
+\score {
+  \relative c'' { c1 c1 c1 c1 }
+}
+
+\score {
+        \relative c'' { c1 c1 c1 c1 }
+       
+       \header {
+
+       title = "localtitle"
+       subtitle = "localsubtitle"
+       composer = "localcomposer"
+       arranger = "localarranger"
+       instrument = "localinstrument"
+       metre = "localmetre"
+       opus = "localopus"
+       piece = "localpiece"
+       poet = "localpoet"
+       copyright = "localcopyright"
+       }
+}
+
diff --git a/input/lsr/other/engravers-one-by-one.ly b/input/lsr/other/engravers-one-by-one.ly
new file mode 100644 (file)
index 0000000..c950efe
--- /dev/null
@@ -0,0 +1,278 @@
+%%  Do not edit this file; it is auto-generated from LSR!
+\version "2.11.23"
+
+\header { texidoc = "
+The notation problem, creating a certain symbol, is handled by plugins.
+Each plugin is called an Engraver. In this example, engravers are
+switched on one by one, in the following order:
+
+- note heads
+
+
+- staff symbol,
+
+
+- clef,
+
+
+- stem,
+
+
+- beams, slurs, accents,
+
+
+- accidentals, bar lines, time signature, and key signature.
+
+
+
+Engravers are grouped. For example, note heads, slurs, beams etc. form
+a Voice context. Engravers for key, accidental, bar, etc. form a Staff
+context.
+
+
+You may only see the first example in this document; please download
+this snippet and run it from your own computer. 
+" }
+
+%% sample music
+topVoice =  \relative c' {
+  \key d\major
+  es8([ g] a[ fis])
+  b4
+  b16[-. b-. b-. cis-.]
+  d4->
+}
+
+botVoice =  \relative c' {
+  \key d\major
+  c8[( f] b[ a)]
+  es4
+  es16[-. es-. es-. fis-.]
+  b4->
+}
+
+hoom =  \relative c {
+  \key d \major
+  \clef bass
+  g8-. r
+  r4 
+  fis8-.
+  r8
+  r4
+  b'4->
+}
+
+pah =  \relative c' {
+  r8 b-.
+  r4
+  r8 g8-.
+  r16 g-. r8
+  \clef treble
+  fis'4->
+}
+
+%
+% setup for Request->Element conversion. Guru-only
+%
+
+MyStaff =\context {
+  \type "Engraver_group"
+  \name Staff
+
+  \description "Handles clefs, bar lines, keys, accidentals.  It can contain
+@code{Voice} contexts."
+
+  
+  \consists "Output_property_engraver" 
+  
+  \consists "Font_size_engraver"
+
+  \consists "Volta_engraver"
+  \consists "Separating_line_group_engraver"   
+  \consists "Dot_column_engraver"
+
+  \consists "Ottava_spanner_engraver"
+  \consists "Rest_collision_engraver"
+  \consists "Piano_pedal_engraver"
+  \consists "Piano_pedal_align_engraver"
+  \consists "Instrument_name_engraver"
+  \consists "Grob_pq_engraver"
+  \consists "Forbid_line_break_engraver"
+  \consists "Axis_group_engraver"
+
+  \consists "Pitch_squash_engraver"
+
+  \override VerticalAxisGroup #'minimum-Y-extent = #'(-6 . 6)
+  extraVerticalExtent = ##f
+  verticalExtent = ##f 
+  localKeySignature = #'()
+
+                               % explicitly set instrument, so we don't get 
+                               % weird effects when doing instrument names for
+                               % piano staves
+
+  instrumentName = #'()
+  shortInstrumentName = #'()
+  
+  \accepts "Voice"
+}
+
+
+MyVoice = \context {
+  \type "Engraver_group"
+  \name Voice
+
+  \description "
+    Corresponds to a voice on a staff.  This context handles the
+    conversion of dynamic signs, stems, beams, super- and subscripts,
+    slurs, ties, and rests.
+
+    You have to instantiate this explicitly if you want to have
+    multiple voices on the same staff."
+
+  localKeySignature = #'()
+  \consists "Font_size_engraver"
+  
+                               % must come before all
+  \consists "Output_property_engraver" 
+  \consists "Arpeggio_engraver"
+  \consists "Multi_measure_rest_engraver"
+  \consists "Text_spanner_engraver"
+  \consists "Grob_pq_engraver"
+  \consists "Note_head_line_engraver"
+  \consists "Glissando_engraver"
+  \consists "Ligature_bracket_engraver"
+  \consists "Breathing_sign_engraver"
+                               % \consists "Rest_engraver"
+  \consists "Grace_beam_engraver"
+  \consists "New_fingering_engraver"
+  \consists "Chord_tremolo_engraver"
+  \consists "Percent_repeat_engraver"
+  \consists "Slash_repeat_engraver"
+
+%{
+  Must come before text_engraver, but after note_column engraver.
+
+%}
+  \consists "Text_engraver"
+  \consists "Dynamic_engraver"
+  \consists "Fingering_engraver"
+
+  \consists "Script_column_engraver"
+  \consists "Rhythmic_column_engraver"
+  \consists "Cluster_spanner_engraver"
+  \consists "Tie_engraver"
+  \consists "Tie_engraver"
+  \consists "Tuplet_engraver"
+  \consists "Note_heads_engraver"
+  \consists "Rest_engraver"
+
+  \consists "Skip_event_swallow_translator"
+}
+
+
+\score {
+  \topVoice
+  \layout {
+    \context { \MyStaff }
+    \context { \MyVoice }
+  }
+}
+
+
+MyStaff = \context {
+    \MyStaff
+    \consists "Staff_symbol_engraver"
+}
+
+\score {
+  \topVoice
+  \layout {
+      \context { \MyStaff }
+      \context { \MyVoice }
+            }
+}
+
+MyStaff = \context {
+    \MyStaff
+    \consists "Clef_engraver"
+    \remove "Pitch_squash_engraver"
+}
+
+\score {
+  \topVoice
+  \layout {
+    \context { \MyStaff }
+    \context { \MyVoice }
+  }
+}
+
+MyVoice = \context {
+  \MyVoice
+  \consists "Stem_engraver"
+}
+
+\score {
+  \topVoice
+  \layout {
+    \context { \MyStaff }
+    \context { \MyVoice }
+  }
+}
+
+MyVoice = \context {
+  \MyVoice
+  \consists "Beam_engraver"
+}
+
+\score {
+  \topVoice
+  \layout {
+    \context { \MyStaff }
+    \context { \MyVoice }
+  }
+}
+
+MyVoice= \context {
+  \MyVoice
+  \consists "Phrasing_slur_engraver"
+  \consists "Slur_engraver"
+  \consists "Script_engraver"
+}
+
+
+\score {
+  \topVoice
+  \layout {
+    \context { \MyStaff }
+    \context { \MyVoice }
+  }
+}
+
+MyStaff = \context {
+  \MyStaff
+  \consists "Bar_engraver"
+  \consists "Time_signature_engraver"
+}
+
+\score {
+  \topVoice
+  \layout {
+    \context { \MyStaff }
+    \context { \MyVoice }
+  }
+}
+
+MyStaff = \context {
+  \MyStaff
+  \consists "Accidental_engraver"    
+  \consists "Key_engraver"
+}
+\score {
+  \topVoice
+  \layout {
+    \context { \MyStaff }
+    \context { \MyVoice }
+  }
+}
+
diff --git a/input/lsr/other/removing-time-signature-and-bar-lines.ly b/input/lsr/other/removing-time-signature-and-bar-lines.ly
new file mode 100644 (file)
index 0000000..9d73b40
--- /dev/null
@@ -0,0 +1,27 @@
+%%  Do not edit this file; it is auto-generated from LSR!
+\version "2.11.23"
+
+\header { texidoc = "
+Engravers can be removed one by one. Here, the time signature and bar
+lines  have been removed.
+
+
+" }
+
+\score {
+   \relative c'' {
+    a b c d
+    d c b a
+  }
+  \layout {
+    raggedright = ##t
+    \context {
+      \Staff
+      whichBar = #""
+      \remove "Time_signature_engraver"
+    }
+  }
+}
+
+
+
diff --git a/input/lsr/pitch/combining-two-parts-on-the-same-staff.ly b/input/lsr/pitch/combining-two-parts-on-the-same-staff.ly
new file mode 100644 (file)
index 0000000..3569f3f
--- /dev/null
@@ -0,0 +1,74 @@
+%%  Do not edit this file; it is auto-generated from LSR!
+\version "2.11.23"
+
+\header { texidoc = "
+The part combiner tool ( \partcombine command ) allows you to combine
+different parts on a same Staff. You can choose whether you want or
+don't want to add texts such as \"solo\" or \"a2\", by defining the
+printPartCombineTexts property.
+
+For vocal scores (hymns), there is no need to add solo/a2 texts, so
+they should be switched off. However, you'd better not use it if there
+are any solos, as they won't be indicated. In such cases, you may
+simply wan't to use standard LilyPond polyphony.
+
+This snippet presents the three ways two parts can be printed on a same
+staff : standard polyphony, \partcombine whitout texts, and
+\partcombine with texts.
+
+
+" }
+
+musicUp = {     \time 4/4
+                       \relative c'' {
+                               a4 c4.(g8) a4 |
+                               g4 e' g,( a8 b) | 
+                               c b a2.
+                       }
+}
+
+musicDown = {
+                       \relative c'' {
+                               g4 e4.(d8) c4 |
+                               r2 g'4( f8 e) |
+                               d2 a
+                       }
+}
+\score{
+       \new Staff {
+               \set Staff.instrumentName = "Standard polyphony  "
+               << \musicUp  \\ \musicDown >>
+       }
+       \layout{ 
+       indent = 6.0\cm 
+       }
+}
+
+\score{
+       \context Staff {
+                       \set Staff.instrumentName = "PartCombine without texts  "
+                       \partcombine \musicUp \musicDown
+       }
+       \layout{
+               indent = 6.0\cm
+               \context {
+                       \Voice
+                       printPartCombineTexts = ##f
+               }
+       }
+}
+
+\score{
+       \context Staff {
+                       \set Staff.instrumentName = "PartCombine with texts  "
+                       \partcombine \musicUp \musicDown
+       }
+       \layout{
+               indent = 6.0\cm
+               \context {
+                       \Voice
+                       printPartCombineTexts = ##t
+               }
+       }
+}
+
diff --git a/input/lsr/pitch/preventing-stem-extension.ly b/input/lsr/pitch/preventing-stem-extension.ly
new file mode 100644 (file)
index 0000000..731a76e
--- /dev/null
@@ -0,0 +1,30 @@
+%%  Do not edit this file; it is auto-generated from LSR!
+\version "2.11.23"
+
+\header { texidoc = "
+Extending stems to the center line may be prevented using
+@code{no-stem-extend}.
+
+
+" }
+
+\score { 
+  \context Voice \relative c {
+       \context Staff <<
+               \new Voice { 
+                       f2 f8 g a b 
+                       \override Stem  #'no-stem-extend = ##t
+                       f2 f8 g a b
+               }
+               \new Voice { 
+                       c''2 c8 b a g
+                       \override Stem  #'no-stem-extend = ##t
+                       c2 c8 b a g
+               }
+       >>
+       
+  }
+
+}
+
+
diff --git a/input/lsr/pitch/rest-styles.ly b/input/lsr/pitch/rest-styles.ly
new file mode 100644 (file)
index 0000000..c14c927
--- /dev/null
@@ -0,0 +1,39 @@
+%%  Do not edit this file; it is auto-generated from LSR!
+\version "2.11.23"
+
+\header { texidoc = "
+Rests may be used in various styles.
+
+
+
+" }
+
+\layout {
+    indent = 0.0
+    raggedright = ##t
+}
+
+\context Staff \relative c {
+    \set Score.timing = ##f
+    \override Staff.Rest  #'style = #'mensural
+    r\maxima^\markup \typewriter { mensural }
+    r\longa r\breve r1 r2 r4 r8 r16 r32 r64 r128 r128
+    \bar "" 
+
+    \override Staff.Rest  #'style = #'neomensural
+    r\maxima^\markup \typewriter { neomensural }
+    r\longa r\breve r1 r2 r4 r8 r16 r32 r64 r128 r128
+    \bar "" 
+
+    \override Staff.Rest  #'style = #'classical
+    r\maxima^\markup \typewriter { classical }
+    r\longa r\breve r1 r2 r4 r8 r16 r32 r64 r128 r128
+    \bar ""
+    
+    \override Staff.Rest  #'style = #'default
+    r\maxima^\markup \typewriter { default }
+    r\longa r\breve r1 r2 r4 r8 r16 r32 r64 r128 r128
+    
+}
+
+
diff --git a/input/lsr/scheme/generating-random-notes.ly b/input/lsr/scheme/generating-random-notes.ly
new file mode 100644 (file)
index 0000000..b51fc6c
--- /dev/null
@@ -0,0 +1,25 @@
+%%  Do not edit this file; it is auto-generated from LSR!
+\version "2.11.23"
+
+\header { texidoc = "
+This Scheme-based snippet allows you to generate 256 random notes based
+on the current time (or any randomish number you might wish to specify
+instead, so you can obtain the same random notes each time): i.e. to
+get different random notes patterns, just change this number.
+" }
+
+\score {
+{ #(let ((random-state (seed->random-state (current-time))))
+    (ly:export
+     (make-music 'SequentialMusic 'elements
+      (map (lambda x
+           (let ((idx (random 12 random-state)))
+            (make-music 'EventChord
+             'elements (list (make-music 'NoteEvent
+                              'duration (ly:make-duration 2 0 1 1)
+                              'pitch (ly:make-pitch (quotient idx 7)
+                                      (remainder idx 7)
+                                      0))))))
+       (make-list 256)))))
+   }
+}
diff --git a/input/lsr/staff/changing-the-staff-size.ly b/input/lsr/staff/changing-the-staff-size.ly
new file mode 100644 (file)
index 0000000..4b4c32c
--- /dev/null
@@ -0,0 +1,21 @@
+%%  Do not edit this file; it is auto-generated from LSR!
+\version "2.11.23"
+
+\header { texidoc = "
+In order to change staff sizes, both @code{staff-space} and
+@code{fontSize} must be scaled. 
+" }
+
+\relative c' <<
+%    \new Staff \relative c'' { \dynamicDown c4 \ff c c c }
+    \new Staff \with {
+       fontSize = #-3
+       \override StaffSymbol #'staff-space = #(magstep -3)
+    } {
+       \clef bass
+       c8 c c c  c c c c
+    }
+>>
+
+
+
diff --git a/input/lsr/staff/staff-containers.ly b/input/lsr/staff/staff-containers.ly
new file mode 100644 (file)
index 0000000..d97f091
--- /dev/null
@@ -0,0 +1,63 @@
+%%  Do not edit this file; it is auto-generated from LSR!
+\version "2.11.23"
+
+\header { texidoc = "
+In this preliminary test of a modern score, the staff lines are washed
+out temporarily. This is done by making a tuned @code{StaffContainer},
+which @code{\skip}s some notes without printing lines either and
+creates a @code{\new Staff} then in order to create the lines again.
+(Be careful if you use this; it has been done by splitting the grouping
+@code{Axis_group_engraver} and creating functionality into  separate
+contexts, but the clefs and time signatures may not do what you would
+expect.)
+
+    
+
+" }
+
+\score  {
+     \relative c'' <<
+       \new StaffContainer {
+
+           %% need << >>, otherwise we descend to the voice inside SA  
+           << \new Staff { c4 c4 } >>
+           \skip 4  % s4 would create staff.
+           
+           << \new Staff { b4 b4 } >> 
+       }
+       \new StaffContainer {
+           \skip 4
+           << \context Staff { e d f \bar ":|" } >>
+           \skip 4
+       }
+    >>
+
+    \layout {
+       \context {
+           \Score
+           \accepts StaffContainer
+           \denies Staff
+       }
+       \context {
+           \type Engraver_group
+           \consists Clef_engraver
+           \consists Time_signature_engraver
+           \consists Separating_line_group_engraver
+           \consists "Axis_group_engraver"
+           \accepts "Staff"
+           
+           \name StaffContainer
+       }
+       \context {
+           \Staff
+           \remove Axis_group_engraver
+           \remove Separating_line_group_engraver
+           \remove Clef_engraver
+           \remove Time_signature_engraver
+       }
+       raggedright=##t
+    }
+}
+
+
+
diff --git a/input/lsr/text/creating-text-spanners.ly b/input/lsr/text/creating-text-spanners.ly
new file mode 100644 (file)
index 0000000..26fb939
--- /dev/null
@@ -0,0 +1,42 @@
+%%  Do not edit this file; it is auto-generated from LSR!
+\version "2.11.23"
+
+\header { texidoc = "
+The \startTextSpan and \stopTextSpan commands give you the ability to
+create text spanners as easily as pedals indications or octavations.
+Override some properties of the TextSpanner object to modify its
+output.
+" }
+
+\relative c''{
+    \override TextSpanner  #'edge-text = #'("bla" . "blu")
+    a \startTextSpan
+    b c 
+    a \stopTextSpan
+
+    \override TextSpanner  #'dash-period = #2
+    \override TextSpanner  #'dash-fraction = #0.0
+    a \startTextSpan
+    b c 
+    a \stopTextSpan
+
+    \revert TextSpanner #'style
+    \override TextSpanner  #'style = #'dashed-lineNone \override TextSpanner #'bound-details #'left #'text = \markup { \draw-line #'(0 . 1) }
+None \override TextSpanner #'bound-details #'right #'text = \markup { \draw-line #'(0 . -2) }
+
+    a \startTextSpan
+    b c 
+    a \stopTextSpan
+
+
+    \set Staff.middleCPosition = #-13
+
+    \override TextSpanner  #'dash-period = #10
+    \override TextSpanner  #'dash-fraction = #.5
+    \override TextSpanner  #'thickness = #10
+    a \startTextSpan
+    b c 
+    a \stopTextSpan
+    \set Staff.middleCPosition = #-6   
+}
+
diff --git a/input/lsr/text/how-to-bottom-align-texts-with-different-vertical-extents.ly b/input/lsr/text/how-to-bottom-align-texts-with-different-vertical-extents.ly
new file mode 100644 (file)
index 0000000..541a591
--- /dev/null
@@ -0,0 +1,22 @@
+%%  Do not edit this file; it is auto-generated from LSR!
+\version "2.11.23"
+
+\header { texidoc = "
+Some letters imply smaller vertical extents than the others; if you
+have, below your staff, two markups with different vertical extents
+(e.g. one text with letters \"t,h,l and/or UPPER CASE\" and one text
+with \"a, c, e, n or m\"), LilyPond will align them to the top by
+default, thus making it look a bit messy. Therefore, you need to add
+invisible ascender letters using the \transparent command to make it
+right.
+" }
+
+\new Staff {
+  \override TextScript #'staff-padding = #4
+  \override TextScript #'self-alignment-X = #center
+  \time 2/4
+  c'4_\markup { \transparent "A" "WRONG" \transparent "A" }
+  c'4_\markup { "case" }
+  c'4_\markup { \transparent "A" "RIGHT" \transparent "A" }
+  c'4_\markup { \transparent "A" "case" \transparent "A" }
+}
diff --git a/input/lsr/vocal/aligning-lyrics.ly b/input/lsr/vocal/aligning-lyrics.ly
new file mode 100644 (file)
index 0000000..ab75df3
--- /dev/null
@@ -0,0 +1,15 @@
+%%  Do not edit this file; it is auto-generated from LSR!
+\version "2.11.23"
+
+\header { texidoc = "
+You can specify different horizontal alignment for your lyrics, by
+overriding the #'self-alignment-X property of the LyricText object. #-1
+is left, #0 is center and #1 is right; however, you can use #LEFT,
+#CENTER and #RIGHT as well.
+" }
+
+\relative c'' {
+c1 c c}
+\addlyrics {\once \override LyricText #'self-alignment-X = #LEFT "This is left-aligned" 
+\once \override LyricText #'self-alignment-X = #CENTER "This is centered" 
+\once \override LyricText #'self-alignment-X = #1 "this is right-aligned"  }
diff --git a/input/test/engraver-contexts.ly b/input/test/engraver-contexts.ly
deleted file mode 100644 (file)
index c65e0ab..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-\version "2.10.0"
-\header {
-    
-texidoc ="In polyphonic notation, many voices can share a staff: In
-this situation, the accidentals and staff are shared, but the stems,
-slurs, beams, etc. are private to each voice. Hence, engravers should
-be grouped. The engravers for note head, stems, slurs, etc. go into a
-group called ``Voice context'', while the engravers for key,
-accidental, bar, etc. go into a group called ``Staff context''. In the
-case of polyphony, a single Staff context contains more than one Voice
-context. Similarly, more Staff contexts can be put into a single Score
-context. "
-
-}
-
-\include "engraver-example.ily"
-
-\score {
-\context Staff << \topVoice \\ \botVoice >>
-}
-
-
-\score {
-<< \new Staff << \topVoice \\ \botVoice >>
-\new Staff << \pah \\ \hoom >>
-  >>
-}
-
-
-