--- /dev/null
+%% 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
+ }
+ }
+}
+
+
--- /dev/null
+%% 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
+ }
+ }
+}
+
+
+
--- /dev/null
+%% 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
+ }
+ }
+}
+
+
--- /dev/null
+%% 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
+}
+
--- /dev/null
+%% 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] }
+
+
+>>
+
--- /dev/null
+%% 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]
+ }
+
+}
+
+
--- /dev/null
+%% 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
+ }
+
+}
+
+
+
--- /dev/null
+%% 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 { }
+}
+
+
--- /dev/null
+%% 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
+ }
+}
+
+
--- /dev/null
+%% 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}
+ >>
+
+}
--- /dev/null
+%% 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 }
+ }
+}
+
--- /dev/null
+%% 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 }
+}
+
--- /dev/null
+%% 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
+}
+
+
--- /dev/null
+%% 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
+}
+
+
--- /dev/null
+%% 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}
+}
+
+
--- /dev/null
+%% 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
+
+ }
+ }
+}
+
+
+
+
+
--- /dev/null
+%% 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
+ }
+ >>
+
+}
+
--- /dev/null
+%% 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 }
+}
+
+
+
--- /dev/null
+%% 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}
+}
+
+
--- /dev/null
+%% 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}
+}
+
--- /dev/null
+%% 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" }
+}}
+
+
--- /dev/null
+%% 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 |
+ }
+}
+
--- /dev/null
+%% 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 }
+}
+
+
--- /dev/null
+%% 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"
+ }
+ }
+}
+
+