]> git.donarmstrong.com Git - lilypond.git/commitdiff
First phase of input/test/ -> LSR change.
authorGraham Percival <graham@percival-music.ca>
Mon, 30 Apr 2007 08:04:23 +0000 (01:04 -0700)
committerGraham Percival <graham@percival-music.ca>
Mon, 30 Apr 2007 08:04:23 +0000 (01:04 -0700)
24 files changed:
input/lsr/ancient/ancient-fonts.ly [new file with mode: 0644]
input/lsr/ancient/mensural-ligatures.ly [new file with mode: 0644]
input/lsr/ancient/mensural-note-heads.ly [new file with mode: 0644]
input/lsr/connecting/altering-the-number-of-stems-in-a-beam.ly [new file with mode: 0644]
input/lsr/connecting/alternating-beam-directions.ly [new file with mode: 0644]
input/lsr/connecting/controlling-manually-beam-positions.ly [new file with mode: 0644]
input/lsr/connecting/overriding-the-automatic-beamer.ly [new file with mode: 0644]
input/lsr/expressive/setting-the-control-points-of-a-slur-manually.ly [new file with mode: 0644]
input/lsr/expressive/setting-the-minimum-length-of-a-slur-to-separate-notes.ly [new file with mode: 0644]
input/lsr/guitar/fret-diagrams.ly [new file with mode: 0644]
input/lsr/scheme/adding-extra-fingering-with-scheme.ly [new file with mode: 0644]
input/lsr/scheme/adding-staccato-dots.ly [new file with mode: 0644]
input/lsr/scheme/drawing-boxes-around-grobs.ly [new file with mode: 0644]
input/lsr/scheme/engraving-music-using-scheme-expressions.ly [new file with mode: 0644]
input/lsr/scheme/engraving-symmetric-or-palindromical-music.ly [new file with mode: 0644]
input/lsr/staff/adding-an-extra-staff.ly [new file with mode: 0644]
input/lsr/staff/changing-the-number-of-lines-in-a-staff.ly [new file with mode: 0644]
input/lsr/staff/displaying-bar-numbers-on-all-measures.ly [new file with mode: 0644]
input/lsr/staff/inserting-bar-lines-everywhere.ly [new file with mode: 0644]
input/lsr/staff/making-bar-numbers-appear-at-regular-intervals.ly [new file with mode: 0644]
input/lsr/staff/naming-a-whole-grandstaff.ly [new file with mode: 0644]
input/lsr/staff/removing-the-key-signature-at-the-end-of-a-line.ly [new file with mode: 0644]
input/lsr/text/embedding-postscript.ly [new file with mode: 0644]
input/lsr/vocal/displaying-bar-lines-on-lyrics.ly [new file with mode: 0644]

diff --git a/input/lsr/ancient/ancient-fonts.ly b/input/lsr/ancient/ancient-fonts.ly
new file mode 100644 (file)
index 0000000..5347e73
--- /dev/null
@@ -0,0 +1,295 @@
+%%  Do not edit this file; it is auto-generated from LSR!
+\version "2.10.12"
+
+\header { texidoc = "
+Here are shown many (all?) of the symbols that are included in
+LilyPond's support of ancient notation.
+
+
+" }
+
+upperStaff = \context GregorianStaff = "upperStaff" <<
+  \context GregorianVoice <<
+    \set Score.timing = ##f
+%   \set Score.forceAccidental = ##t %%%%%%%% FIXME: what happened to this property?
+
+    \override Staff.StaffSymbol  #'line-count = #4
+
+     \transpose c c {
+       \override Staff.KeySignature  #'style = #'vaticana
+       \override Staff.Accidental  #'style = #'vaticana
+       \override NoteHead  #'style = #'vaticana.punctum
+       \key es \major
+       \clef "vaticana-fa2"
+       c!1 des! e! f! ges!
+
+       \override NoteHead  #'style = #'vaticana.inclinatum
+       a! b! ces'
+       \override Staff.BarLine  #'bar-size = #3.0 \bar "|"
+%      \break % 1 (8*1)
+
+       \override NoteHead  #'style = #'vaticana.quilisma
+       b! des'! ges! fes!
+       \breathe
+       \clef "vaticana-fa1"
+       \override NoteHead  #'style = #'vaticana.plica
+       es d
+       \override NoteHead  #'style = #'vaticana.reverse-plica
+       c d
+       \override Staff.BarLine  #'bar-size = #3.0 \bar "|"
+%      \break %2 (8*1)
+
+       \override NoteHead  #'style = #'vaticana.punctum-cavum
+       es f
+       \override NoteHead  #'style = #'vaticana.lpes
+       g as
+       \override NoteHead  #'style = #'vaticana.upes
+       bes as
+       \override NoteHead  #'style = #'vaticana.vupes
+       g f
+       \override NoteHead  #'style = #'vaticana.linea-punctum
+       \override Staff.BarLine  #'bar-size = #2.0 \bar "|"
+%      \break % 3 (8*1)
+
+       es d
+       \override NoteHead  #'style = #'vaticana.epiphonus
+       c d
+       \override NoteHead  #'style = #'vaticana.cephalicus
+       es f
+
+       \override Staff.KeySignature  #'style = #'medicaea
+       \override Staff.Accidental  #'style = #'medicaea
+       \override Staff.Custos  #'style = #'medicaea
+       \override NoteHead  #'style = #'medicaea.punctum
+       \clef "medicaea-fa2"
+       ces! des!
+       \override Staff.BarLine  #'bar-size = #3.0 \bar "|"
+%      \break % 4 (8*1)
+
+       e! f! ges!
+       \clef "medicaea-do2"
+       \override NoteHead  #'style = #'medicaea.inclinatum
+       a! b! ces'!
+       \override NoteHead  #'style = #'medicaea.virga
+       b! a!
+       \override Staff.BarLine  #'bar-size = #3.0 \bar "|"
+%      \break % 5 (8*1)
+
+       ges! fes!
+       \clef "medicaea-fa1"
+       \override NoteHead  #'style = #'medicaea.rvirga
+       e! des! ces!
+
+       \override Staff.KeySignature  #'style = #'hufnagel
+       \override Staff.Accidental  #'style = #'hufnagel
+       \override Staff.Custos  #'style = #'hufnagel
+       \override NoteHead  #'style = #'hufnagel.punctum
+       \clef "hufnagel-fa2"
+       ces! des! es!
+       \override Staff.BarLine  #'bar-size = #3.0 \bar "|"
+%      \break % 6 (8*1)
+
+       fes! ges!
+       \clef "hufnagel-do2"
+       \override NoteHead  #'style = #'hufnagel.lpes
+       as! bes! ces'!
+       \override NoteHead  #'style = #'hufnagel.virga
+       bes! as!
+       \override Staff.BarLine  #'bar-size = #3.0 \bar "|"
+%      \break % 7 (8*1)
+
+       ges! fes!
+       \clef "hufnagel-do-fa"
+       \override NoteHead  #'style = #'hufnagel.punctum
+       es! des! ces! des! es! fes!
+       \bar "||"
+%      \break % 8 (8*1)
+
+       s32*1
+%      \break % 12 (32*1)
+    }
+  >>
+>>
+
+lowerStaff = \context MensuralStaff = "lowerStaff" <<
+  \context MensuralVoice <<
+    
+    % this is broken until further notice -- see refman
+    % \override Staff.StaffSymbol  #'line-count = #5
+    \applyOutput #'Staff #(outputproperty-compatibility (make-type-checker 'staff-symbol-interface) 'line-count 5)
+
+     \transpose c c {
+       \set autoBeaming = ##f
+       \override NoteHead  #'style = #'neomensural
+       \override Rest  #'style = #'neomensural
+       \key a \major
+
+% FIXME: lily crashes on some (invalid?) ligatures with:
+%   ERROR: In procedure gh_scm2int:
+%   ERROR: Wrong type argument in position 1: ()
+
+% FIXME: lily emits "Programming error: Infinity or NaN encountered"
+% on many ligatures such as BB.
+
+       cis'1 d'\breve gis'\breve e'\breve \[ e'\longa fis'\longa \]
+       \set Staff.forceClef = ##t
+       \clef "neomensural-c2"
+       cis1
+       \bar "|"
+%      \break % 2 (16*1)
+
+       \[ g\breve dis''\longa \]
+       b\breve \[ a\longa d\longa \]
+       \clef "petrucci-c2"
+%      \break % 4 (16*1)
+
+       fis1 ces1
+       \clef "petrucci-c2"
+       r\longa
+       \set Staff.forceClef = ##t
+       \clef "mensural-c2"
+       r\breve
+       \bar "|"
+%      \break % 5 (8*1)
+
+       r2
+       \clef "mensural-g"
+       r4 r8 r16 r16
+       \override NoteHead  #'style = #'mensural
+       \override Stem  #'flag-style = #'mensural
+       \override Stem  #'thickness = #1.0
+       \override Rest  #'style = #'mensural
+       \clef "petrucci-f"
+       c8 b, c16 b, c32 b, c64 b, c64 b,
+       d8 e  d16 e  d32 e  d64 e  d64 e
+       r\longa
+       \set Staff.forceClef = ##t
+       \clef "petrucci-f"
+       r\breve
+       \bar "|"
+%      \break % 6 (8*1)
+
+       r\breve 
+       \clef "mensural-f"
+       % FIXME: must set Stem flag-style to #'neomensural to avoid
+       % segmentation fault on r8/r16/r32.  (Strange: what has
+       % Stem flag-style to do with mensural rests?)
+       \override Stem  #'flag-style = #'neomensural
+       % FIXME: produces warnings about "flag `neomensurald4' (or 3) not found".
+       r2 r4 r8 r16 r16
+       \override Stem  #'flag-style = #'mensural
+       \set Staff.forceClef = ##t
+       \clef "mensural-f"
+       e\breve f g a1
+       \clef "mensural-g"
+%      \break % 7 (8*1)
+
+       \[ bes'!\longa a'!\longa c''!\longa \]
+       e'1 d' c' d' \bar "|"
+       \bar "|"
+%      \break % 9 (16*1)
+
+       bes'!\longa fis'!1 as'!1 ges'!\longa % lig
+       \set Staff.forceClef = ##t
+       \clef "mensural-g"
+       e'2 d' c' \bar "|"
+%      \break % 11 (16*1)
+
+       \set Staff.forceClef = ##t
+       \clef "petrucci-g"
+       c'2 d' e' f'
+       \clef "petrucci-g"
+       g' as'! bes'! cis''!
+       bes'! as'! gis'! fis'!
+       \set Staff.forceClef = ##t
+       \clef "mensural-g"
+       es'! des'! cis'!1 \bar "||"
+%      \break % 12 (8*1)
+    }
+  >>
+>>
+
+\paper {
+       line-thickness = #(/ staff-space 5.0)
+}
+
+\score {
+    \context Score <<
+       \upperStaff
+       \lowerStaff
+    >>
+    \layout {
+% do we want to keep these settings? -gp
+       line-width = 17.25\cm
+       textheight = 26.0\cm
+       indent = 0.0
+       \context {
+           \Score
+           \accepts MensuralStaff
+           \accepts GregorianStaff
+%          timing = ##f %%%%%%%% FIXME: this has no effect
+       }
+       \context {
+           \Voice
+           \name MensuralVoice
+           \alias Voice
+           \remove Ligature_bracket_engraver
+           \consists Mensural_ligature_engraver
+           \override NoteHead #'style = #'mensural
+%          \override Stem #'flag-style = #'mensural %%%%%%%% FIXME: this core dumps
+           \override Stem #'thickness = #1.0
+           \override Rest #'style = #'mensural
+           autoBeaming = ##f
+       }
+       \context {
+           \Voice
+           \name GregorianVoice
+           \alias Voice
+           \remove Ligature_bracket_engraver
+%          \consists Gregorian_ligature_engraver %%%%%%%% TODO: not yet implemented
+           \override NoteHead #'style = #'vaticana.punctum
+           autoBeaming = ##f
+       }
+       \context {
+           \Staff
+           \name MensuralStaff
+           \alias Staff
+           \accepts MensuralVoice
+           \consists Custos_engraver
+           \override TimeSignature #'style = #'mensural
+           \override KeySignature #'style = #'mensural
+           \override Accidental #'style = #'mensural
+           \override Custos #'style = #'mensural
+           \override Custos #'neutral-position = #3
+           \override Custos #'neutral-direction = #-1
+           clefGlyph = #"clefs.petrucci-c2"
+           clefPosition = #-2
+           clefOctavation = #0 
+       }
+       \context {
+           \Staff
+           \name GregorianStaff
+           \alias Staff
+           \accepts GregorianVoice
+           \consists Custos_engraver
+           \remove Time_signature_engraver
+           \override StaffSymbol #'thickness = #2.0
+           \override StaffSymbol #'line-count = #4
+           \override KeySignature #'style = #'vaticana
+           \override Accidental #'style = #'vaticana
+           \override Custos #'style = #'vaticana
+           \override Custos #'neutral-position = #4
+           \override Custos #'neutral-direction = #-1
+           clefGlyph = #"clefs.vaticana-do"
+           clefPosition = #1
+           clefOctavation = #0 
+       }
+       \context {
+           \RemoveEmptyStaffContext
+           \accepts MensuralVoice
+           \accepts GregorianVoice
+        }
+    }
+}
+
+
diff --git a/input/lsr/ancient/mensural-ligatures.ly b/input/lsr/ancient/mensural-ligatures.ly
new file mode 100644 (file)
index 0000000..6b8d634
--- /dev/null
@@ -0,0 +1,85 @@
+%%  Do not edit this file; it is auto-generated from LSR!
+\version "2.10.12"
+
+\header { texidoc = "
+In mensural ligatures, notes with ancient durations are printed in a
+tight manner. 
+" }
+
+% Note that the horizontal alignment of the fermatas is related to the
+% graphical width of the ligatures rather than the musical moment in time.
+% This is intended behaviour.
+
+voice =  \transpose c c' {
+  \set Score.timing = ##f
+  \set Score.defaultBarType = "empty"
+  g\longa c\breve a\breve f\breve d'\longa^\fermata
+  \bar "|"
+  \[
+    g\longa c\breve a\breve f\breve d'\longa^\fermata
+  \]
+  \bar "|"
+  e1 f1 a\breve g\longa^\fermata
+  \bar "|"
+  \[
+    e1 f1 a\breve g\longa^\fermata
+  \]
+  \bar "|"
+  e1 f1 a\breve g\longa^\fermata
+  \bar "||"
+}
+
+\paper {
+    line-thickness = \staff-space / 5.0
+}
+\score {
+    \context ChoirStaff <<
+       \new MensuralStaff <<
+           \context MensuralVoice <<
+               \voice
+           >>
+       >>
+       \new Staff <<
+           \context Voice <<
+               \voice
+           >>
+       >>
+    >>
+    \layout {
+       \context {
+           \Voice
+           \name MensuralVoice
+           \alias Voice
+           \remove Ligature_bracket_engraver
+           \consists Mensural_ligature_engraver
+           \override NoteHead #'style = #'mensural
+       }
+       \context {
+           \Staff
+           \name MensuralStaff
+           \alias Staff
+           \accepts MensuralVoice
+           \consists Custos_engraver
+           \override TimeSignature #'style = #'mensural
+           \override KeySignature #'style = #'mensural
+           \override Accidental #'style = #'mensural
+           \override Custos #'style = #'mensural
+           \override Custos #'neutral-position = #3
+           \override Custos #'neutral-direction = #-1
+           clefGlyph = #"clefs.petrucci-g"
+           clefPosition = #-2
+           clefOctavation = #-0
+       }
+       \context {
+           \RemoveEmptyStaffContext
+           \accepts MensuralVoice
+        }
+       \context {
+           \Score
+           \accepts MensuralStaff
+       }
+    }
+}
+
+
+
diff --git a/input/lsr/ancient/mensural-note-heads.ly b/input/lsr/ancient/mensural-note-heads.ly
new file mode 100644 (file)
index 0000000..03403fa
--- /dev/null
@@ -0,0 +1,18 @@
+%%  Do not edit this file; it is auto-generated from LSR!
+\version "2.10.12"
+
+\header { texidoc = "
+Mensural notes may also have note heads.  
+" }
+
+\score {
+        {
+       \relative c'' {
+               \override NoteHead  #'style = #'mensural
+               c\maxima*1/8
+               c\longa*1/4 c\breve*1/2 c1 c2 c4 c8 
+               }
+       }
+}
+
+
diff --git a/input/lsr/connecting/altering-the-number-of-stems-in-a-beam.ly b/input/lsr/connecting/altering-the-number-of-stems-in-a-beam.ly
new file mode 100644 (file)
index 0000000..f50e78a
--- /dev/null
@@ -0,0 +1,21 @@
+%%  Do not edit this file; it is auto-generated from LSR!
+\version "2.10.12"
+
+\header { texidoc = "
+You can alter the number of stems in a beam.  In this example, two sets
+of four 32nds are joined, as if they were 8th notes.
+
+
+
+" }
+
+\relative {
+  #(override-auto-beam-setting '(end * * * *)  1 4)
+  f32 g a b b a g f
+
+  f32 g a 
+  \set stemRightBeamCount = #1  b
+  \set stemLeftBeamCount = #1 b
+  a g f
+}
+
diff --git a/input/lsr/connecting/alternating-beam-directions.ly b/input/lsr/connecting/alternating-beam-directions.ly
new file mode 100644 (file)
index 0000000..be6c4dc
--- /dev/null
@@ -0,0 +1,32 @@
+%%  Do not edit this file; it is auto-generated from LSR!
+\version "2.10.12"
+
+\header { texidoc = "
+The eighth notes may be seemingly attached to different
+    beams, and the corresponding notes connected by ties. 
+    Such a situation may occur, for example, in the cello suites. 
+" }
+
+wipeNote = {
+    \once \override NoteHead #'transparent = ##t
+    \once \override Stem #'transparent = ##t 
+}
+\layout { raggedright = ##t }
+
+
+\relative c''<< {
+    c8[~
+       \wipeNote
+       c8
+       c8~
+       \wipeNote
+       c
+       c]~
+    \wipeNote
+    c\noBeam
+}\\
+   { s8 c8 [ s c s c] }
+
+   
+>>
+
diff --git a/input/lsr/connecting/controlling-manually-beam-positions.ly b/input/lsr/connecting/controlling-manually-beam-positions.ly
new file mode 100644 (file)
index 0000000..39bae6c
--- /dev/null
@@ -0,0 +1,25 @@
+%%  Do not edit this file; it is auto-generated from LSR!
+\version "2.10.12"
+
+\header { texidoc = "
+Beam positions may be controlled manually, by overriding the
+@code{positions} setting of the @code{Beam} grob.
+
+
+
+" }
+
+\score { 
+    \context Voice \relative c {
+       %% from upper staffline (position 4) to centre (position 0)
+       \override Beam  #'positions = #'(2 . 0)
+        c'8[ c] 
+       
+       %% from center to one above centre (position 2)
+       \override Beam  #'positions = #'(0 . 1)
+        c[ c]
+  }
+
+}
+
+
diff --git a/input/lsr/connecting/overriding-the-automatic-beamer.ly b/input/lsr/connecting/overriding-the-automatic-beamer.ly
new file mode 100644 (file)
index 0000000..3b8ab79
--- /dev/null
@@ -0,0 +1,47 @@
+%%  Do not edit this file; it is auto-generated from LSR!
+\version "2.10.12"
+
+\header { texidoc = "
+The auto-beamer, which can be overridden, will only engrave beams  that
+end before encountering of 
+
+
+* a rest,
+
+* another, manually entered beam, or
+
+* a bar line. 
+
+
+
+The @code{autoBeaming} can also be turned off.
+
+
+
+" }
+
+\score{
+     \relative c''{
+        #(override-auto-beam-setting '(end * * * *)  1 2)
+       \time 2/4
+       % one beam per measure
+       c8 c c c
+       c16 c c c c c c c
+       % from here on consider ending beam every 1/4 note
+       #(override-auto-beam-setting '(end * * * *) 1 4)
+
+       c8 c c c
+       % manually override autobeam with weird beaming
+       c8  c[ c] c
+       c8 c c r
+       c8 c c4
+       r8 c c c
+       % no autobeaming
+       \set autoBeaming = ##f
+       c8 c c c
+    }
+}
+
+
+
diff --git a/input/lsr/expressive/setting-the-control-points-of-a-slur-manually.ly b/input/lsr/expressive/setting-the-control-points-of-a-slur-manually.ly
new file mode 100644 (file)
index 0000000..677f392
--- /dev/null
@@ -0,0 +1,44 @@
+%%  Do not edit this file; it is auto-generated from LSR!
+\version "2.10.12"
+
+\header { texidoc = "
+In extreme cases, you can resort to setting the 
+    @code{control-points} of a slur manually, althout it involves 
+    a lot of trial and error. Be sure to force line breaks at both sides,
+since
+    different horizontal spacing will require rearrangement of the
+    slur. 
+" }
+
+\score {
+     \new PianoStaff
+    <<
+       \context Staff = "up" {
+           \clef bass
+           s1 * 4
+       } 
+       \context Staff = "down" \relative c <<
+           s1*4
+           {
+           \clef bass
+           r4 r8
+           \once\override Slur  #'extra-offset = #'(0 . 6)
+           \once\override Slur  #'control-points =
+           #'((0 . -4) (2 . 0) (60 . 0) (63 . 4))
+           c8( as' f c' as
+
+           % line breaks will mess up this example  
+           \noBreak
+           f c as' f
+           \change Staff = up
+           \clef treble
+           c' as f' c
+           \noBreak
+           as' f c' as
+           f' c as' f c'4)
+       }>>
+    >>
+    \layout {  }
+}
+
+
diff --git a/input/lsr/expressive/setting-the-minimum-length-of-a-slur-to-separate-notes.ly b/input/lsr/expressive/setting-the-minimum-length-of-a-slur-to-separate-notes.ly
new file mode 100644 (file)
index 0000000..55469b8
--- /dev/null
@@ -0,0 +1,17 @@
+%%  Do not edit this file; it is auto-generated from LSR!
+\version "2.10.12"
+
+\header { texidoc = "
+By setting the minimum length of a slur, notes are more separated.  
+" }
+
+\score{
+       \relative c''{
+               \time 2/4
+               \override Slur  #'minimum-length = #40
+               c(c)
+               c~c\break
+               }
+}
+
+
diff --git a/input/lsr/guitar/fret-diagrams.ly b/input/lsr/guitar/fret-diagrams.ly
new file mode 100644 (file)
index 0000000..63cdd24
--- /dev/null
@@ -0,0 +1,54 @@
+%%  Do not edit this file; it is auto-generated from LSR!
+\version "2.10.12"
+
+\header { texidoc = "
+Frets are supported as markup commands. 
+" }
+
+\score {
+    <<
+       \chords {d2 d d s fis fis fis s c c c}
+
+     
+     \context Voice = "mel" {
+% simple D chord
+
+    d'2 ^\markup \fret-diagram-verbose #'((mute 6) (mute 5) (open 4) (place-fret 3 2) (place-fret 2 3) (place-fret 1 2))
+    d' ^\markup \fret-diagram #"6-x;5-x;4-o;3-2;2-3;1-2;"
+    d' ^\markup \fret-diagram-terse #"x;x;o;2;3;2;"
+    r 
+% fis major chord, 3/4 size, fingering labeled below string
+    
+    fis' ^\markup \override #'(size . 0.75) {\override #'(finger-code . below-string){\fret-diagram-verbose #'((place-fret 6 2 1) (barre 6 1 2) (place-fret 5 4 3) (place-fret 4 4 4) (place-fret 3 3 2) (place-fret 2 2 1) (place-fret 1 2 1))}}
+    fis' ^\markup \override #'(finger-code . below-string) {\fret-diagram #"s:0.75;c:6-1-2;6-2-1;5-4-3;4-4-4;3-3-2;2-2-1;1-2-1;"}
+    fis' ^\markup \override #'(size . 0.75) {\override #'(finger-code . below-string){\fret-diagram-terse #"2-1-(;4-3;4-4;3-2;2-1;2-1-);"}}
+    r 
+
+% c major barre chord, fingering labeled on frets
+   c' ^\markup \override #'(dot-color . white) {
+                \override #'(finger-code . in-dot) 
+                \fret-diagram-verbose #'((mute 6) (place-fret 5 3 1) (place-fret 4 5 2) (place-fret 3 5 3) (place-fret 2 5 4) (place-fret 1 3 1) (barre 5 1 3)) }
+   c' ^\markup \override #'(barre-type . straight) \fret-diagram #"f:1;c:5-1-3;6-x;5-3-1;4-5-2;3-5-3;2-5-4;1-3-1;"
+   c' ^\markup  \override #'(dot-radius . 0.35) {
+                \override #'(finger-code . in-dot) {
+                \override #'(dot-color . white) {
+                \fret-diagram-terse #"x;3-1-(;5-2;5-3;5-4;3-1-);"}}}
+   r  
+   
+% c major scale using open strings
+  c' ^\markup \fret-diagram-verbose #'((mute 6) (place-fret 5 3) (open 4) (place-fret 4 2) (place-fret 4 3) (open 3) (place-fret 3 2)  (open 2) (place-fret 2 1) (mute 1))
+  c' ^\markup \fret-diagram #'"6-x;5-3;4-o;4-2;4-3;3-o;3-2;2-o;2-1;1-x;"
+  c' ^\markup \fret-diagram-terse #'"x;3;2 3;o 2;o 1;x;"
+
+% c major scale using no open strings
+  c' ^\markup \fret-diagram-verbose #'((mute 6) (place-fret 5 3) (place-fret 5 5) (place-fret 4 2) (place-fret 4 3) (place-fret 4 5) (place-fret 3 2)  (place-fret 3 4) (place-fret 3 5) (mute 2) (mute 1))
+  c' ^\markup \fret-diagram #'"6-x;5-3;5-5;4-2;4-3;4-5;3-2;3-4;3-5;2-x;1-x;"
+  c' ^\markup \fret-diagram-terse #'"x;3 5;2 3 5;2 4 5;x;x;"
+  
+% g major scale, no open strings, two octaves on six strings, white dots
+  g' ^\markup \override #'(dot-color . white) {\fret-diagram-terse #'"3 5;2 3 5;2 4 5;2 4 5;3 5;2 3;" }
+  r r r}
+    >>
+}
diff --git a/input/lsr/scheme/adding-extra-fingering-with-scheme.ly b/input/lsr/scheme/adding-extra-fingering-with-scheme.ly
new file mode 100644 (file)
index 0000000..f091efc
--- /dev/null
@@ -0,0 +1,42 @@
+%%  Do not edit this file; it is auto-generated from LSR!
+\version "2.10.12"
+
+\header { texidoc = "
+You can add various stuff to notes using @code{make-music}. In this
+example, an extra fingering is attached to a note. 
+
+
+In general, first do a @code{display} of the music you want to create,
+then write a function that will structure the music for you.
+
+
+" }
+
+#(define (make-text-script x) 
+   (make-music 'TextScriptEvent
+               'direction DOWN
+               'text (make-simple-markup x)))
+
+#(define (add-text-script m x)
+   (if (equal? (ly:music-property m 'name) 'EventChord)
+       (set! (ly:music-property m 'elements)
+             (cons (make-text-script x)
+                  (ly:music-property m 'elements)))       
+       (let ((es (ly:music-property m 'elements))
+            (e (ly:music-property m 'element)))
+        (map (lambda (y) (add-text-script y x)) es)
+        (if (ly:music? e)
+            (add-text-script e x))))
+   m)
+
+addScript =
+#(define-music-function (parser location script music )
+                                       ( string? ly:music? )
+               (add-text-script music script))
+
+\score {
+  {
+    \addScript "6" { c'4-3 }
+  }
+}
+
diff --git a/input/lsr/scheme/adding-staccato-dots.ly b/input/lsr/scheme/adding-staccato-dots.ly
new file mode 100644 (file)
index 0000000..cd67102
--- /dev/null
@@ -0,0 +1,38 @@
+%%  Do not edit this file; it is auto-generated from LSR!
+\version "2.10.12"
+
+\header { texidoc = "
+Using @code{make-music}, you can add various stuff to notes. In this
+example staccato dots are added to the notes.  For this simple case, it
+is not necessary to use scm constructs.
+
+
+" }
+
+#(define (make-script x)
+   (make-music 'ArticulationEvent
+               'articulation-type x))
+
+#(define (add-script m x)
+   (if
+     (equal? (ly:music-property m 'name) 'EventChord)
+     (set! (ly:music-property m 'elements)
+           (cons (make-script x)
+                 (ly:music-property m 'elements))))
+   m)
+
+#(define (add-staccato m)
+   (add-script m "staccato"))
+
+addStacc =
+#(define-music-function (parser location music) 
+                                       (ly:music?)
+               (music-map add-staccato music))    
+
+\score {
+  \relative c'' {
+    a b \addStacc { c c } 
+  }
+  \layout{ ragged-right = ##t }
+}
+
diff --git a/input/lsr/scheme/drawing-boxes-around-grobs.ly b/input/lsr/scheme/drawing-boxes-around-grobs.ly
new file mode 100644 (file)
index 0000000..ebd73c5
--- /dev/null
@@ -0,0 +1,28 @@
+%%  Do not edit this file; it is auto-generated from LSR!
+\version "2.10.12"
+
+\header { texidoc = "
+The @code{print-function} can be overridden to draw a box around an
+arbitrary  grob.  
+" }
+
+\relative c''  {
+
+  \override TextScript  #'stencil =
+  #(make-stencil-boxer 0.1 0.3 ly:text-interface::print)
+
+  c'4^"foo"
+
+  \override Stem  #'stencil =
+  #(make-stencil-boxer 0.05 0.25 ly:stem::print)
+
+  \override Score.RehearsalMark  #'stencil =
+  #(make-stencil-boxer 0.15 0.3 ly:text-interface::print)
+  b8
+  \revert Stem #'stencil
+
+
+  c4. c4 \mark "F" c1
+}
+
+
diff --git a/input/lsr/scheme/engraving-music-using-scheme-expressions.ly b/input/lsr/scheme/engraving-music-using-scheme-expressions.ly
new file mode 100644 (file)
index 0000000..1350220
--- /dev/null
@@ -0,0 +1,30 @@
+%%  Do not edit this file; it is auto-generated from LSR!
+\version "2.10.12"
+
+\header { texidoc = "
+You can engrave music using just Scheme expressions. Although those 
+expressions reflect the inner mechanism of LilyPond, they are rather 
+clumsy to use, so avoid them, if possible.  
+" }
+
+#(define (make-note-req p d)
+   (make-music 'NoteEvent
+    'duration d
+    'pitch p))
+
+#(define (make-note elts)
+   (make-music 'EventChord
+    'elements elts))
+
+#(define (seq-music-list elts)
+   (make-music 'SequentialMusic
+    'elements elts))
+
+fooMusic = #(seq-music-list
+             (list (make-note (list (make-note-req (ly:make-pitch 1 0 0) (ly:make-duration 2 0))))
+                   (make-note (list (make-note-req (ly:make-pitch 1 1 0) (ly:make-duration 2 0))))))
+     
+\score { \fooMusic 
+}
+
+
diff --git a/input/lsr/scheme/engraving-symmetric-or-palindromical-music.ly b/input/lsr/scheme/engraving-symmetric-or-palindromical-music.ly
new file mode 100644 (file)
index 0000000..bec3fa7
--- /dev/null
@@ -0,0 +1,47 @@
+%%  Do not edit this file; it is auto-generated from LSR!
+\version "2.10.12"
+
+\header { texidoc = "
+Symmetric, or palindromical music can be produced, first, by printing
+some music, and second, by printing the same music applying a Scheme
+function to reverse the syntax.
+
+
+" }
+
+#(define (reverse-music music)
+  (let* ((elements (ly:music-property music 'elements))
+         (reversed (reverse elements))
+         (e (ly:music-property music 'element))
+         (span-dir (ly:music-property music 'span-direction)))
+
+    (ly:music-set-property! music 'elements reversed)
+
+    (if (ly:music? e)
+        (ly:music-set-property!
+         music 'element
+         (reverse-music e)))
+
+    (if (ly:dir? span-dir)
+        (ly:music-set-property! music 'span-direction (- span-dir)))
+
+    (map reverse-music reversed)
+
+    music))
+
+reverseMusic =
+#(define-music-function (parser location m) (ly:music?)
+               (reverse-music m)
+       )       
+
+music =  \relative c'' { c4 d4( e4 f4 }
+
+\score {
+\context Voice {
+    \music
+    \reverseMusic \music
+  }
+  \layout { ragged-right = ##t}
+}
+
+
diff --git a/input/lsr/staff/adding-an-extra-staff.ly b/input/lsr/staff/adding-an-extra-staff.ly
new file mode 100644 (file)
index 0000000..38d41f1
--- /dev/null
@@ -0,0 +1,31 @@
+%%  Do not edit this file; it is auto-generated from LSR!
+\version "2.10.12"
+
+\header { texidoc = "
+You can add (possibly temporarily) an extra staff after the beginning
+of  a piece.  
+" }
+
+\score {
+       <<
+               \new Staff \relative c''{ c1 c c c c }
+               \new StaffGroup \relative c''{ 
+                       \new Staff 
+                       c1 c
+                       << c1 \new Staff { c1 } >>
+                       c
+               }
+       >>
+       \layout {
+               
+               \context{
+                       \Score
+
+               }
+       }
+}
+
+
+
+
+
diff --git a/input/lsr/staff/changing-the-number-of-lines-in-a-staff.ly b/input/lsr/staff/changing-the-number-of-lines-in-a-staff.ly
new file mode 100644 (file)
index 0000000..416e87d
--- /dev/null
@@ -0,0 +1,32 @@
+%%  Do not edit this file; it is auto-generated from LSR!
+\version "2.10.12"
+
+\header { texidoc = "
+The number of lines in a staff may changed by overriding
+@code{line-count} in the properties of @code{StaffSymbol}.
+
+
+" }
+
+upper = \relative c'' {
+  c1 d e f
+}
+
+lower = \relative c {
+  c1 b a g
+}
+
+\score {
+  \context PianoStaff <<
+    \new Staff <<
+      \upper
+    >>  
+    \new Staff  {
+       \override Staff.StaffSymbol  #'line-count = #4 
+        \clef bass
+        \lower
+    }
+  >>
+
+}
+
diff --git a/input/lsr/staff/displaying-bar-numbers-on-all-measures.ly b/input/lsr/staff/displaying-bar-numbers-on-all-measures.ly
new file mode 100644 (file)
index 0000000..430cdd4
--- /dev/null
@@ -0,0 +1,24 @@
+%%  Do not edit this file; it is auto-generated from LSR!
+\version "2.10.12"
+
+\header { texidoc = "
+By default, bar numbers are printed only in the first measure.  This 
+setting can be overridden, so that bar numbers appear on start of every
+measure.
+
+
+" }
+
+\score{
+    \relative c'{
+       c1 c c
+       \override Score.BarNumber 
+           #'break-visibility = #end-of-line-invisible
+       \break
+       c c c
+    }
+       \layout{ raggedright = ##t }
+}
+
+
+
diff --git a/input/lsr/staff/inserting-bar-lines-everywhere.ly b/input/lsr/staff/inserting-bar-lines-everywhere.ly
new file mode 100644 (file)
index 0000000..a23e297
--- /dev/null
@@ -0,0 +1,17 @@
+%%  Do not edit this file; it is auto-generated from LSR!
+\version "2.10.12"
+
+\header { texidoc = "
+By setting @code{barAlways} and @code{defaultBarType}, barlines may be
+inserted automatically everywhere. 
+" }
+
+\score {
+        \relative c''{
+               \set Score.barAlways = ##t
+               \set Score.defaultBarType = ":|:"
+               c4 c4 c4 c4 }
+       \layout{raggedright = ##t}
+}
+
+
diff --git a/input/lsr/staff/making-bar-numbers-appear-at-regular-intervals.ly b/input/lsr/staff/making-bar-numbers-appear-at-regular-intervals.ly
new file mode 100644 (file)
index 0000000..f870af2
--- /dev/null
@@ -0,0 +1,31 @@
+%%  Do not edit this file; it is auto-generated from LSR!
+\version "2.10.12"
+
+\header { texidoc = "
+If you would like the bar numbers to appear at regular intervals, but
+not starting from measure zero, you can use a context function,
+@code{set-bar-number-visibility}, to set automatically
+@code{barNumberVisibility}, so that the bar numbers appear at regular
+intervals, starting from the measure in which 
+@code{set-bar-number-visibility} is set using @code{\applycontext}.
+
+
+" }
+
+resetBarnum = \context Score \applyContext
+  #(set-bar-number-visibility 4)
+\score {
+    <<
+         \transpose c c'' {
+           \override Score.BarNumber  #'break-visibility =#end-of-line-invisible
+           \override Score.RehearsalMark  #'padding = #2.5
+           \mark "A" \resetBarnum
+           \repeat unfold 10 c1
+           \mark \default \resetBarnum
+           \repeat unfold 8 c
+            \bar "|."
+        }
+    >>
+\layout{ragged-right = ##t}
+}
+
diff --git a/input/lsr/staff/naming-a-whole-grandstaff.ly b/input/lsr/staff/naming-a-whole-grandstaff.ly
new file mode 100644 (file)
index 0000000..2cfc0b9
--- /dev/null
@@ -0,0 +1,22 @@
+%%  Do not edit this file; it is auto-generated from LSR!
+\version "2.10.12"
+
+\header { texidoc = "
+You can have a name for the whole @code{GrandStaff} in addition to 
+individual @code{Staff}s.  
+" }
+
+\score {
+  
+   \context GrandStaff <<
+    \context Staff = "treble"    {
+      \set GrandStaff.instrument = "Violini  "
+      \set Staff.instrument = " vn I" { c''4 }}
+    \context Staff = "bass" { \set Staff.instrument = " vn II" c''4 }>>
+
+
+\layout {
+\context { \GrandStaff \consists "Instrument_name_engraver" }
+}}
+
+
diff --git a/input/lsr/staff/removing-the-key-signature-at-the-end-of-a-line.ly b/input/lsr/staff/removing-the-key-signature-at-the-end-of-a-line.ly
new file mode 100644 (file)
index 0000000..7688dc6
--- /dev/null
@@ -0,0 +1,21 @@
+%%  Do not edit this file; it is auto-generated from LSR!
+\version "2.10.12"
+
+\header { texidoc = "
+According to normal typesetting conventions, LilyPond typesets key
+changes at the end of the line, when the change appears at a line
+break. This example shows how to change this default to only print the
+new key signature at the beginning of the next line.
+
+
+" }
+
+\score {
+   \relative c' {
+    \set Staff.explicitKeySignatureVisibility = #end-of-line-invisible
+    c d e f | g a b c | \break
+    \key d \major
+    d cis b a | g fis e d |
+  }
+}
+
diff --git a/input/lsr/text/embedding-postscript.ly b/input/lsr/text/embedding-postscript.ly
new file mode 100644 (file)
index 0000000..7afcecc
--- /dev/null
@@ -0,0 +1,24 @@
+%%  Do not edit this file; it is auto-generated from LSR!
+\version "2.10.12"
+
+\header { texidoc = "
+By inserting the markup command @code{\postscript}, you can insert
+PostScript directly into the output.
+
+  
+
+" }
+
+\score {
+   \relative c'' {
+    a-\markup { \postscript #"3 4 moveto 5 3 rlineto stroke" }
+     -\markup { \postscript #"[ 0 1 ] 0 setdash 3 5 moveto 5 -3 rlineto stroke " }
+    
+    b-\markup { \postscript #"3 4 moveto 0 0 1 2 8 4 20 3.5 rcurveto stroke" }
+    s2
+    a'1
+  }
+  \layout { linewidth = 70 * 5 \pt }
+}
+
+
diff --git a/input/lsr/vocal/displaying-bar-lines-on-lyrics.ly b/input/lsr/vocal/displaying-bar-lines-on-lyrics.ly
new file mode 100644 (file)
index 0000000..ee92618
--- /dev/null
@@ -0,0 +1,41 @@
+%%  Do not edit this file; it is auto-generated from LSR!
+\version "2.10.12"
+
+\header { texidoc = "
+You can move @code{Bar_engraver} and @code{Span_bar_engraver} to  a
+different engraving context, if you want, for example, bar lines  on
+lyrics. 
+" }
+
+\score {
+    \relative c' \context ChoirStaff <<
+       \new Staff { c1 c1 c1}
+       \lyricmode <<
+           \new Lyrics  { bla1 die bla }
+       >>
+       \new Staff { c1 c1 c1} 
+    >>
+
+
+    \layout  {
+       raggedright = ##t
+       \context {
+           \Lyrics
+           \consists Bar_engraver
+
+
+           %% need procedure, since lyrics doesn't have a staff_sym engraver.
+           \override BarLine #'bar-size-procedure = #(lambda (x) 3.0)
+       }
+       \context{
+           \ChoirStaff
+           \remove "Span_bar_engraver"
+       }
+       \context {
+           \Staff
+           \remove "Bar_engraver"
+       }
+    }
+}
+
+