fallback: use coordinate * 2.
* input/no-notation/midi-scales.ly: move from test/
* scm/define-markup-commands.scm (score): remove debugging code.
* input/test/incipit.ly (violin): remove.
* lily/system-start-delimiter.cc (print): only draw system
delimiter to staves that reach up to left bound of the delimiter.
* input/no-notation/embedded-scm.ly: move from test/
* input/test/follow-voice.ly: remove
* input/no-notation/dynamic-absolute-volume.ly: move from test/.
* input/test/count-systems.ly: remove.
* input/regression/baerenreiter-sarabande.ly: move file.
* scm/define-grobs.scm (all-grob-descriptions): use fetaMusic
encoding for accidental.
* Documentation/user/notation.itely (Educational use): new section
2004-07-31 Han-Wen Nienhuys <hanwen@xs4all.nl>
+ * lily/staff-symbol-referencer.cc (get_position): emergency
+ fallback: use coordinate * 2.
+
+ * input/no-notation/midi-scales.ly: move from test/
+
+ * scm/define-markup-commands.scm (score): remove debugging code.
+
+ * input/test/incipit.ly (violin): remove.
+
+ * lily/system-start-delimiter.cc (print): only draw system
+ delimiter to staves that reach up to left bound of the delimiter.
+
+ * input/no-notation/embedded-scm.ly: move from test/
+
+ * input/test/follow-voice.ly: remove
+
+ * input/no-notation/dynamic-absolute-volume.ly: move from test/.
+
+ * input/test/drarn*: remove
+
+ * input/test/count-systems.ly: remove.
+
+ * input/regression/baerenreiter-sarabande.ly: move file.
+
+ * lily/bar-line.cc (compound_barline): fix : for staff without
+ lines.
+
+ * lily/accidental.cc (print): use music_font_alist_chain(). This
+ fixes smaller cautionaries.
+
+ * scm/define-grobs.scm (all-grob-descriptions): use fetaMusic
+ encoding for accidental.
+
* Documentation/user/notation.itely (Educational use): new section
* input/test/*.ly: clean up directory: move examples into manual
Examples: @inputfileref{input/regression,chord-name-major7.ly},
@inputfileref{input/regression,chord-name-exceptions.ly},
@inputfileref{input/test,chord-names-jazz.ly},
-@inputfileref{input/test,chord-names-german.ly}.
+@inputfileref{input/test,chord-names-german.ly},
+@inputfileref{input/test,chords-without-melody.ly}.
+
Init files: @file{scm/chords-ignatzek.scm}, and @file{scm/chord-entry.scm}.
+++ /dev/null
-\version "2.3.4"
-
-% #(ly:set-point-and-click 'line-column)
-
-forcedLastBreak = { \break }
-
-%% We want this to perfectly match the Baerenreiter spacing.
-%% If we're not using 6 systems, there's definately a problem.
-#(define (assert-system-count smob n)
- (let ((systems (length (ly:spanner-broken-into
- (ly:grob-original
- (ly:grob-system smob))))))
- (if (not (equal? n systems))
- (error
- ;;(warn
- (string-append "Got " (number->string systems)
- " systems (expecting " (number->string n))))))
-
-
-\header {
- title = "Solo Cello Suite II"
- piece ="Sarabande"
- composer = "J.S. Bach"
- editor = "August Wenzinger"
- source= "B\\\"arenreiter Urtext"
-
- texidoc = "The B\\\"arenreiter edition of the Cello Suites is the
-most beautifully typeset piece of music in our collection of music (we
-both own one. It is also lovely on French Horn). This piece does not
-include articulation, but it does follows the same beaming and
-linebreaking as the printed edition. This is done in order to
-benchmark the quality of the LilyPond output.
-
-As of lilypond 1.5.42, the spacing and beam quanting is almost
-identical.
-
-There are two tweaks in this file: a line-break was forced before
-measure 25, we get back the linebreaking of Baerenreiter. The stem
-direction is forced in measure 24. The last beam of that measure is up
-in Baerenreiter because of context. We don't detect that yet.
-
-Note that the Barenreiter edition contains a few engraving
-mistakes. The second line begins with measure 6 (but prints 5). The |:
-half way in measure 13 has been forgotten.
- "
-}
-
-
-sarabandeA = \context Voice \relative c {
- \override Staff.NoteCollision #'merge-differently-dotted = ##t
-
-
- << { d8. e16 e4.\trill d16 e } \\
- { d4 a2 } >>
- <d, a' f'>4. e'8[ d c] |
- bes[ g'] f[ e16(f] g[ a bes d,)] |
- cis4.\trill b8[ a g] |
-
- %% check spacing without accs:
- %% c4.\trill bes8[ a g] |
-
- << { d'8. e16 e4.\trill d16 e |
- f4. d8[ e f] }
- \\
- { <a, f>4 a2 <a d,>4. } >> |
-
- %%7
- g'8 bes16(a) c(bes) a(g) d'8 f, |
- << e4.\trill
- \\ <c, g'>4 >>
- d'8[ c bes]
-
- %%9
- << { f'8 g16(a) a4. g16(f) |
- g8 a16(bes) bes4. c16(d) }
- \\
- { a,4 <bes d >4. r8 bes4 <g f'>2 }
- >> |
-
- %% 11
- e'8[ f] c,[ g'] f'[ e] |
- f4 f,2 |
- << { a'4 a4.\trill bes8
- c bes16 a } \\
- { f8[ es] es4. r8 d4 } >>
-
- fis8.\trill es16 d8 c |
- bes[ g']
- a,[ fis']
- es'[ d] |
-
- %%16
- < bes d, g, >4.\trill a8[ g f!] |
- e bes a f' g a |
- d, as g es' f g |
- cis,[ bes'] a[ g16 f] e!8[ f16 d] |
- cis8 e16 a a,8. g'16 f8(e) |
-
- %%21
- << { d e16(f) f4. e16(d) |
- e8 f16(g) g4. a16(bes) |
- a8 cis16 d d,8 e16 f32 g f8\trill e16(d) } \\
- { bes4 g2 |
- g4 <bes cis,>4. s8 |
- <d a f>8 r r g, a4 } >>
- |
- \stemUp
- d4 d,16 a'( b cis d e f g) |
- \stemBoth
- \forcedLastBreak
- %%25
- << { a16(b c b) c4. b16(a) |
- b cis d cis d4. e16(f) | }
- \\
- { f,4 fis4. s8 |
- <d g,>4 gis4. } >>
- \voiceOne
- d'16(cis d) f,
- a,8[ e']
- \oneVoice
- d'[ cis] |
- %% d4 d,,2 |
- d4
- \override NoteHead
- #'after-line-breaking-callback
- = #(lambda (smob) (assert-system-count smob 6))
- d,,2 |
-}
-
-
-sarabandeCelloGlobal = {
- \time 3/4
- \key f \major
- \clef bass
- \repeat "volta" 2 {
- s2.*12
- } \repeat "volta" 2 {
- s2.*16
- }
-}
-
-sarabandeCelloScripts = {
-}
-
-sarabandeCelloStaff = \context Staff <<
- \sarabandeA
- \sarabandeCelloGlobal
- \sarabandeCelloScripts
->>
-
-% size perversions
-smallerPaper = \paper {
- \context { \Staff
- fontSize = #-1
- \override StaffSymbol #'staff-space = #0.8
- }
- \context { \Score
- \override SpacingSpanner #'spacing-increment = #0.96
- }
-
- indent = 5.6 \mm
- linewidth = 146.8 \mm
-}
-
-baerPaper = \paper {
- indent = 7. \mm
- linewidth =183.5 \mm
-% interscoreline=4.0\mm
- \context {
- \Score
-% \override System #'print-function = #box-grob-stencil
- }
-}
-
-\bookpaper {
- raggedbottom = ##t
-}
-\score{
- \sarabandeCelloStaff
- \paper{
- \baerPaper
- }
- \midi{ \tempo 4 = 40 }
- \header{
- opus= ""
- piece ="Sarabande" }
-}
-
-%%% Local variables:
-%%% LilyPond-indent-level:2
-%%% End:
-
--- /dev/null
+
+\version "2.3.8"
+\header {
+ texidoc = "@cindex Dynamic Absolute Volume
+Absolute dynamics have an effect on MIDI files.
+"
+}
+
+
+\score{
+\relative c''{
+%segfault in engraver
+a1\ppp
+a1\pp
+a\p
+a\mp
+a\mf
+a\f
+a\ff
+a\fff
+a\sf
+}
+\paper{ raggedright = ##t }
+\midi{
+\tempo 1 = 60
+}
+}
+
--- /dev/null
+\version "2.3.8"
+\header {
+
+ texidoc = "@cindex Embedded scm
+
+You can embed scheme functions in your scores. While generating the
+output, ``hello world'' is printed to the console.
+"
+ % see also: --safe-mode
+}
+
+#(begin
+ (newline)
+ (display "hello world")
+ (newline))
+
+\score {
+ \relative c' { c }
+ \paper {raggedright = ##t}
+}
+
+
--- /dev/null
+
+\version "2.3.8"
+% candidate for regression. -gp
+\header {
+ texidoc="Converting LilyPond input to MIDI and then again back with
+ @code{midi2ly.py} is a reversible procedure in some simple cases,
+ which mean that the original @code{.ly} -file and the one converted
+ back from the generated @code{.midi} -file do not differ.
+ Here are produced some scales.
+
+ "
+}
+
+%{
+ This means, doing:
+
+ lilypond input/test/midi-scales.ly
+ midi2ly midi-scales.midi
+ diff -u input/test/midi-scales.ly midi-scales-midi.ly
+
+ should show no differences at all in \key commands or notes.
+
+ Therefore, do not reformat this file unless midi2ly changes.
+
+ 1.7.30 reformatted, because
+ midi2ly now outpts 1 bar per line and adds bar checks and numbers.
+
+%}
+
+scales = \relative c {
+
+ % [INSTRUMENT_NAME] bright acoustic
+ \key c \major % sharp-major
+ c'4 d e f |
+ g a b c |
+
+ \key g \major
+ g a b c |
+ d e fis g |
+
+ \key d \major
+ d, e fis g |
+ a b cis d |
+
+ \key a \major
+ a b cis d |
+ e fis gis a |
+
+ \key e \major
+ e, fis gis a |
+ b cis dis e |
+
+ \key b \major
+ b cis dis e |
+ fis gis ais b |
+
+ \key fis \major
+ fis, gis ais b |
+ cis dis eis fis |
+
+ \key cis \major
+ cis, dis eis fis |
+ gis ais bis cis |
+
+ \key a \minor % sharp-minor
+ a b c d |
+ e f gis a |
+
+ \key e \minor
+ e, fis g a |
+ b c dis e |
+
+ \key b \minor
+ b cis d e |
+ fis g ais b |
+
+ \key fis \minor
+ fis, gis a b |
+ cis d eis fis |
+
+ \key cis \minor
+ cis, dis e fis |
+ gis a bis cis |
+
+ \key gis \minor
+ gis ais b cis |
+ dis e fisis gis |
+
+ \key dis \minor
+ dis, eis fis gis |
+ ais b cisis dis |
+
+ \key ais \minor
+ ais bis cis dis |
+ eis fis gisis ais |
+
+ \key f \major % flat-major
+ f, g a bes |
+ c d e f |
+
+ \key bes \major
+ bes c d ees |
+ f g a bes |
+
+ \key ees \major
+ ees,, f g aes |
+ bes c d ees |
+
+ \key aes \major
+ aes, bes c des |
+ ees f g aes |
+
+ \key des \major
+ des,, ees f ges |
+ aes bes c des |
+
+ \key ges \major
+ ges, aes bes ces |
+ des ees f ges |
+
+ \key ces \major
+ ces,, des ees fes |
+ ges aes bes ces |
+
+ \key d \minor % flat-minor
+ d, e f g |
+ a bes cis d |
+
+ \key g \minor
+ g, a bes c |
+ d ees fis g |
+
+ \key c \minor
+ c,, d ees f |
+ g aes b c |
+
+ \key f \minor
+ f, g aes bes |
+ c des e f |
+
+ \key bes \minor
+ bes,, c des ees |
+ f ges a bes |
+
+ \key ees \minor
+ ees, f ges aes |
+ bes ces d ees |
+
+ \key aes \minor
+ aes, bes ces des |
+ ees fes g aes |
+}
+
+\score {
+ \context Voice \scales
+ \paper { }
+ \midi { }
+}
+
}
-\score {
- {
+\paper { raggedright = ##t }
+
+{
c''4
cis''?4
\override Staff.Accidental #'cautionary-style = #'smaller
cis''?4
\override Staff.Accidental #'cautionary-style = #'parentheses
cis''?4
- }
-
-\paper { raggedright = ##t }
}
--- /dev/null
+\version "2.3.4"
+
+% #(ly:set-point-and-click 'line-column)
+
+forcedLastBreak = { \break }
+
+%% We want this to perfectly match the Baerenreiter spacing.
+%% If we're not using 6 systems, there's definately a problem.
+#(define (assert-system-count smob n)
+ (let ((systems (length (ly:spanner-broken-into
+ (ly:grob-original
+ (ly:grob-system smob))))))
+ (if (not (equal? n systems))
+ (error
+ ;;(warn
+ (string-append "Got " (number->string systems)
+ " systems (expecting " (number->string n))))))
+
+
+\header {
+ title = "Solo Cello Suite II"
+ piece ="Sarabande"
+ composer = "J.S. Bach"
+ editor = "August Wenzinger"
+ source= "B\\\"arenreiter Urtext"
+
+ texidoc = "The B\\\"arenreiter edition of the Cello Suites is the
+most beautifully typeset piece of music in our collection of music (we
+both own one. It is also lovely on French Horn). This piece does not
+include articulation, but it does follows the same beaming and
+linebreaking as the printed edition. This is done in order to
+benchmark the quality of the LilyPond output.
+
+As of lilypond 1.5.42, the spacing and beam quanting is almost
+identical.
+
+There are two tweaks in this file: a line-break was forced before
+measure 25, we get back the linebreaking of Baerenreiter. The stem
+direction is forced in measure 24. The last beam of that measure is up
+in Baerenreiter because of context. We don't detect that yet.
+
+Note that the Barenreiter edition contains a few engraving
+mistakes. The second line begins with measure 6 (but prints 5). The |:
+half way in measure 13 has been forgotten.
+ "
+}
+
+
+sarabandeA = \context Voice \relative c {
+ \override Staff.NoteCollision #'merge-differently-dotted = ##t
+
+
+ << { d8. e16 e4.\trill d16 e } \\
+ { d4 a2 } >>
+ <d, a' f'>4. e'8[ d c] |
+ bes[ g'] f[ e16(f] g[ a bes d,)] |
+ cis4.\trill b8[ a g] |
+
+ %% check spacing without accs:
+ %% c4.\trill bes8[ a g] |
+
+ << { d'8. e16 e4.\trill d16 e |
+ f4. d8[ e f] }
+ \\
+ { <a, f>4 a2 <a d,>4. } >> |
+
+ %%7
+ g'8 bes16(a) c(bes) a(g) d'8 f, |
+ << e4.\trill
+ \\ <c, g'>4 >>
+ d'8[ c bes]
+
+ %%9
+ << { f'8 g16(a) a4. g16(f) |
+ g8 a16(bes) bes4. c16(d) }
+ \\
+ { a,4 <bes d >4. r8 bes4 <g f'>2 }
+ >> |
+
+ %% 11
+ e'8[ f] c,[ g'] f'[ e] |
+ f4 f,2 |
+ << { a'4 a4.\trill bes8
+ c bes16 a } \\
+ { f8[ es] es4. r8 d4 } >>
+
+ fis8.\trill es16 d8 c |
+ bes[ g']
+ a,[ fis']
+ es'[ d] |
+
+ %%16
+ < bes d, g, >4.\trill a8[ g f!] |
+ e bes a f' g a |
+ d, as g es' f g |
+ cis,[ bes'] a[ g16 f] e!8[ f16 d] |
+ cis8 e16 a a,8. g'16 f8(e) |
+
+ %%21
+ << { d e16(f) f4. e16(d) |
+ e8 f16(g) g4. a16(bes) |
+ a8 cis16 d d,8 e16 f32 g f8\trill e16(d) } \\
+ { bes4 g2 |
+ g4 <bes cis,>4. s8 |
+ <d a f>8 r r g, a4 } >>
+ |
+ \stemUp
+ d4 d,16 a'( b cis d e f g) |
+ \stemBoth
+ \forcedLastBreak
+ %%25
+ << { a16(b c b) c4. b16(a) |
+ b cis d cis d4. e16(f) | }
+ \\
+ { f,4 fis4. s8 |
+ <d g,>4 gis4. } >>
+ \voiceOne
+ d'16(cis d) f,
+ a,8[ e']
+ \oneVoice
+ d'[ cis] |
+ %% d4 d,,2 |
+ d4
+ \override NoteHead
+ #'after-line-breaking-callback
+ = #(lambda (smob) (assert-system-count smob 6))
+ d,,2 |
+}
+
+
+sarabandeCelloGlobal = {
+ \time 3/4
+ \key f \major
+ \clef bass
+ \repeat "volta" 2 {
+ s2.*12
+ } \repeat "volta" 2 {
+ s2.*16
+ }
+}
+
+sarabandeCelloScripts = {
+}
+
+sarabandeCelloStaff = \context Staff <<
+ \sarabandeA
+ \sarabandeCelloGlobal
+ \sarabandeCelloScripts
+>>
+
+% size perversions
+smallerPaper = \paper {
+ \context { \Staff
+ fontSize = #-1
+ \override StaffSymbol #'staff-space = #0.8
+ }
+ \context { \Score
+ \override SpacingSpanner #'spacing-increment = #0.96
+ }
+
+ indent = 5.6 \mm
+ linewidth = 146.8 \mm
+}
+
+baerPaper = \paper {
+ indent = 7. \mm
+ linewidth =183.5 \mm
+% interscoreline=4.0\mm
+ \context {
+ \Score
+% \override System #'print-function = #box-grob-stencil
+ }
+}
+
+\bookpaper {
+ raggedbottom = ##t
+}
+\score{
+ \sarabandeCelloStaff
+ \paper{
+ \baerPaper
+ }
+ \midi{ \tempo 4 = 40 }
+ \header{
+ opus= ""
+ piece ="Sarabande" }
+}
+
+%%% Local variables:
+%%% LilyPond-indent-level:2
+%%% End:
+
+++ /dev/null
-\version "2.3.8"
-\header {
- texidoc="@cindex Blank Paper
-
-A blank music paper can be produced also by using invisible notes, and removing
-@code{Bar_number_engraver}.
-
-" }
-
-
-\new Score \with {
- \override TimeSignature #'transparent = ##t
- \override NoteHead #'transparent = ##t
- defaultBarType = #""
- \remove Bar_number_engraver
-} {
- %% \clef treble
- \clef bass
- \repeat unfold 3 { c1 \break }
-}
-
-
+++ /dev/null
-\version "2.3.8"
-\header{
- texidoc="@cindex Cautionary Accidentals
-Cautinary accidentals are displayed in slurs by default. They can be
-shown also with accidentals of smaller size.
-" }
-\score { \context Staff \transpose c c'' {
- \key d \major
-% \set Staff.autoReminders = #'cautionary
- \override Staff.Accidental #'font-size = #0
- <dis c>1 cis?2 d?
- \override Staff.Accidental #'cautionary-style = #'smaller
- <dis c>1 cis?2 d?
- \override Staff.Accidental #'cautionary-style = #'parentheses
- <dis c>1 cis?2 d?
-
-}
-\paper{raggedright = ##t}
-}
-
-
b/b bis/bis bes/bes
% beses/beses
}
-\score {
- <<
- \context ChordNames { \scm }
+
+
+\paper {
+ raggedright = ##t
+ \context {\ChordNames \consists Instrument_name_engraver }
+}
+
+<<
+ \new ChordNames {
+ \set instrument = #"default"
+ \scm
+ }
\new ChordNames {
\set instrument = #"german"
\germanChords \scm }
\new ChordNames {
\set instrument = #"semi-german"
\semiGermanChords \scm }
- \context Voice { \scm } >>
-\paper {
- raggedright = ##t
- \context {\ChordNames \consists Instrument_name_engraver }}
-
-}
+ \context Voice { \scm }
+>>
\version "2.3.8"
\header {
-texidoc = "Jazz chord names can also be printed without notes."
+ texidoc = "Jazz chord names can also be printed without notes."
}
+\paper{
+ \context{
+ \ChordNames
-\score{
- \context ChordNames \chords{
+ \override BarLine #'bar-size = #4
- \repeat volta 2 {
- f1:maj f:7 bes:7
- c:maj es
- }
- }
- \paper{
- \context{
- \ChordNames
-
- \override BarLine #'bar-size = #4
-
-
- \consists Bar_engraver
- \consists "Volta_engraver"
- }
- raggedright = ##t
- }
+
+ \consists Bar_engraver
+ \consists "Volta_engraver"
+ }
+ raggedright = ##t
}
+\context ChordNames \chords {
+ \repeat volta 2 {
+ f1:maj f:7 bes:7
+ c:maj es
+ }
+}
+++ /dev/null
-
-\version "2.3.8"
-\header{
-
- texidoc="@cindex Count Systems
-After a line break, some function may called by overriding
-@code{after-line-breaking-callback}. This can be most useful to assertain
-that a piece uses a specified number of lines; typically the number of
-lines (or systems) is not engraved, but it can be printed to console when
-generating the output. The number of lines may be associated either
-to the number of systems or the system number of a grob.
-" }
-
-%% -- jcn:
-%% See, e.g., input/mutopia/J.S.Bach/baerenreiter-sarabande.ly for
-%% an application:
-
-%% We want this to perfectly match the Baerenreiter spacing.
-%% If we're not using 6 systems, there's definately a problem.
-%% #(define (assert-system-count smob n) ...
-
-#(define (display-systemno smob)
- (let* ((this-system (ly:grob-system smob))
- (systems (ly:spanner-broken-into
- (ly:grob-original this-system))))
- (display smob)
- (display systems)
- (display this-system)
-
- (display (list-index systems this-system))
- (newline)))
-
-
-#(define (display-system-count smob)
- (display (length
- (ly:spanner-broken-into
- (ly:grob-original
- (ly:grob-system smob))))))
-
-
-
-\score{
- \relative c''{
- \override NoteHead #'after-line-breaking-callback
- = #display-system-count
-% = #display-systemno
- c1
- d
- }
- \paper{ indent = 0.0\mm
- linewidth = 10.0\mm
- raggedright = ##t
- }
-}
-
% possible rename to ancient- or gregorian- ?
\header {
texidoc = "@cindex Divisiones
+
Divisiones are gregorian variants of breathing signs.
Choices are @code{divisioMinima}, @code{divisioMaior},
@code{divisioMaxima} and @code{finalis}, @code{virgula} and
@code{caesura}.
+
" }
\version "2.3.8"
\override TextScript #'padding = #3
\override Staff.BarLine #'transparent = ##t
\override Stem #'transparent = ##t
- g4( a) g e( f) e
- ^\markup { "divisio minima" }
+ g4( a) g^\markup { "divisio minima" }
\divisioMinima
- g4( a) g e( f) e
- ^\markup { "divisio maior" }
+ g4( a) g^\markup { "divisio maior" }
\divisioMaior
- g4( a) g e( f) e
- ^\markup { "divisio maxima" }
+ g4( a) g^\markup { "divisio maxima" }
\divisioMaxima
- g4( a) g e( f) e
- ^\markup { "finalis" }
+ g4( a) g^\markup { " finalis" }
\finalis
- g4( a) g e( f) e
-
+ g4( a) g
^\markup { "virgula" }
\virgula
- g4( a) g e( f) e
+ g4( a) g
^\markup { "caesura" }
\caesura
- g4( a) g e( f) e
+ g4( a) g
}
\lyricsto "" \new Lyrics \lyrics {
Blah blub, blah blam.
Blah blub, blah blam.
Blah blub, blah blam.
- Blah blub, blah blam.
- Blah blub, blah blam.
- Blah blub, blah blam.
- Blah blub, blah blam.
+ Blah blub.
}
>>
}
+++ /dev/null
-
-\version "2.3.8"
-% possible rename to slurs-?
-% TODO: find out what drarn means, and if there's an overlap with drarn.ly
-\header{
-texidoc="@cindex Drarn Slurs
-Slurs can be forced to always attach to note heads.
-"
-}
-
-fragment = {
- \override Slur #'direction = #1
- \override Slur #'attachment = #'(head . head)
- g''16(g)(g)(g)(d')(d)(d)(d)
-}
-
-\paper { raggedright = ##t}
-
-\score {
- \relative c \fragment
- \paper { raggedright = ##t}
-}
-
+++ /dev/null
-
-\version "2.3.8"
-\header{texidoc="@cindex Drarn
-You can attach slurs and ties to noteheads.
-" }
-
-\score {
- \context Staff <<
-
- \relative c'' {
-\time 3/8
- \override Stem #'direction = #1
- \override Tie #'direction = #1
- \override Slur #'direction = #1
- \override Slur #'attachment = #'(head . head)
- c8~c(c)
- }\\
- \relative c'' {
- \override Stem #'direction = #-1
- \override Tie #'direction = #-1
- \override Slur #'direction = #-1
- \override Slur #'attachment = #'(head . head)
- a8(a)~a
- }
- >>
- \paper { linewidth = 40*\staffspace
- raggedright = ##t }
-}
-
+++ /dev/null
-
-\version "2.3.8"
-\header {
- texidoc = "@cindex Dynamic Absolute Volume
-Absolute dynamics have an effect on MIDI files.
-"
-}
-
-
-\score{
-\relative c''{
-%segfault in engraver
-a1\ppp
-a1\pp
-a\p
-a\mp
-a\mf
-a\f
-a\ff
-a\fff
-a\sf
-}
-\paper{ raggedright = ##t }
-\midi{
-\tempo 1 = 60
-}
-}
-
+++ /dev/null
-\version "2.3.8"
-\header {
-
- texidoc = "@cindex Embedded scm
-
-You can embed scheme functions in your scores. While generating the
-output, ``hello world'' is printed to the console.
-"
- % see also: --safe-mode
-}
-
-#(begin
- (newline)
- (display "hello world")
- (newline))
-
-\score {
- \relative c' { c }
- \paper {raggedright = ##t}
-}
-
-
\header{ texidoc="@cindex Embedded Tex
You can embed Tex commands in your score. "}
-fragment = {
- a''^"3 $\\times$ \\`a deux"
-}
-
\paper { raggedright = ##t}
-\score {
- \relative c \fragment
- \paper { raggedright = ##t }
-}
+\paper {
+ raggedright = ##t
+ inputencoding = "TeX"
+}
+\relative c {
+ a''^"$\\int_0^\infty e^{-x^2} dx$"
+}
condense the spacing."
}
+\paper { raggedright = ##t }
-\score {
- \relative c' {
- \context Voice { << { \stemUp \once \override Voice.Beam #'positions = #'(0 . 0.5)
- \once \override Voice.TupletBracket #'number-visibility = ##f
- \times 1/2 { c8[ c c c c c c c]} } \\
- { \stemUp \once \override Voice.Beam #'positions = #'(0 . -0.5)
- \once \override Voice.TupletBracket #'number-visibility = ##f
- \times 1/2 { c[ c c c c c c c] }} >> } r2
- }
- \paper { raggedright = ##t }
+\relative \new Staff <<
+ \new Voice
+ {
+ \stemUp
+ \once \override Voice.Beam #'positions = #'(0 . 0.5)
+ \once \override Voice.TupletBracket #'number-visibility = ##f
+ \times 1/2 { c8[ c c c c c c c]
+ }
+ }
+ \new Voice {
+ \stemUp
+ \once \override Voice.Beam #'positions = #'(0 . -0.5)
+ \once \override Voice.TupletBracket #'number-visibility = ##f
+ \times 1/2 { c[ c c c c c c c] }
+ }
+>>
-}
+++ /dev/null
-\version "2.3.8"
-% MERGED: stuff from follow-break.ly to follow-thread.ly
-
-% followVoice: connect note heads with line when thread switches staff
-\header{ texidoc="@cindex followVoice Voice
-Voices can be traced automatically when they switch staves by setting
-@code{followVoice}. " }
-
-
-\score {
- \relative c {
- \new PianoStaff <<
- \set PianoStaff.followVoice = ##t
- \context Staff=one \context Voice {
- \override VoiceFollower #'style = #'dashed-line
- c'1
- \change Staff=two
- b2 a
-% these lines from follow-break.ly:
- \change Staff=one
- a1
- }
- \context Staff=two {\clef bass \skip 1*3 }
- >>
- }
-
- \paper { raggedright = ##t }
-}
-
#(if (not (defined? 'pieceTagLine))
- (define pieceTagLine (string-append "Jeremie " (lilypond-version) " was here")))
+ (define pieceTagLine (string-append "Title has version " (lilypond-version))))
\header{
-
- tagline = \pieceTagLine
+ title = \pieceTagLine
texidoc = "
-High level functionality (eg. conditional defines),
-can be accomplished with GUILE.
+High level functionality (eg. conditional defines), can be
+accomplished with GUILE.
-This example puts the current version in the tagline via Scheme,
-however, the tagline is not printed to the collated webpage snippets.
+This example puts the current version in the title via Scheme.
"
}
-\score{ { c'4 }
\paper {raggedright=##t}
-}
+{ c'4 }
+++ /dev/null
-\version "2.3.8"
-\header { texidoc = "@cindex Incipit
-This example shows how to make an ``incipit'' to indicate
-scordatora tuning of a violin part, by overriding the @code{style} of
-a @code{TimeSignature}.
-Here are the two first bars of Biber's Rosary sonata III. " }
-
-
-
-
-violinincipit = \relative c''{
- \clef "french"
- \time 2/2
- \override Staff.TimeSignature #'style = #'old
- a4. b8 c4 fis |
-% <b fis' b d>1
- \override Staff.TimeSignature #'style = #'C
-}
-
-bcincipit = \relative c{
- \clef bass
- \override Staff.TimeSignature #'style = #'old
- b2. cis4 |
- \override Staff.TimeSignature #'style = #'C
-}
-
-violin = \relative c''{
-% Key signatures with different alterations in different octaves
-% are broken since 1.3.58!
-% \specialkey \keysignature f' fis'' g' gis''
- \key d \major
- \time 2/2
- \clef treble
-
- a4. b8 c4 fis |
- gis~ gis8 fis16^\trill (e) b8 c
- <<{ a d}\\ { es,4}>>|
-}
-
-BC = \relative c{
- \key d \major
- \time 2/2
- \clef "bass"
-
- \key \default
- b2. cis4 |
- d e fis g |
-}
-
-\score{
- <<
- \context Staff = violin {{
- \override Staff.Clef #'transparent = ##t
- \violinincipit \bar ".|"
- \revert Staff.Clef #'transparent
- \endincipit
- \violin
- }}
- \new Staff {{
- \override Staff.Clef #'transparent = ##t
- \bcincipit \bar ".|"
- \revert Staff.Clef #'transparent
- \endincipit
- \BC
- }}
- >>
- \paper { raggedright = ##t }
-}
-
-
opus = "opus"
piece = "piece"
poet = "poet"
-texidoc = "In the generated output for printing, there are several titles which do not appear in the web pages. "
+texidoc = "All header fields with special meanings."
+ copyright = "public domain"
+ enteredby = "jcn"
+ source = "urtext"
-%
-% todo: check whether title.ly does the same. --hwn
-%
}
\header
{
-texidoc ="
+ texidoc ="
By inserting @code{\\skip} statements into lyric lines, one can attach
less lyric syllables to a melody.
}
-% shorthand for Skip Lyric
+ % shorthand for Skip Lyric
sl = { \skip 4 }
\version "2.3.8"
\score {
- <<
- \context Voice = "A" {c4 c c c}
- \lyricsto "A" \context Lyrics=A \lyrics { foo __ \sl \sl bar }
- \lyricsto "A" \context Lyrics=B \lyrics { foo -- \sl baz bar }
- \lyricsto "A" \context Lyrics=C \lyrics { foo -- baz -- baaz bar }
- >>
+ <<
+ \context Voice = "A" \relative { c4 c c c }
+ \lyricsto "A" \new Lyrics { foo __ \sl \sl bar }
+ \lyricsto "A" \new Lyrics { foo -- \sl baz bar }
+ \lyricsto "A" \new Lyrics { foo -- baz -- baaz bar }
+ >>
}
-
\header {
texidoc = "Use \\score block as markup command."
}
\relative {
\time 4/8
\times 2/3 { c'8 d e } \times 2/3 {c d e}
- \time 4/8
-
- % todo: tempo change example.
-
- g8 a8 g8 a \break
+ \times 2/3 { c8 d e } \times 2/3 {c d e}
+ g8 a8 g8 a
+ g8 a8 g8 a
}
+++ /dev/null
-
-\version "2.3.8"
-% candidate for regression. -gp
-\header {
- texidoc="Converting LilyPond input to MIDI and then again back with
- @code{midi2ly.py} is a reversible procedure in some simple cases,
- which mean that the original @code{.ly} -file and the one converted
- back from the generated @code{.midi} -file do not differ.
- Here are produced some scales.
-
- "
-}
-
-%{
- This means, doing:
-
- lilypond input/test/midi-scales.ly
- midi2ly midi-scales.midi
- diff -u input/test/midi-scales.ly midi-scales-midi.ly
-
- should show no differences at all in \key commands or notes.
-
- Therefore, do not reformat this file unless midi2ly changes.
-
- 1.7.30 reformatted, because
- midi2ly now outpts 1 bar per line and adds bar checks and numbers.
-
-%}
-
-scales = \relative c {
-
- % [INSTRUMENT_NAME] bright acoustic
- \key c \major % sharp-major
- c'4 d e f |
- g a b c |
-
- \key g \major
- g a b c |
- d e fis g |
-
- \key d \major
- d, e fis g |
- a b cis d |
-
- \key a \major
- a b cis d |
- e fis gis a |
-
- \key e \major
- e, fis gis a |
- b cis dis e |
-
- \key b \major
- b cis dis e |
- fis gis ais b |
-
- \key fis \major
- fis, gis ais b |
- cis dis eis fis |
-
- \key cis \major
- cis, dis eis fis |
- gis ais bis cis |
-
- \key a \minor % sharp-minor
- a b c d |
- e f gis a |
-
- \key e \minor
- e, fis g a |
- b c dis e |
-
- \key b \minor
- b cis d e |
- fis g ais b |
-
- \key fis \minor
- fis, gis a b |
- cis d eis fis |
-
- \key cis \minor
- cis, dis e fis |
- gis a bis cis |
-
- \key gis \minor
- gis ais b cis |
- dis e fisis gis |
-
- \key dis \minor
- dis, eis fis gis |
- ais b cisis dis |
-
- \key ais \minor
- ais bis cis dis |
- eis fis gisis ais |
-
- \key f \major % flat-major
- f, g a bes |
- c d e f |
-
- \key bes \major
- bes c d ees |
- f g a bes |
-
- \key ees \major
- ees,, f g aes |
- bes c d ees |
-
- \key aes \major
- aes, bes c des |
- ees f g aes |
-
- \key des \major
- des,, ees f ges |
- aes bes c des |
-
- \key ges \major
- ges, aes bes ces |
- des ees f ges |
-
- \key ces \major
- ces,, des ees fes |
- ges aes bes ces |
-
- \key d \minor % flat-minor
- d, e f g |
- a bes cis d |
-
- \key g \minor
- g, a bes c |
- d ees fis g |
-
- \key c \minor
- c,, d ees f |
- g aes b c |
-
- \key f \minor
- f, g aes bes |
- c des e f |
-
- \key bes \minor
- bes,, c des ees |
- f ges a bes |
-
- \key ees \minor
- ees, f ges aes |
- bes ces d ees |
-
- \key aes \minor
- aes, bes ces des |
- ees fes g aes |
-}
-
-\score {
- \context Voice \scales
- \paper { }
- \midi { }
-}
-
#(define (transform music)
(let* ((es (ly:music-property music 'elements))
- (n (ly:music-name music))
- )
+ (n (ly:music-name music)))
(if (not (equal? n "Sequential_music"))
(ly:warn "transform needs sequential music!")
(begin
((trans (ly:music-property (cadr elts) 'elements)) (car elts))
(set-cdr! elts (cddr elts))
(recurse (cdr elts))
- )
- )
- )
- )
- )
+ )))))
music
- )
- )
+ ))
#(define ((trans pitches) music)
(let* ((es (ly:music-property music 'elements))
(pnew (ly:music-property (car pes) 'pitch))
)
(ly:music-set-property! music 'pitch pnew)
- )
- )
- music
- )
- )
+ ))
+ music))
\score {
\transpose c c' \context PianoStaff <<
- \context Staff=up { \clef "G" }
- \context Staff=down { \clef "F" }
- { \applymusic #transform {\pat {c e g c' e' }
- \pat {c d a d' f' }
- \pat {h, d g d' f' }
- \pat {c e g c' e' }
- }
-
- %{
- %Etc.
-
- %we get the idea now.
-
-
-
- \pat {c e a e' a' }
- \pat {c d fis a d' }
- \pat {h, d g d' g' }
- \pat {h, c e g c' }
- \pat {a, c e g c' }
- \pat {d, a, d fis c' }
- \pat {g, h, d g h }
- \pat {g, b, e g cis' }
- \pat {f, a, d a d' }
- \pat {f, as, d f h }
- \pat {e, g, c g c' }
- \pat {e, f, a, c f }
- \pat {d, f, a, c f }
-
- \pat {g,, d, g, h, f }
- \pat {c, e, g, c e }
- \pat {c, g, b, c e }
- \pat {f,, f, a, c e }
- \pat {fis,, c, a, c es }
- \pat {as,, f, h, c d }
- \pat {g,, f, g, h, d }
- \pat {g,, e, g, c e }
- \pat {g,, d, g, c f }
- \pat {g,, d, g, h, f }
- \pat {g,, es, a, c fis }
- \pat {g,, e, g, c g }
- \pat {g,, d, g, c f }
- \pat {g,, d, g, h, f }
- \pat {c,, c, g, b, e }
- %}
- }
- >>
- \paper {
- \context {
- \PianoStaff
- \override VerticalAlignment #'forced-distance = #10
- }
-
- linewidth = 18.0 \cm
- }
- \midi {
- \tempo 4 = 80
- }
+ \context Staff=up { \clef "G" }
+ \context Staff=down { \clef "F" }
+ { \applymusic #transform {
+ \pat {c e g c' e' }
+ \pat {c d a d' f' }
+ }
+
+%{
+ %Etc.
+
+ %we get the idea now.
+
+
+ \pat {h, d g d' f' }
+ \pat {c e g c' e' }
+
+ \pat {c e a e' a' }
+ \pat {c d fis a d' }
+ \pat {h, d g d' g' }
+ \pat {h, c e g c' }
+ \pat {a, c e g c' }
+ \pat {d, a, d fis c' }
+ \pat {g, h, d g h }
+ \pat {g, b, e g cis' }
+ \pat {f, a, d a d' }
+ \pat {f, as, d f h }
+ \pat {e, g, c g c' }
+ \pat {e, f, a, c f }
+ \pat {d, f, a, c f }
+
+ \pat {g,, d, g, h, f }
+ \pat {c, e, g, c e }
+ \pat {c, g, b, c e }
+ \pat {f,, f, a, c e }
+ \pat {fis,, c, a, c es }
+ \pat {as,, f, h, c d }
+ \pat {g,, f, g, h, d }
+ \pat {g,, e, g, c e }
+ \pat {g,, d, g, c f }
+ \pat {g,, d, g, h, f }
+ \pat {g,, es, a, c fis }
+ \pat {g,, e, g, c g }
+ \pat {g,, d, g, c f }
+ \pat {g,, d, g, h, f }
+ \pat {c,, c, g, b, e }
+%}
+ }
+ >>
+
+ \paper {
+ \context {
+ \PianoStaff
+ \override VerticalAlignment #'forced-distance = #10
+ }
+ linewidth = 18.0 \cm
+ }
+
+ \midi {
+ \tempo 4 = 80
+ }
}
+++ /dev/null
-\version "2.3.8"
-% MERGE with lilypond-
-\header {
- filename = "title.ly"
- dedication = "dedication"
- title = "Title"
- subtitle = "Subtitle"
- subsubtitle = "Subsubtitle"
- composer = "Composer (xxxx-yyyy)"
- instrument = "Instrument"
- arranger = "Arranger"
- poet = "Poet"
- % ugr: warning: Identifier name is a keyword: `translator'
- % translator = "Translator"
- texttranslator = "Translator"
- copyright = "public domain"
- enteredby = "jcn"
- source = "urtext"
-
- texidoc ="This example tests titling. By processing with @code{lilypond}
- (not @code{lilypond-book}), you will see all the titles."
-}
-
-\score {
- \context Staff \relative c' {
- \repeat unfold 10 {
- c d e f f e d c \break
- c d e f f e d c
- }
- }
- \header {
- opus = "Opus 0"
- piece = "Piece I"
- }
-}
-
-\score {
- \relative c' {
- f e d c c d e f \break
- f e d c c d e f
- }
- \header {
- opus = "Opus 1"
- piece = "Piece II"
- }
-}
-
-
p += 2.0 * y / Staff_symbol::staff_space (st);
return p;
}
-
+ else if (!st)
+ {
+ return me->relative_coordinate (me->get_parent (Y_AXIS), Y_AXIS) * 2;
+ }
return robust_scm2double (me->get_property ("staff-position"), p);
}
*/
#include <math.h>
+#include "spanner.hh"
#include "axis-group-interface.hh"
#include "system-start-delimiter.hh"
#include "output-def.hh"
SCM
System_start_delimiter::print (SCM smob)
{
- Grob * me = unsmob_grob (smob);
-
+ Spanner * me = unsmob_spanner (smob);
+ if (!me)
+ return SCM_EOL;
+
SCM s = me->get_property ("glyph");
if (!ly_c_string_p (s))
return SCM_EOL;
SCM gsym = scm_string_to_symbol (s) ;
Real staff_space = Staff_symbol_referencer::staff_space (me);
- Interval ext = ly_scm2interval (Axis_group_interface::group_extent_callback
- (me->self_scm (), scm_int2num (Y_AXIS)));
+
+ SCM elts = me->get_property ("elements");
+ Grob * common = common_refpoint_of_list (elts, me, Y_AXIS);
+
+ Interval ext;
+ for (SCM s = elts; ly_c_pair_p (s); s = ly_cdr (s))
+ {
+ Spanner * sp = unsmob_spanner (ly_car (s));
+ if (sp &&
+ sp->get_bound (LEFT) == me->get_bound (LEFT))
+ {
+ Interval dims = sp->extent (common, Y_AXIS);
+ if (!dims.is_empty ())
+ ext.unite (dims);
+ }
+ }
+
+ ext -= me->relative_coordinate (common, Y_AXIS);
+
Real l = ext.length () / staff_space;
if (ext.is_empty ()
(Accidental
. (
(print-function . ,Accidental_interface::print)
- (font-family . music)
(cautionary-style . parentheses)
(after-line-breaking-callback . ,Accidental_interface::after_line_breaking) (meta . ((interfaces . (item-interface accidental-interface font-interface))))
))
(meta . ((interfaces . (font-interface staff-symbol-referencer-interface dots-interface item-interface ))))
))
- (DoublePercentRepeat .
- (
- (print-function . ,Percent_repeat_item_interface::double_percent)
- (breakable . #t)
- (slope . 1.0)
- (font-encoding . fetaMusic)
- (width . 2.0)
- (thickness . 0.48)
- (break-align-symbol . staff-bar)
- (break-visibility . ,begin-of-line-invisible)
- (meta . ((interfaces . (font-interface
- break-aligned-interface
- percent-repeat-interface item-interface ))))
- ))
-
+ (DoublePercentRepeat
+ . (
+ (print-function . ,Percent_repeat_item_interface::double_percent)
+ (breakable . #t)
+ (slope . 1.0)
+ (font-encoding . fetaMusic)
+ (width . 2.0)
+ (thickness . 0.48)
+ (break-align-symbol . staff-bar)
+ (break-visibility . ,begin-of-line-invisible)
+ (meta . ((interfaces . (font-interface
+ break-aligned-interface
+ percent-repeat-interface item-interface ))))
+ ))
(DynamicText
. (
(Y-offset-callbacks . (,Self_alignment_interface::aligned_on_self))
(thick-thickness . 6.6)
(hair-thickness . 2.0)
(padding . 1)
- (font-encoding . fetaMusic)
(meta . ((interfaces . (multi-measure-rest-interface multi-measure-interface rest-interface font-interface staff-symbol-referencer-interface))))
))
(stencil (ly:paper-system-stencil 1st)) )
(ly:stencil-align-to! stencil Y CENTER)
- (display (ly:stencil-extent stencil X))
- (display (ly:stencil-extent stencil Y))
-; (set! stencil (ly:stencil-translate-axis stencil -20 X))
-; (set! stencil (ly:stencil-translate-axis stencil 20 Y))
stencil))
(def-markup-command (simple paper props str) (string?)