+2003-08-28 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+
+ * input/*/*.ly (vmus): use \new everywhere.
+
+ * lily/my-lily-lexer.cc: add \accacciatura and \appoggiatura
+
+ * ly/grace-init.ly (stopGraceMusic): add slurs on grace note by
+ default
+
+ * scm/music-functions.scm (set-stop-grace-properties)
+ (set-start-grace-properties, add-grace-property): new functions
+ for modular grace tweak control.
+
+ * ly/engraver-init.ly (ScoreContext): new property graceSettings.
+
2003-08-28 Jan Nieuwenhuizen <janneke@gnu.org>
* Documentation/topdocs/INSTALL.texi: Explain install-pfa-fonts.
2003-08-27 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+ * lily/translator-scheme.cc (LY_DEFINE):
+ ly:context-pushpop-property new function.
+ (LY_DEFINE): new function ly:translator-find
+ new function ly:translator?
+ (LY_DEFINE): new function ly:context?
+
+ * lily/translator-def.cc: remove Translator_def::apply_pushpop_property().
+
* python/lilylib.py (read_pipe): only store and display error log
if verbose not set.
(read_pipe): only display log if it contains something.
@itemize
@item
-The @code{\newcontext} command will create a context with a unique
+Two new commands for grace note have been added, @code{\accacciatura}
+and @code{\appogiatura}. Both reflect the traditional meanings of
+accacciatura and ap
+
+
+
+@item
+The @code{\new} command will create a context with a unique
name automatically. Hence, for multi-staff scores, it is no longer
necessary to invent arbitrary context names. For example, a two-staff
score may be created by
@example
\simultaneous @{
- \newcontext Staff @{ @var{notes for 1st staff} @}
- \newcontext Staff @{ @var{notes for 2nd staff} @}
+ \new Staff @{ @var{notes for 1st staff} @}
+ \new Staff @{ @var{notes for 2nd staff} @}
@}
@end example
@end lilypond
-@item @code{< \newcontext Staff ... >}
+@item @code{< \new Staff ... >}
@tab more staves
@tab
@lilypond[fragment]
-< \newcontext Staff { c'1 }
- \newcontext Staff { c'1 } >
+< \new Staff { c'1 }
+ \new Staff { c'1 } >
@end lilypond
the following music expressions:
@example
-\newcontext @var{contexttype} @var{musicexpr}
+\new @var{contexttype} @var{musicexpr}
\context @var{contexttype} [= @var{contextname}] @var{musicexpr}
@end example
@code{e4}. A context is ended when when all music referring it has
finished, so after the third quarter, @code{another} is removed.
-The @code{\newcontext} construction creates a context with a
+The @code{\new} construction creates a context with a
generated, unique @var{contextname}. An expression with
-@code{\newcontext} always leads to a new context. This is convenient
+@code{\new} always leads to a new context. This is convenient
for creating multiple staffs, multiple lyric lines, etc.
When using automatic staff changes, automatic phrasing, etc., the
-context names have special meanings, so @code{\newcontext} cannot be
+context names have special meanings, so @code{\new} cannot be
used.
@c
@lilypond[fragment, verbatim]
< \context StaffGroup <
- \newcontext Staff { e'4 d'
+ \new Staff { e'4 d'
\bar "||"
f' e' }
- \newcontext Staff { \clef bass c4 g e g } >
-\newcontext Staff { \clef bass c2 c2 } >
+ \new Staff { \clef bass c4 g e g } >
+\new Staff { \clef bass c2 c2 } >
@end lilypond
@lilypond[singleline, verbatim]
\relative c''
-\context Staff < \newcontext Voice { \voiceOne cis2 b }
- \newcontext Voice { \voiceThree b4 ais ~ ais4 gis4 }
- \newcontext Voice { \voiceTwo fis4~ fis4 f ~ f } >
+\context Staff < \new Voice { \voiceOne cis2 b }
+ \new Voice { \voiceThree b4 ais ~ ais4 gis4 }
+ \new Voice { \voiceTwo fis4~ fis4 f ~ f } >
@end lilypond
Normally, note heads with a different number of dots are not merged, but
@example
\score @{
\notes \relative c'' <
- \newcontext Staff @{ cis4 d e2 @}
+ \new Staff @{ cis4 d e2 @}
\context GrandStaff <
\pianoAccidentals
- \newcontext Staff @{ cis4 d e2 @}
- \newcontext Staff @{ es2 c @}
+ \new Staff @{ cis4 d e2 @}
+ \new Staff @{ es2 c @}
>
- \newcontext Staff @{ es2 c @}
+ \new Staff @{ es2 c @}
>
@}
@end example
@lilypond[singleline]
\score {
\notes \relative c'' <
- \newcontext Staff { cis4 d e2 }
+ \new Staff { cis4 d e2 }
\context GrandStaff <
\pianoAccidentals
- \newcontext Staff { cis4 d e2 }
- \newcontext Staff { es2 c }
+ \new Staff { cis4 d e2 }
+ \new Staff { es2 c }
>
- \newcontext Staff { es2 c }
+ \new Staff { es2 c }
>
\paper {
\translator {
every eighth grace note:
@lilypond[relative=2,verbatim,fragment]
-< \newcontext Staff { e4 \grace { c16[ d e f] } e4 }
- \newcontext Staff { c'4 \grace { g8[ b] } c4 } >
+< \new Staff { e4 \grace { c16[ d e f] } e4 }
+ \new Staff { c'4 \grace { g8[ b] } c4 } >
@end lilypond
the main note, is and denoted without a slash.
Such slashless notes are obtained by setting the object property
-@code{stroke-style} of the @internalsref{Stem} object. For proper
-matching of override and reverts of such properties, it is necessary
-to use a Scheme function.
-
-The following fragment overrides the default formatting Grace style stems:
-@example
- #(add-to-grace-init "Voice" 'Stem 'stroke-style '())
-@end example
-
-The @code{\override} is carefully matched with a @code{\revert}:
-
+@code{stroke-style} of the @internalsref{Stem} object:
@cindex slash
@cindex grace slash
} c4
}
@end lilypond
+The @code{\override} is carefully matched with a @code{\revert}:
+
If you want to end a note with a grace note, then the standard trick
is to put the grace notes before a phantom ``space note'', e.g.
care when you mix staves with grace notes and staves without, for example,
@lilypond[relative=2,verbatim,fragment]
-< \newcontext Staff { e4 \bar "|:" \grace c16 d4 }
- \newcontext Staff { c4 \bar "|:" d4 } >
+< \new Staff { e4 \bar "|:" \grace c16 d4 }
+ \new Staff { c4 \bar "|:" d4 } >
@end lilypond
Grace sections should only be used within sequential music
\score {
\apply #(drums->paper 'drums) \context Staff <
\clef percussion
- \newcontext Voice { \voiceOne \up }
- \newcontext Voice { \voiceTwo \down }
+ \new Voice { \voiceOne \up }
+ \new Voice { \voiceTwo \down }
>
}
\score {
\apply #(drums->paper 'mydrums) \context Staff <
\clef percussion
- \newcontext Voice { \voiceOne \up }
- \newcontext Voice { \voiceTwo \down }
+ \new Voice { \voiceOne \up }
+ \new Voice { \voiceTwo \down }
>
}
@end lilypond
bass = \notes \transpose c c,, { a4. e8 r e g e }
\score {
<
- \apply #(drums->paper 'drums) \newcontext Staff <
+ \apply #(drums->paper 'drums) \new Staff <
\clef percussion
- \newcontext Voice { \voiceOne \up }
- \newcontext Voice { \voiceTwo \down }
+ \new Voice { \voiceOne \up }
+ \new Voice { \voiceTwo \down }
>
- \newcontext Staff { \clef "F_8" \bass }
+ \new Staff { \clef "F_8" \bass }
>
}
@end lilypond
@lilypond[fragment,relative,verbatim]
\context PianoStaff <
\property PianoStaff.connectArpeggios = ##t
- \newcontext Staff { <<c' e g c>>-\arpeggio }
- \newcontext Staff { \clef bass <<c,, e g>>-\arpeggio }
+ \new Staff { <<c' e g c>>-\arpeggio }
+ \new Staff { \clef bass <<c,, e g>>-\arpeggio }
>
@end lilypond
staves and lyrics first, e.g.
@example
\context ChoirStaff \notes <
- \newcontext Lyrics @{ s1 @}
- \newcontext Staff @{ s1 @}
- \newcontext Lyrics @{ s1 @}
- \newcontext Staff @{ s1 @}
+ \new Lyrics @{ s1 @}
+ \new Staff @{ s1 @}
+ \new Lyrics @{ s1 @}
+ \new Staff @{ s1 @}
>
@end example
and then combine the appropriate melodies and lyric lines:
@example
\addlyrics
- \newcontext Staff @emph{the music}
- \newcontext Lyrics @emph{the lyrics}
+ \new Staff @emph{the music}
+ \new Lyrics @emph{the lyrics}
@end example
putting both together, you would get
@example
\context ChoirStaff \notes <
- \newcontext Lyrics @dots{}
- \newcontext Staff @dots{}
+ \new Lyrics @dots{}
+ \new Staff @dots{}
\addlyrics @dots{}
>
@end example
\score {
\context ChoirStaff {
<
- \newcontext Staff { \upper }
- \newcontext Staff { \lower }
+ \new Staff { \upper }
+ \new Staff { \lower }
>
}
\paper {
@lilypond[verbatim]
\score {
\notes \relative c' <
- \newcontext Staff { e4 f g a \break c1 }
- \newcontext Staff { c4 d e f \break R1 }
+ \new Staff { e4 f g a \break c1 }
+ \new Staff { c4 d e f \break R1 }
>
\paper {
linewidth = 6.\cm
@quotation
@lilypond[fragment,verbatim]
\simultaneous {
- \newcontext Staff { \clef violin c'' }
- \newcontext Staff { \clef bass c }
+ \new Staff { \clef violin c'' }
+ \new Staff { \clef bass c }
}
@end lilypond
@end quotation
@lilypond[verbatim,singleline]
\score {
\notes
- < \newcontext Staff {
+ < \new Staff {
\time 3/4
\clef violin
\relative c'' {
e2( d4 c2 b4 a8[ a]
b[ b] g[ g] a2.) }
}
- \newcontext Staff {
+ \new Staff {
\clef bass
c2 e4 g2.
f4 e d c2.
@lilypond[fragment]
<
- \newcontext Staff
+ \new Staff
\relative c''
< { a4 g2 f4-~ f4 } \\
{ s4 g4 f2 f4 } >
- \newcontext Staff
+ \new Staff
< { \clef bass <<c g>>1 } \\
{ f4 d e2 }
>
Printing such a staff is done similar to the polyphonic example in
@ref{Combining music into compound expressions}:
@example
- < \newcontext Staff @{ @dots{} @}
- \newcontext Staff @{ @dots{} @}
+ < \new Staff @{ @dots{} @}
+ \new Staff @{ @dots{} @}
>
@end example
but now this entire expression must be interpreted as a
@lilypond[relative 0,fragment]
\context PianoStaff
- < \newcontext Staff { \time 2/4
+ < \new Staff { \time 2/4
c4 c g' g }
- \newcontext Staff {
+ \new Staff {
\clef bass c,, c' e c }
>
@end lilypond
\score @{
\simultaneous @{
- \newcontext Staff \hornNotes
- \newcontext Staff \bassoonNotes
+ \new Staff \hornNotes
+ \new Staff \bassoonNotes
@} @}
@end example
@lilypond[singleline]
\score {
\notes \relative c \simultaneous {
- \newcontext Staff { \time 2/4
+ \new Staff { \time 2/4
R2*3
r4 f8 a cis4 f e d }
- \newcontext Staff { \clef bass
+ \new Staff { \clef bass
r4 d,8 f | gis4 c | b bes |
a8 e f4 | g d | gis f }
} }
rm -rf $(outdir)/./usr
ar p $< data.tar.gz | \
tar -C $(outdir) -zxf - $(lld)/dvips $(lld)/fonts/type1
- # strip the $(lld) part?
+# strip the $(lld) part?
tar -C $(outdir) -czf $@ ./usr
get-pfa-fonts: $(outdir)/$(fontball)
-#(ly:set-option 'old-relative)
\version "1.9.1"
% A simple scale in LilyPond
%
-#(ly:set-option 'old-relative)
\version "1.9.1"
% Some beamed and slurred notes of different taste in LilyPond
%
\score {
\context Voice \notes\relative c {
- a''2 ~ c4( [e8 )e] [a,16 a a a]
+ a''2 ~ a4( e8[ )e] a,16[ a a a]
}
\paper { }
\midi { }
piece = "Piece"
composer = "Composer"
enteredby = "JCN"
- instrument = \instrument
+ instrument = "Instrument printed over the score"
% mutopia headers.
mutopiatitle = ""
mutopiacomposer = ""
mutopiaopus = ""
- mutopiainstrument = \instrument
+ mutopiainstrument = "File under these instruments at mutopia."
date = "1807"
source = "Urtext edition"
style = "Classical"
copyright = "Public Domain"
maintainer = "Jan Nieuwenhuizen"
- maintainer_email = "janneke@gnu.org"
+ maintainerEmail = "janneke@gnu.org"
lastupdated = "2001/Mar/19"
mutopiapublicdomain = "\\parbox{\hsize}{\\thefooter\\quad\\small
\\\\This music is part of the Mutopia project,
-\version "1.9.1"
+\version "1.9.2"
%% +.ly: Be the first .ly file for lys-to-tely.py.
%% Better to make lys-to-tely.py include "introduction.texi" or
%% other .texi documents too?
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "Cautionary accidentals are indicated using either
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "If two forced accidentals happen at the same time, only one
sharp sign is printed."
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "Ledger lines are shortened when there are accidentals."
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc="
-\version "1.9.1"
+\version "1.9.2"
\header {
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc="
A sharp sign after a double sharp sign, as well as a flat sign
the spacing when unbroken."
}
-\version "1.9.1"
+\version "1.9.2"
\include "deutsch.ly"
rechts = \notes \relative c' {
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc="
\score {
<
\notes
- \context NoteNames=namesa \apply #no-octaves \voicea
+ \new NoteNames \apply #no-octaves \voicea
\context Staff <
\modernVoiceCautionaries
- \context Voice = voicea \voicea
- \context Voice = voiceb \voiceb
+ \new Voice \voicea
+ \new Voice \voiceb
>
- \context NoteNames=namesb \apply #no-octaves \voiceb
+ \new NoteNames \apply #no-octaves \voiceb
>
}
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc="
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc="
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc="
\alternative {
{
d-4_\markup { \italic "cantabile" } }
- { e } } \grace { c16 }
+ { e } } \accacciatura { c16 }
f4\ff^""^\markup { \large "Largo" } \mark "B" g
}
%}
-\version "1.9.1"
+\version "1.9.2"
upper = \notes \relative c {
\clef "treble"
\score { \context ChoirStaff {
<
- \context Staff = one { \upper }
- \context Staff = three { \lower }
+ \new Staff { \upper }
+ \new Staff { \lower }
> }
\paper {
\translator {
-\version "1.9.1"
+\version "1.9.2"
\header {
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "The @code{\applyoutput} expression is the most flexible way to
#(ly:set-option 'old-relative)
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "Arpeggio stays clear of accidentals and flipped note heads.
}
hairyChord = \context Staff \notes\relative c' <
- \context Voice=one {
+ \new Voice {
\property Voice.Stem \override #'direction = #1
\property Voice.NoteColumn \override #'horizontal-shift = #0
e4\arpeggio
}
- \context Voice=two {
+ \new Voice {
\property Voice.Stem \override #'direction = #1
\property Voice.NoteColumn \override #'horizontal-shift = #1
cis\arpeggio
}
- \context Voice=three {
+ \new Voice {
\property Voice.Stem \override #'direction = #1
\property Voice.NoteColumn \override #'horizontal-shift = #2
ais\arpeggio
}
- \context Voice=four {
+ \new Voice {
\property Voice.Stem \override #'direction = #-1
\property Voice.NoteColumn \override #'horizontal-shift = #-1
fis\arpeggio
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc="
Arpeggios are supported, both cross-staff and broken single staff.
\score{
\context PianoStaff <
- \context Staff=one \notes\relative c''{
+ \new Staff \notes\relative c''{
\context Voice << fis, d a >>\arpeggio
\property Staff.Arpeggio \override #'arpeggio-direction = #1
\context Voice << fis, d a >>\arpeggio
\property PianoStaff.connectArpeggios = ##t
<<fis, a c>>\arpeggio
}
- \context Staff=two \notes\relative c{
+ \new Staff \notes\relative c{
\clef bass
\context Voice << g b d >>\arpeggio
\property Staff.Arpeggio \override #'arpeggio-direction = #-1
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc="
texidoc = "Automatic beaming is also done on tuplets."
}
-\version "1.9.1"
+\version "1.9.2"
\score{
\notes\relative c''{
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "Tuplet-spanner should not put (visible) brackets on
}
-\version "1.9.1"
+\version "1.9.2"
-\version "1.9.1"
+\version "1.9.2"
\header {
-\version "1.9.1"
+\version "1.9.2"
\header {
#(ly:set-option 'old-relative)
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc="
}
-onestaff = \context Staff = foo\notes\relative c'' {
+onestaff = \new Staff\notes\relative c'' {
\property Staff.instr = instr
\property Staff.instrument = instrument \mark "B"
c1 \mark "A" \break c2 c2 \break
}
grstaff = \notes \relative c'' \context GrandStaff <
- \context Staff = bar {
+ \new Staff {
\property Staff.instr = instr
\mark "B" \break c1 \mark "A" c2 }
- \context Staff = bufl { c1 c2 }
+ \new Staff { c1 c2 }
>
-\version "1.9.1"
+\version "1.9.2"
\header{ texidoc="Automatic kneeing. A knee is made when a horizontal
beam fits in a gap between note heads that is larger than a predefined
"
}
-\version "1.9.1"
+\version "1.9.2"
\paper { raggedright= ##t }
\score { \notes \relative c'' {
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc="Simple beams on middle staffline are allowed to be
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "If the first and last outer notes of a beam are the same,
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc = "Concave beams should be horizontal. Informally spoken,
-\version "1.9.1"
+\version "1.9.2"
\header{
#(ly:set-option 'old-relative)
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "Cross staff (kneed) beams don't cause extreme slopes."
}
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc="
Beams can be typeset over fixed distance aligned staves, beam
-\version "1.9.1"
+\version "1.9.2"
\header { texidoc = "@cindex Beam Damp
Beams are less steep than the notes they encompass. " }
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc="Beamed stems have standard lengths if possible."
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc="
Beams should behave reasonably well, even under extreme circumstances.
-\version "1.9.1"
+\version "1.9.2"
\header {
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc=" Funky kneed beams with beamlets also work. The beamlets
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "Knee beaming, complex configurations. According to
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "Point-symmetric beams should receive the same
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc="
-\version "1.9.1"
+\version "1.9.2"
\header {
-\version "1.9.1"
+\version "1.9.2"
\header {
}
\score {
- \context Staff = up {
\notes\relative c'{
\property Voice.Beam \override #'auto-knee-gap = ##f
\property Voice.Beam \override #'positions = #'(-10 . 10)
c16[ c'' a f]
}
- }
\paper{
raggedright = ##t
}
#(ly:set-option 'old-relative)
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "Kneed beams (often happens with cross-staff beams)
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "Explicit beams may cross barlines. "
}
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc="
Beams should always reach the middle staff line. The second beam
\score {
\context Voice \notes\relative c {
f8[ f] f64[ f]
- \grace {
+ \grace {
f8[ e8]
\property Voice.Stem \override #'no-stem-extend = ##f
f8[ e8]
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "Beams and ties may be entered in postfix notation, separating the
-\version "1.9.1"
+\version "1.9.2"
\header{
-\version "1.9.1"
+\version "1.9.2"
\header
{
texidoc= "Quarter notes may be beamed: the beam is halted momentarily."
texidoc = "The number of beams doesn't change on a rest."
}
-\version "1.9.1"
+\version "1.9.2"
\score { \notes \relative c, {
\clef bass
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc="
Seconds are tricky. We used to have problems with seconds being too
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc="Beams in unnatural direction, have shortened stems, but do not look too short."
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc = "Hairy case for beam, chord, and automatic knees."
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "Automatic beaming works also in ternary time sigs."
}
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc="
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "Beams (simple)."
}
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc="
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc="
#(ly:set-option 'old-relative)
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc="
Breathing signs, also used for phrasing, do normally not influence
\key es \major \time 3/4
% this bar contains no \breathe
- < \context Voice = two { \stemDown es4 bes es }
- \context Voice = one { \stemUp g4 as g }
+ < { g4 as g }
+\\{ es4 bes es }
> |
% by default, \breathe uses the rcomma, just as if saying:
% \property Voice.BreathingSign \set #'text = #"scripts-rcomma"
- < \context Voice = two { \stemDown es4 \breathe bes es }
- \context Voice = one { \stemUp g4 as g }
+ <
+ { g4 as g }\\{ es4 \breathe bes es }
> |
% rvarcomma and lvarcomma are variations of the default rcomma and lcomma
% N.B.: must use Staff context here, since we start a Voice below
\property Staff.BreathingSign \override #'text = #"scripts-rvarcomma"
- < \context Voice = two { \stemDown es4 \breathe bes es }
- \context Voice = one { \stemUp g4 as g }
+ < { g4 as g }\\
+ { es4 \breathe bes es }
> |
% wedge
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc="Property chordChanges: display chord names only when
-\version "1.9.1"
+\version "1.9.2"
\header {
-\version "1.9.1"
+\version "1.9.2"
\header {
-\version "1.9.1"
+\version "1.9.2"
\header { texidoc = "The property @code{chordNameExceptions} can used
to store a list of special notations for specific chords.
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "The layout of the major 7 can be tuned with
@code{majorSevenSymbol}."
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "Scripts can also be attached to chord elements."
#(ly:set-option 'old-relative)
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc="
-\version "1.9.1"
+\version "1.9.2"
\header {
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc="
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "Clusters are a device to denote that a complete range of
notes is to be played."
\score {
\notes <
- \context Staff = SA \fragment
- \context Staff = SB \apply #notes-to-clusters \fragment
+ \new Staff \fragment
+ \new Staff \apply #notes-to-clusters \fragment
>
\paper { raggedright = ##t }
}
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "Collisions for single head notes. "
}
on the right side."
}
-\version "1.9.1"
+\version "1.9.2"
\paper { raggedright= ##t }
\score{
\context Staff \notes <
\clef "bass"
- \context Voice = "Tenor" {
+ \new Voice {
\stemUp
b8. c'16 d'4 b8 c'8 d'4
}
- \context Voice = "Bass" {
+ \new Voice {
\stemDown
b2 b2
}
#(ly:set-option 'old-relative)
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "Note heads in collisions should be merged if
they have the same positions in the extreme note heads.
#(ly:set-option 'old-relative)
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc =
\score { \notes \context Staff\relative c''<
-\context Voice = VA {
+\new Voice {
\voiceOne
c2 c8 c4.
c8 c4.
c2
}
-\context Voice = VB {
+\new Voice {
\voiceTwo
c8 c4.
c2
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "If NoteCollision has merge-differently-dotted set, note
\score { \notes {
\context Staff <
- \context Voice = VA { \voiceOne g'8 g'8
+ \new Voice { \voiceOne g'8 g'8
\property Staff.NoteCollision \override #'merge-differently-dotted = ##t
g'8 g'8
}
- \context Voice = VB { \voiceTwo g'8.[ f16] g'8.[ f'16] }
+ \new Voice { \voiceTwo g'8.[ f16] g'8.[ f'16] }
>
}}
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "Oppositely stemmed chords, meshing into each other,
are resolved."
\context Staff \notes \transpose c c' {
\time 3/4
% Here's what I was trying to do:
- < \context Voice = VI {\stemDown
+ < {
+ d'4
+ d'4.
+ <<a c'>>4
+ <<g b g'>>4
+ <<g b g'>>4.
+ }\\ {
<<g b g'>>4
<<g b g'>>4.
<<g b d'>>4
d'4
d'4.
}
-
- \context Voice=VII {\stemUp
- d'4
- d'4.
- <<a c'>>4
- <<g b g'>>4
- <<g b g'>>4.
- } >
+ >
}
}
#(ly:set-option 'old-relative)
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc="
Normal collisions. We have support for polyphony, where the
twovoice =
\notes \relative c' \context Staff \notes <
- \context Voice=i { \stemDown c4 c d d e e f f }
- \context Voice=ii { \stemUp g4 f f e e d d c }
+ { g4 f f e e d d c }
+\\ { c4 c d d e e f f }
>
twovoicechords = \context Staff \notes <
- \context Voice = i \relative c' {
- \stemUp e4 d c b a g f
- }
- \context Voice = ii \relative c' {
- \stemDown <<a c>>4 <<a c>>4 <<a c>>4 <<a c>>4 <<a c>>
+ \relative c' {
+ e4 d c b a g f
+ }\\
+ \relative c' {
+ <<a c>>4 <<a c>>4 <<a c>>4 <<a c>>4 <<a c>>
<<a c>> <<a c>>
}
>
#(ly:set-option 'old-relative)
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "Completion heads are broken across bar lines. This was
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc="
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "Custodes in various styles."
}
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "Dots move to the right when a collision with the (up)flag happens."
}
#(ly:set-option 'old-relative)
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc="
Noteheads can have dots, and rests can too. Augmentation dots should
\context Staff <
- \context Voice = VA { \stemUp f'' <<b c>> r4. }
- \context Voice = VB { \stemDown b, <<a b>> r4. }
+ { f'' <<b c>> r4. }\\
+ { b, <<a b>> r4. }
>
\include "drumpitch-init.ly"
-\version "1.9.1"
+\version "1.9.2"
drh = \notes { cymc4.^"crash" hhc16^"h.h." hh \repeat "unfold" 5 {hhc8 hho hhc8 hh16 hh} hhc4 r4 r2 }
drl = \notes {\repeat "unfold" 3 {bd4 sn8 bd bd4 < bd ss > } bd8 tommh tommh bd toml toml bd tomfh16 tomfh }
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc = "Broken crescendi should be open on one side."
}
-\version "1.9.1"
+\version "1.9.2"
\header {texidoc = "Dynamic letters are kerned, and their weight
matches that of the hairpin signs. The dynamic scripts should be
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc=" Dynamics appear below or above the staff. If multiple
dynamics are linked with (de)crescendi, they should be on the same
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "Crescendi may start off-notes. In that case, they should not collapse into flat lines."
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = " Ez-notation prints names in note heads.
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "
Figured bass is created by the FiguredBass context which eats
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "With the new chord syntax it's possible to associate
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "Automatic fingering tries to put fingering instructions
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc = "
When put across line breaks, only the part before the line break is
-\version "1.9.1"
+\version "1.9.2"
\header { texidoc = "The magnification can be set for any font. Note
that this doesn't change variable symbols such as beams or slurs. " }
-\version "1.9.1"
+\version "1.9.2"
\header {
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc="
#(ly:set-option 'old-relative)
-\version "1.9.1"
+\version "1.9.2"
\header{
-\version "1.9.1"
+\version "1.9.2"
\header
{
texidoc = "The autobeamer is not confused by grace notes."
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "Bar line should come before the grace note."
}
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "Grace notes do tricky things with timing. If a measure
\paper { raggedright= ##t }
-\version "1.9.1"
+\version "1.9.2"
\score { \notes\relative c'' { c4 d8[ \grace { e32[ d c d] } e8] e[ e \grace { f16 } e8 e] }}
-\version "1.9.1"
+\version "1.9.2"
\header{
% ?
% niet zo onschuldig! je hebt graces gefixt in 1.5, zie maar eens 1.3.150
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc="@cindex Grace End
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "Grace code should not be confused by nested sequential musics, containing grace notes; practically speaking, this means that the end-bar and measure bar coincide in this example."
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "Grace code should not be confused by nested sequential musics, containing grace notes; practically speaking, this means that the end-bar and measure bar coincide in this example."
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "Grace code should not be confused by nested sequential musics, containing grace notes; practically speaking, this means that the end-bar and measure bar coincide in this example."
#(ly:set-option 'old-relative)
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "Another nested grace situation."
}
#(ly:set-option 'old-relative)
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "Another combination of grace note nesting."
}
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "Another nested grace situation."
}
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "Partcombiner and grace notes can go together."
}
\paper { raggedright= ##t }
\score {
- \context StaffGroup = group <
- \context Staff = instrument <
+ \new StaffGroup <
+ \new Staff <
\context Voice=one \partcombine Voice
\context Thread=one \notes \relative c'' {
c4 d e f \grace f16 g1
#(ly:set-option 'old-relative)
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc = "Stripped version of trip.ly. Staffs should be of correct length."
}
\score{
\context PianoStaff \notes \relative c'' <
- \context Staff = treble {
+ \new Staff {
r1
r1
\bar "|."
}
- \context Staff = bass {
+ \new Staff {
r1
\context Staff {
\grace { c16 } c1
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "Pieces may begin with grace notes."
}
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc = "Here startGraceMusic should set no-stem-extend to true;
the two grace beams should be the same here.
#(ly:set-option 'old-relative)
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "Grace notes in different voices/staves are synchronized."
}
\score {\notes\relative c'' < \context Staff { c2
\grace c8
c4 c4 }
- \context Staff = SB { c2 \clef bass
+ \new Staff { c2 \clef bass
\grace { dis8[ ( d8] \key es\major }
c4) c4 }
- \context Staff = SC { c2 c4 c4 \bar "|." }
+ \new Staff { c2 c4 c4 \bar "|." }
>
\paper { raggedright = ##t}
}
#(ly:set-option 'old-relative)
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "Grace notes and unfolded repeats.
Line breaks may happen before grace notes.
#(ly:set-option 'old-relative)
-\version "1.9.1"
+\version "1.9.2"
\header {
#(ly:set-option 'old-relative)
-\version "1.9.1"
+\version "1.9.2"
\header {
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc="
-\version "1.9.1"
+\version "1.9.2"
\header {
-\version "1.9.1"
+\version "1.9.2"
\header { texidoc =
\score { \notes \transpose c c''
\context PianoStaff <
- \context Staff = up { c4 c c c \break s1 \break c4 c c c \break c c c c}
- \context Staff = mid { d4 d d d s1 s1 s1 s1 }
- \context Staff = down { e4 e e e s1 e4 e e e s1 }
+ \new Staff { c4 c c c \break s1 \break c4 c c c \break c c c c}
+ \new Staff { d4 d d d s1 s1 s1 s1 }
+ \new Staff { e4 e e e s1 e4 e e e s1 }
>
\paper {
\translator {
}
-\version "1.9.1"
+\version "1.9.2"
textFlat = \markup {\smaller \musicglyph #"accidentals--1"}
\score {
- \notes \context Staff = treble {
+ \notes \new Staff {
\property Staff.instrument
= \markup { \column << "Clarinetti" { "in B" \textFlat } >> }
\property Staff.instr
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "Instrument names are also printed on partial starting measures."
}
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc="
Staff margins are also markings attached to barlines. They should be
-\version "1.9.1"
+\version "1.9.2"
\header { texidoc = "Tests placement of accidentals in every clef. " }
\score { \notes
-\version "1.9.1"
+\version "1.9.2"
\header { texidoc = "Key signatures can be set per pitch
individually. This can be done by setting @code{Staff.keySignature}
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc="
Key signatures appear on key changes. They may also
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc="
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc ="Polyphonic rhythms and rests don't disturb
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc= "Lyrics can be set to a melody automatically. Excess lyrics will be
#(ly:set-option 'old-relative)
-\version "1.9.1"
+\version "1.9.2"
\header { texidoc= "Tests lyric extenders. "}
\paper { raggedright= ##t }
-\version "1.9.1"
+\version "1.9.2"
\header {texidoc="Tests lyric hyphens. "}
\score{
<
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc="Lyric phrasing
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc="
this4 one has no BarEngraverAddedToContext1
}
>
- \notes \context Staff = SB { b1 b1 }
+ \notes \new Staff { b1 b1 }
>
\paper {
raggedright = ##t
#(ly:set-option 'old-relative)
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc =
-\version "1.9.1"
+\version "1.9.2"
\header
{
texidoc = "Melismata are triggered by manual beams."
\score {
\simultaneous {
\addlyrics
- \context Staff = mel
+ \new Staff
\notes \relative c'' {
\property Staff.autoBeaming = ##f
c8 c8[ c8 c8] c8 }
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "Lyrics syllables are aligned according to
\score {
\addlyrics
- \notes \relative c'' \context Voice = duetto { \time 3/4 g2 e4 a2 f4 g2. }
+ \notes \relative c'' \context Voice = duet { \time 3/4 g2 e4 a2 f4 g2. }
\lyrics \context Lyrics <
\context LyricsVoice = "duet-1" {
\property LyricsVoice . stanza = "Bert"
texidoc = "The note markup function is used to make metronome
markings. It works for a variety of flag dot and duration settings."
}
-\version "1.9.1"
+\version "1.9.2"
\score { \notes { c4^\markup {
\note #0 #0 #1
-\version "1.9.1"
+\version "1.9.2"
\header {texidoc="Stacking of markup scripts."}
\paper { raggedright = ##t}
\score { \notes { c''^\markup { "a" \column << "1" \bold "2" "3" >> } } }
}
-\version "1.9.1"
+\version "1.9.2"
%% TODO: should have 2/4 + 5/8 time sig style.
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "There is limited support for mensural notation: note head
}
-\version "1.9.1"
+\version "1.9.2"
\score { \notes \relative c'' { \tempo \breve = 100 c1 c1 \tempo 8.. = 50 c1 }
\paper { raggedright = ##t }
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc="
-\version "1.9.1"
+\version "1.9.2"
\header { texidoc = "Tests a collision between multimeasure rests in
different voices. " }
\score {
\context Staff \notes <
- \context Voice=i {
+ \new Voice {
\property Voice.MultiMeasureRest \override #'staff-position = #3
R1
}
- \context Voice=ii {
+ \new Voice {
\property Voice.MultiMeasureRest \override #'staff-position = #-3
R1
}
-\version "1.9.1"
+\version "1.9.2"
\header { texidoc=" You can write molecule callbacks in Scheme, thus
providing custom glyphs for notation elements. A simple example is
-\version "1.9.1"
+\version "1.9.2"
\header
{
texidoc = "The multimeasure rest is centered exactly between bar lines."
-\version "1.9.1"
+\version "1.9.2"
\header {
\score {
\notes <
- \context Staff = SB { R1 R1 R1*3 }
- \context Staff = SA { \clef bass c1 \grace c8 c2 c2 c1 \grace c16 c2 c2 c1 }
+ \new Staff { R1 R1 R1*3 }
+ \new Staff { \clef bass c1 \grace c8 c2 c2 c1 \grace c16 c2 c2 c1 }
>
}
-\version "1.9.1"
+\version "1.9.2"
\header { texidoc = "This combines instrument names and multimeasure rests (there was an
interesting bug in 1.3.98). " }
-\version "1.9.1"
+\version "1.9.2"
\header {
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc="
}
-\version "1.9.1"
+\version "1.9.2"
#(define (notes-to-skip m)
"Convert all stuff with duration (notes, lyrics, bass figures, etc.) to skips.
texidoc = "New markup syntax."
}
-\version "1.9.1"
+\version "1.9.2"
\score {
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc="
-\version "1.9.1"
+\version "1.9.2"
\header {
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "Note heads are flipped on the stem to prevent collisions.
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc="
Note head shapes are settable. The stem endings should be adjusted
\property Staff.NoteHead \set #'style = #'default
<
- \context Voice = up {
+ \new Voice {
\property Voice.Stem \set #'direction = #1 %up
e'16^\markup { "NoteHead \#'style = \#'default" }
e'16 e'8 e'4 e'2 e'1 e'\breve e'\longa
}
- \context Voice = down {
+ \new Voice {
\property Voice.Stem \set #'direction = #-1 %down
a16 a16 a8 a4 a2 a1 a\breve a\longa
}
\property Staff.NoteHead \set #'style = #'baroque
<
- \context Voice = up {
+ \new Voice {
\property Voice.Stem \set #'direction = #1 %up
e'16^\markup { "NoteHead \#'style = \#'baroque" }
e'16 e'8 e'4 e'2 e'1 e'\breve e'\longa
}
- \context Voice = down {
+ \new Voice {
\property Voice.Stem \set #'direction = #-1 %down
a16 a16 a8 a4 a2 a1 a\breve a\longa
}
\property Staff.NoteHead \set #'style = #'neo_mensural
<
- \context Voice = up {
+ \new Voice {
\property Voice.Stem \set #'direction = #1 %up
e'16^\markup { "NoteHead \#'style = \#'neo\_mensural" }
e'16 e'8 e'4 e'2 e'1 e'\breve e'\longa
}
- \context Voice = down {
+ \new Voice {
\property Voice.Stem \set #'direction = #-1 %down
a16 a16 a8 a4 a2 a1 a\breve a\longa
}
\property Staff.NoteHead \set #'style = #'mensural
<
- \context Voice = up {
+ \new Voice {
\property Voice.Stem \set #'direction = #1 %up
e'16^\markup { "NoteHead \#'style = \#'mensural" }
e'16 e'8 e'4 e'2 e'1 e'\breve e'\longa
}
- \context Voice = down {
+ \new Voice {
\property Voice.Stem \set #'direction = #-1 %down
a16 a16 a8 a4 a2 a1 a\breve a\longa
}
\property Staff.NoteHead \set #'style = #'harmonic
<
- \context Voice = up {
+ \new Voice {
\property Voice.Stem \set #'direction = #1 %up
e'16^\markup { "NoteHead \#'style = \#'harmonic" }
e'16 e'8 e'4 e'2 e'1 e'\breve e'\longa
}
- \context Voice = down {
+ \new Voice {
\property Voice.Stem \set #'direction = #-1 %down
a16 a16 a8 a4 a2 a1 a\breve a\longa
}
\property Staff.NoteHead \set #'style = #'diamond
<
- \context Voice = up {
+ \new Voice {
\property Voice.Stem \set #'direction = #1 %up
e'16^\markup { "NoteHead \#'style = \#'diamond" }
e'16 e'8 e'4 e'2 e'1 e'\breve e'\longa
}
- \context Voice = down {
+ \new Voice {
\property Voice.Stem \set #'direction = #-1 %down
a16 a16 a8 a4 a2 a1 a\breve a\longa
}
\property Staff.NoteHead \set #'style = #'cross
<
- \context Voice = up {
+ \new Voice {
\property Voice.Stem \set #'direction = #1 %up
e'16^\markup { "NoteHead \#'style = \#'cross" }
e'16 e'8 e'4 e'2 e'1 e'\breve e'\longa
}
- \context Voice = down {
+ \new Voice {
\property Voice.Stem \set #'direction = #-1 %down
a16 a16 a8 a4 a2 a1 a\breve a\longa
}
\property Staff.NoteHead \set #'style = #'xcircle
<
- \context Voice = up {
+ \new Voice {
\property Voice.Stem \set #'direction = #1 %up
e'16^\markup { "NoteHead \#'style = \#'xcircle" }
e'16 e'8 e'4 e'2 e'1 e'\breve e'\longa
}
- \context Voice = down {
+ \new Voice {
\property Voice.Stem \set #'direction = #-1 %down
a16 a16 a8 a4 a2 a1 a\breve a\longa
}
\property Staff.NoteHead \set #'style = #'triangle
<
- \context Voice = up {
+ \new Voice {
\property Voice.Stem \set #'direction = #1 %up
e'16^\markup { "NoteHead \#'style = \#'triangle" }
e'16 e'8 e'4 e'2 e'1 e'\breve e'\longa
}
- \context Voice = down {
+ \new Voice {
\property Voice.Stem \set #'direction = #-1 %down
a16 a16 a8 a4 a2 a1 a\breve a\longa
}
\property Staff.NoteHead \set #'style = #'slash
<
- \context Voice = up {
+ \new Voice {
\property Voice.Stem \set #'direction = #1 %up
e'16^\markup { "NoteHead \#'style = \#'slash" }
e'16 e'8 e'4 e'2 e'1 e'\breve e'\longa
}
- \context Voice = down {
+ \new Voice {
\property Voice.Stem \set #'direction = #-1 %down
a16 a16 a8 a4 a2 a1 a\breve a\longa
}
\property Staff.NoteHead \override #'transparent = ##t
<
- \context Voice = up {
+ \new Voice {
\property Voice.Stem \set #'direction = #1 %up
e'16^\markup { "NoteHead \#'transparent = \#\#t" }
e'16 e'8 e'4 e'2 e'1 e'\breve e'\longa
}
- \context Voice = down {
+ \new Voice {
\property Voice.Stem \set #'direction = #-1 %down
a16 a16 a8 a4 a2 a1 a\breve a\longa
}
\property Staff.NoteHead \revert #'transparent
\break
- \context Voice = another <
- \context Thread = TA {
+ \new Voice <
+ \new Thread {
\property Thread.NoteHead \set #'style = #'cross
\property Voice.Stem \set #'direction = #1
c'16
}
- \context Thread = TB {
+ \new Thread {
\property Thread.NoteHead \set #'style = #'default a16
}
- \context Thread = TC {
+ \new Thread {
\property Thread.NoteHead \set #'style = #'mensural d'16
}
>
\context Voice <
- \context Thread = TA {
+ \new Thread {
\property Thread.NoteHead \set #'style = #'cross
c'4 c'4 c'4 c'4
}
- \context Thread = TB {
+ \new Thread {
\property Thread.NoteHead \set #'style = #'mensural
c''4 \stemDown c''
\property Thread.NoteHead \set #'style = #'slash
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "Note head lines (e.g. glissando)
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc=" The number of stafflines of a staff can be set. Ledger
}
-\version "1.9.1"
+\version "1.9.2"
\paper { raggedright = ##t}
"
}
-\version "1.9.1"
+\version "1.9.2"
\paper { raggedright = ##t}
}
-\version "1.9.1"
+\version "1.9.2"
#(define (make-text-checker text)
(lambda (grob) (equal? text (ly:get-grob-property grob 'text))))
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc="Multi measure rests of second voice should not disappear."
}
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc="The partcombiner should not combine two small slurs into a big one."
}
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc="Slurs play well with phrasing slur."
-\version "1.9.1"
+\version "1.9.2"
\header {
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "Prefatory spacing.
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "Once properties take effect during a single time step only."
}
can be incremented automatically or manually. "}
-\version "1.9.1"
+\version "1.9.2"
global = \notes {
#(ly:set-option 'old-relative)
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc="
#(ly:set-option 'old-relative)
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc="
-\version "1.9.1"
+\version "1.9.2"
\header {
-#(ly:set-option 'old-relative)
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "Measure repeats are supported, and may be nested with beat repeats."
}
#(ly:set-option 'old-relative)
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "Beat repeats are supported."
}
#(ly:set-option 'old-relative)
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "Repeats may be unfolded through the Scheme function @code{unfold-repeats}."
#(ly:set-option 'old-relative)
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc="
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "When too few alternatives are present, the first alternative is repeated,
by printing a range for the 1st repeat."
#(ly:set-option 'old-relative)
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc="
#(ly:set-option 'old-relative)
-\version "1.9.1"
+\version "1.9.2"
\header
{
\score{\notes\relative c''
\context Staff <
\time 2/4
-\context Voice=upper {
+\new Voice {
r4 }
-\context Voice=lower {\voiceTwo
+\new Voice {\voiceTwo
b8 }>}
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc="
Rests should not collide with beams, stems and noteheads. Rests may
rests = \notes {
r r r r r r r r r r r r r r r r
}
-different = < \context Voice = one {
- \stemUp
+different = < {
\notes \relative c'' {
r8 a e4 a e
}
- }
- \context Voice = two {
- \stemDown
+ }\\ {
+
\notes \relative c'' {
r1
}} >
scales = \context Staff \notes <
- \context Voice=i { \stemUp r1 r2 r2 \scale c''1 c'2 a'2 \rests }
- \context Voice = ii { \stemDown a'1 a'2 d'2 \rests r1 r2 r2 \scale }
+ { r1 r2 r2 \scale c''1 c'2 a'2 \rests }
+ \\
+ { a'1 a'2 d'2 \rests r1 r2 r2 \scale }
>
restsII = \context Staff \notes {
r4 r8
- \context Staff < { \stemUp r8 } { \stemDown r8} >
- \context Staff < {\stemUp r8} r8 { \stemDown r8} >
- \context Staff < {\stemUp r8} r8 r8 { \stemDown r8} >
- \context Staff < {\stemUp r} { \stemDown r} >
- \context Staff < {\stemUp r} r { \stemDown r} >
+ \context Staff < { r8 } \\{ r8} >
+ \context Staff < { r8} r8 \\{ r8} >
+ \context Staff < { r8} r8 r8 \\ { r8} >
+ \context Staff < { r} \\ { r} >
+ \context Staff < { r} r\\ { \stemDown r} >
\stemUp
\transpose c c' { c''8[ r8 c''8 c''8]
c8[ r8 c8 c8]
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "Whole and half rests moving outside the staff should get
ledger lines."
#(ly:set-option 'old-relative)
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "Rests can have pitches--these will be affected by
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc="
-\version "1.9.1"
+\version "1.9.2"
\header
{
#(ly:set-option 'old-relative)
-\version "1.9.1"
+\version "1.9.2"
\header {
\notes \relative c'' {
c4
<<c d c'>>\marcato
- < \context Voice = VA { \voiceOne c4^^ }
- \context Voice = VB { \voiceTwo d4_^} >
+ < { c4^^ }\\
+ { d4_^ } >
}
\paper { raggedright = ##t}
}
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "Scripts can be stacked. The order is determined by a
priority field, but when objects have the same priority, the input
-\version "1.9.1"
+\version "1.9.2"
\paper { raggedright= ##t }
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc="
-\version "1.9.1"
+\version "1.9.2"
foollilypondbook = "
\score
"
-\version "1.9.1"
+\version "1.9.2"
foollilypondbook = "
\score
"
-\version "1.9.1"
+\version "1.9.2"
foollilypondbook = "
\score
"
-\version "1.9.1"
+\version "1.9.2"
foollilypondbook = "
\score
"
-\version "1.9.1"
+\version "1.9.2"
foollilypondbook = "
\score
"
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "The area underneath an (up) slur is minimised to improve the shape. "
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc="
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc="
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc="
The same goes for slurs. They behave decently when broken across
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc="Slurs should not get confused by augmentation dots. We use a lot
of dots here, to make problems more visible."
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc="
Slurs should look nice and symmetric. The curvature may increase
-\version "1.9.1"
+\version "1.9.2"
\header
{
texidoc ="Slurs may be placed over rest. The slur will avoid colliding with
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc="Manual hack for slur and staccato."
}
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc="Trend of broken slur with user-overridden stem attachment should also
follow the same vertical direction it would have had in unbroken state."
#(ly:set-option 'old-relative)
-\version "1.9.1"
+\version "1.9.2"
\header
{
texidoc = "Symmetric figures should lead to symmetric slurs."
\context Staff{
f8(f f f) f(g g f) f(a a f) f(b b f)
}
- \context Staff=x{
+ \new Staff{
e,(e e e) e(d d e) e(c c e) e(b b e)
}
>
#(ly:set-option 'old-relative)
-\version "1.9.1"
+\version "1.9.2"
\header
{
texidoc = "Symmetric figures should lead to symmetric slurs."
\context Staff{
e8(e e) e(d e) e(c e) e(b e)
}
- \context Staff=x{
+ \new Staff{
f'8(f f) f(g f) f(a f) f(b f)
}
>
#(ly:set-option 'old-relative)
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "Accidentals in different staffs don't effect the
spacing of the quarter notes here."
}
-\score { \notes \relative c'' < \context Staff = SA { \time 4/4
+\score { \notes \relative c'' < \new Staff { \time 4/4
c8[ c8 cis8 cis8]
cis8[ cis8 cis8 cis]
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "Accidentals don't influence the amount of stretchable space. "
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "Accidentals sticking out to the left
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "Downstem notes following a barline are
printed with some extra space. This is an optical correction similar
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "Clef changes at the start of a line get much more space
}
\score {\notes {
- < \context Staff = SA {
+ < \new Staff {
c'2
\clef bass e16 f a
\clef treble b
}
- \context Staff = SB {
+ \new Staff {
c'4 c'4 c'4
}>
}
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc ="Broken matter at the end of line does not upset the
#(ly:set-option 'old-relative)
-\version "1.9.1"
+\version "1.9.2"
\header { texidoc = "
A voicelet (a very short voice to get polyphonic chords correct)
should not confuse the spacing engine."
#(ly:set-option 'old-relative)
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "A clef can be folded below notes in a different staff, if
this doesn't disrupt the flow of the notes."
}
\score { \notes \relative c'' <
-\context Staff = SA { c4 c16[ c c c] c4 c4 }
- \context Staff = SB { \clef bass c,2 \clef treble c'2 }
+\new Staff { c4 c16[ c c c] c4 c4 }
+ \new Staff { \clef bass c,2 \clef treble c'2 }
>
\paper { raggedright = ##t}
#(ly:set-option 'old-relative)
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "A clef can be folded below notes in a different staff, if
}
\score { \notes \relative c'' <
- \context Staff = SA { c4 c4 c4 \bar "|." }
- \context Staff = SB { \clef bass c,2 \clef treble c'2 }
+ \new Staff { c4 c4 c4 \bar "|." }
+ \new Staff { \clef bass c,2 \clef treble c'2 }
>
\paper { raggedright = ##t
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "Spacing uses the duration of the notes, but disregards
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "Grace note spacing. Should be tuned? "
}
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "For knees, the spacing correction is such that the
#(ly:set-option 'old-relative)
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc = "Concurrent tuplets should be spaced equidistantly on
all staffs.
multipart = \notes \relative c'{
\context StaffGroup <
- \context Staff = ten \context Voice {
+ \new Staff \context Voice {
\times 2/10 { c8[ c c c c c c c c c] }
\times 2/10 { c[ c c c c c c c c c] }
}
- \context Staff = eleven \context Voice {
+ \new Staff \context Voice {
\times 2/11 { c8[ c c c c c c c c c c] }
\times 2/11 { c[ c c c c c c c c c c] }
}
}
}
-\version "1.9.1"
+\version "1.9.2"
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "Rests get a little less space, since they are narrower.
However, the feta quarter rest is relatively wide, causing this effect to be
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "Notes that are shorter than the common shortest note, Get a
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "Upstem notes before a barline are printed with some extra
-\version "1.9.1"
+\version "1.9.2"
\header{
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "For juxtaposed chords with the same direction, a
slight optical correction is used. It is constant, and only works if
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc ="Space from a normal note/barline to a grace note is
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "
When tightly spaced, hinterfleisch -> 0.
#(ly:set-option 'old-relative)
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "Span bars draw only in between staff bar lines, so setting those to transparent shows bar lines between systems only.
"
}
\score {
- \notes \relative c' \context StaffGroup = groupie <
- \context Staff = SB { a1 a1 a1}
- \context Lyrics = LB \lyrics <
+ \notes \relative c' \new StaffGroup <
+ \new Staff { a1 a1 a1}
+ \new Lyrics \lyrics <
{ bla1 die bla }
{ foo bar foo }
>
- \context Staff = SC { f1 f1 f1}
+ \new Staff { f1 f1 f1}
>
\paper {
\translator {
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc="
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "The staff is a grob, and may be adjusted as well: this one
shows a staff with 6 thick line, and a slightly large staffspace.
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "Stanza numbers may differ for the first and following systems."
}
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc="
-\version "1.9.1"
+\version "1.9.2"
\header {
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc="
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc="
Stem tremolos or rolls are tremolo signs that look like beam segments
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "LilyPond correctly determines the size of every
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc =
"
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc= "Text spanners should not repeat start text when broken."
}
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc="
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "First and second bes (tied across line break)
#(ly:set-option 'old-relative)
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "Tie engraver uses @code{busyGrobs} to keep track of
{
\notes \context Staff \relative c''
<
- \context Voice { \voiceOne \times 2/3 { c'8~ c8~ c8~ c8~ c8~ c8 } }
- \context Voice= VII { \voiceThree { b,8 ~ b8 ~ b8 ~ b8 }}
- \context Voice = VIII { \voiceTwo \times 2/5 { a,4 ~a4 ~a4~ a4~ a4 }}
+ { \times 2/3 { c'8~ c8~ c8~ c8~ c8~ c8 } }
+ \\
+ { \voiceTwo \times 2/5 { a,4 ~a4 ~a4~ a4~ a4 }}
+ \\
+ { \voiceThree { b,8 ~ b8 ~ b8 ~ b8 }}
>
}
to a different thread."
}
-\version "1.9.1"
+\version "1.9.2"
\paper { raggedright= ##t }
\score {
\notes \context Thread \relative c' {
- < c~ e \context Thread = "untied" c' >
+ < c~ e \new Thread c' >
< c e c' >
}
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc="
When tieing chords, the outer slurs point outwards, the inner slurs
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "Ties should not collide with dots."
}
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "Tieing a grace to the to a following grace or main note works."
}
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc="
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "In combination with a beam, the bracket of the tuplet
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc="Manual hack for nested tuplets, move outer tuplet up."
}
}
-\version "1.9.1"
+\version "1.9.2"
\score {
-\version "1.9.1"
+\version "1.9.2"
\header {texidoc = "Tests tuplet rests. "}
\score {
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "Horizontal tuplet brackets are shifted vertically
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc="
#(ly:set-option 'old-relative)
-\version "1.9.1"
+\version "1.9.2"
\header { texidoc= "
\translator Staff=two
b2 a
}
- \context Staff=two {\clef bass \skip 1*2 }
+ \new Staff {\clef bass \skip 1*2 }
>\paper{
linewidth =-1.
}}
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc ="Broken volta spanners behave correctly at left edge in all cases."
\notes <
- \context Staff="4"
+ \new Staff
{
\voiceB
\voiceC
texidoc = "By setting @code{voltaOnThisStaff}, repeats can be put on more staffs in a score."
}
-\version "1.9.1"
+\version "1.9.2"
vmus = \notes { \repeat volta 2 c1 \alternative { d e } }
\score {
\notes \relative c'' <
- \context StaffGroup = SGA <
+ \new StaffGroup <
\context Staff \vmus
- \context Staff = SB \vmus
+ \new Staff \vmus
>
- \context StaffGroup = SGB <
- \context Staff =SC <
+ \new StaffGroup <
+ \new Staff <
\property Staff.voltaOnThisStaff = ##t
\vmus >
- \context Staff = SD \vmus
+ \new Staff \vmus
>
>
#(ly:set-option 'old-relative)
-\version "1.9.1"
+\version "1.9.2"
\header {
-\version "1.9.1"
+\version "1.9.2"
\header {
dedication = "dedication"
title = "Title"
-\version "1.9.1"
+\version "1.9.2"
\header {
title = "Song"
subtitle = "(tune)"
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "Lead sheet format: chords with melody."
#(ly:set-option 'old-relative)
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "Popsong format: chords, melody and lyrics."
#(ly:set-option 'old-relative)
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "Melody and lyrics."
#(ly:set-option 'old-relative)
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "Only a melody."
#(ly:set-option 'old-relative)
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc ="Polyphonic piano music"
#(ly:set-option 'old-relative)
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc ="
Template that puts dynamics on a separate line, so it is neatly
#(ly:set-option 'old-relative)
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc ="Lyrics between two staffs."
#(ly:set-option 'old-relative)
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc ="Classical song format: one staff with melody and lyrics,
#(ly:set-option 'old-relative)
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "Simple piano music."
#(ly:set-option 'old-relative)
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "
-\version "1.9.1"
+\version "1.9.2"
%% +.ly: Be the first .ly file for lys-to-tely.py.
%% Better to make lys-to-tely.py include "introduction.texi" or
%% other .texi documents too?
#(ly:set-option 'old-relative)
-\version "1.9.1"
+\version "1.9.2"
%% I don't know what this example is supposed to do. delete it?
%% It shows how to use the autochange feature together with an extra
-\version "1.9.1"
+\version "1.9.2"
\header {
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc= "@cindex make-music Fingering
"
}
-\version "1.9.1"
+\version "1.9.2"
\score {
\context Voice \notes\relative c {
-\version "1.9.1"
+\version "1.9.2"
% TODO: split ancient-font into seperate files; possibly in
% different locations.
\header {
-\version "1.9.1"
+\version "1.9.2"
% TODO: move stuff from ancient-font into here? See comment
% for ancient-font.ly
\header {
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "@cindex Bagpipe Music
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "@cindex Bars Always
-\version "1.9.1"
+\version "1.9.2"
\header { texidoc = "@cindex Bar line lyric only
You can move around @code{Bar_engraver} and
@code{Span_bar_engraver} if you want bar lines on lyrics. "
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "@cindex Bar Lines
Different types of bar lines demonstrated.
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "@cindex Bar Number Every Fifth Reset
" }
-\version "1.9.1"
+\version "1.9.2"
\score {
\context Staff \notes \transpose c c' {
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc="@cindex Bar Number Show All
Second line has bar numbers on start of every measure.
-\version "1.9.1"
+\version "1.9.2"
% keep for now, although merging into beam-auto-override is a possibility.
\header {
texidoc = "@cindex Auto Beaming 4/8
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "@cindex Auto Beaming Override
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc = "@cindex Beaming Presets
The auto-beam engraver has presets for common time signatures. " }
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc="@cindex Beam Position Control
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc="@cindex Beam Count
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "@cindex Beam Dir Functions
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc="@cindex Beam Isknee
LilyPond can beam across a Piano Staff.
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc="@cindex Beam Neutral Direction
When a beam falls in the middle of the staff, LilyPond normally
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc="@cindex Beam Over Rests
-\version "1.9.1"
+\version "1.9.2"
% possible rename to invis-notes.ly
% check if other documents call this "blank notes", though. I think
% invisible notes sounds better, but whatever it is, it should be
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "@cindex Blank Paper Tab
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc="@cindex Blank Paper
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "@cindex Boxed Molecule
You can override the molecule callback to draw a box around
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "@cindex Capital Letters
You can set the font to use small caps.
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc="@cindex Cautionary Accidentals
LilyPond can display cautionary accidentals in different ways.
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "@cindex Chord Names German
By setting @code{ChordNames.chordRootNamer}, the root
-\version "1.9.1"
+\version "1.9.2"
\header {
-\version "1.9.1"
+\version "1.9.2"
\header { texidoc= "@cindex Chord Names No Inversions
Chord names don't attempt to find inversions and
bass notes. " }
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "Jazz chords can also be used without notes."
}
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "@cindex Chord Octavation
Appending @code{_8} or @code{^8} to a clef name will
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "@cindex Clef End of Line
-\version "1.9.1"
+\version "1.9.2"
\header{ texidoc = "
@cindex Clef Manual Control
-\version "1.9.1"
+\version "1.9.2"
% Ugh, we need to override some LaTeX titling stuff
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc="@cindex Count Systems
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc="@cindex Crescendi
LilyPond can print crescendi in a number of different ways.
-\version "1.9.1"
+\version "1.9.2"
% TODO: check to see if this example can be simplified using \small
% or \tiny.
\header { texidoc = "@cindex Cue Notes
@code{caesura}.
" }
-\version "1.9.1"
+\version "1.9.2"
\include "gregorian-init.ly"
-\version "1.9.1"
+\version "1.9.2"
% possible rename to slurs-?
% TODO: find out what drarn means, and if there's an overlap with drarn.ly
\header{
-\version "1.9.1"
+\version "1.9.2"
\header{texidoc="@cindex Drarn
You can attach slurs and ties to noteheads.
" }
\score {
\context Staff \notes <
- \time 3/8
- \context Voice=one \relative c'' {
+
+ \relative c'' {
+\time 3/8
\property Voice.Stem \set #'direction = #1
\property Voice.Tie \set #'direction = #1
\property Voice.Slur \set #'direction = #1
\property Voice.Slur \set #'attachment = #'(head . head)
c8~c(c)
- }
- \context Voice=two \relative c'' {
+ }\\
+ \relative c'' {
\property Voice.Stem \set #'direction = #-1
\property Voice.Tie \set #'direction = #-1
\property Voice.Slur \set #'direction = #-1
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "@cindex Dynamic Absolute Volume
Absolute dynamics have effect in MIDI files.
-\version "1.9.1"
+\version "1.9.2"
% probably should be merged into refman.
\header{
texidoc = "@cindex Dynamic Piu Forte
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "@cindex Embedded Postscript
By inserting the @TeX{} command \embeddedps, you can
-\version "1.9.1"
+\version "1.9.2"
% TODO: does this work? It doesn't do anything with 1.7.20
\header {texidoc="@cindex Embedded scm
You can embed scm functions in your scores.
-\version "1.9.1"
+\version "1.9.2"
\header{ texidoc="@cindex Embedded Tex
You can embed Tex commands in your score. "}
-\version "1.9.1"
+\version "1.9.2"
\header{ texidoc="@cindex Explicit Pitch and Duration
Explicit pitches and durations. "
-\version "1.9.1"
+\version "1.9.2"
\header { texidoc = "@cindex Scheme Move Notehead
You can move objects around with scheme. This example shows how to
move noteheads around. " }
#(ly:set-option 'old-relative)
-\version "1.9.1"
+\version "1.9.2"
% definately wil be renamed to something.
%{
(Message vers:9)
\score {
<
- \context Staff=i \notes\relative c''{ c1 c c c c }
- \context StaffGroup=ii \notes\relative c''{
- \context Staff=ii
+ \new Staff \notes\relative c''{ c1 c c c c }
+ \new StaffGroup \notes\relative c''{
+ \new Staff
c1 c
- < \context Staff=ii { c1 } \context Staff=iii { c1 } >
+ < \new Staff { c1 } \new Staff { c1 } >
c
}
>
#(ly:set-option 'old-relative)
-\version "1.9.1"
+\version "1.9.2"
%possible rename to paper-fill-a4.ly -gp
% candidate for reg -gp
% Han says no, but keeping this comment temporarily so that I don't
#(ly:set-option 'old-relative)
-\version "1.9.1"
+\version "1.9.2"
% MERGED: stuff from follow-break.ly to follow-thread.ly
% followVoice: connect note heads with line when thread switches staff
\score {
\notes\relative c {
- \context PianoStaff=ps <
+ \new PianoStaff <
\property PianoStaff.followVoice = ##t
\context Staff=one \context Voice {
\property Voice.VoiceFollower \set #'style = #'dashed-line
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc="@cindex Force hshift
Force hshift to override collisions. " }
#(ly:set-option 'old-relative)
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc="@cindex Gourlay
\score{
\notes \context Staff \relative c'' <
- \context Voice = VA { \stemUp d2 d | d d | d4 d2. | \break c1 }
- \context Voice = VB { \stemDown g4 g g g | \times 2/3 { g2 g2 g2 } | g4. g8 g2 | c1 }
- >
+ { \stemUp d2 d | d d | d4 d2. | \break c1 }
+ \\
+ { \stemDown g4 g g g | \times 2/3 { g2 g2 g2 } | g4. g8 g2 | c1 }
+ >
\paper{
raggedright = ##t
}
-\version "1.9.1"
+\version "1.9.2"
\header {
title = "Gregorian Scripts"
texidoc = "@cindex Gregorian Scripts
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc ="@cindex Artificial Harmonics
For stringed instruments, artificial harmonics are notated with
\score {
\notes { c'4
- < c'4 \context Thread = tb {
+ < c'4 \new Thread {
\property Thread.NoteHead \set #'style = #'harmonic
g'4
} >
-\version "1.9.1"
+\version "1.9.2"
#(define (my-ly-version)
#(ly:set-option 'old-relative)
-\version "1.9.1"
+\version "1.9.2"
\header { texidoc = "@cindex Horizontal Shift
You can manually shift notes horizontally. " }
\context Voice \notes\relative c {
\context Staff <
- \context Voice =VA {\stemUp \shiftI g'' }
- \context Voice =VB {\stemUp \shiftII e }
- \context Voice =VC {\stemUp \shiftIII c }
- \context Voice =VD {\stemUp \shiftIV a }
- \context Voice =VE {\stemUp \shiftV f }
+ \new Voice {\stemUp \shiftI g'' }
+ \new Voice {\stemUp \shiftII e }
+ \new Voice {\stemUp \shiftIII c }
+ \new Voice {\stemUp \shiftIV a }
+ \new Voice {\stemUp \shiftV f }
>
}
\paper { raggedright = ##t }
-\version "1.9.1"
+\version "1.9.2"
\header { texidoc = "
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc =
#(ly:set-option 'old-relative)
-\version "1.9.1"
+\version "1.9.2"
\header { texidoc = "@cindex Incipit
This shows how to make an ``incipit'' to indicate scordatora
tuning of a violin part, using the clefStyle property.
\endincipit
\violin
}}
- \context Staff = BC{\notes{
+ \new Staff {\notes{
\property Staff.Clef \override #'transparent = ##t
\bcincipit \bar ".|"
\property Staff.Clef \revert #'transparent
-\version "1.9.1"
+\version "1.9.2"
\header { texidoc = "@cindex Instrument Name Grandstaff
You can name the whole grandstaff in addition to individual staffs. " }
\paper {
raggedright = ##t
-\translator { \StaffContext
- \consists "Instrument_name_engraver"
- }
\translator { \GrandStaffContext \consists "Instrument_name_engraver" }
}}
-\version "1.9.1"
+\version "1.9.2"
% MERGE with title.ly -gp
%{
#(ly:set-option 'old-relative)
-\version "1.9.1"
+\version "1.9.2"
% possible rename to rest-foo
\header {
texidoc = "@cindex Rest Collision Count
\score{
\context Staff \notes\relative c''<
- \context Voice = x {
+ \new Voice {
a4
r
\property Staff. RestCollision \set #'maximum-rest-count = #1
r8 r8
c
}
- \context Voice = y {
+ \new Voice {
c4
r
r
r
r
}
- \context Voice = z {
+ \new Voice {
e4
r
r
-\version "1.9.1"
+\version "1.9.2"
% TODO:
% check with ancient- stuff. rename, merge, something. -gp
\score {
\context ChoirStaff <
- \context MensuralStaff = upperStaff <
+ \new MensuralStaff <
\context MensuralVoice <
\voice
>
>
- \context Staff = lowerStaff <
+ \new Staff <
\context Voice <
\voice
>
-\version "1.9.1"
+\version "1.9.2"
% candidate for regression. -gp
\header {
texidoc="MIDI and midi2ly test file. Diff between this and midi2ly.py should be minimal."
#(ly:set-option 'old-relative)
-\version "1.9.1"
+\version "1.9.2"
% possible rename to scheme- or something like that. -gp
\header { texidoc= "@cindex Scheme Manual Accidentals
Positions of accidentals may be manually set. This
-\version "1.9.1"
+\version "1.9.2"
\header { texidoc = "@cindex Scheme Move Notehead
You can move objects around with the property extra-offset. This
-\version "1.9.1"
+\version "1.9.2"
% possible rename to scheme- or something like that. -gp
\header { texidoc = "@cindex Scheme Move Text
You can move objects around with scheme. This example shows how to
-\version "1.9.1"
+\version "1.9.2"
\include "deutsch.ly"
% possible rename to scheme- something. -gp
% TODO: ask if it needs to have so many empty bars in the middle. -gp
-\version "1.9.1"
+\version "1.9.2"
pat = \notes \transpose c c' \repeat unfold 2 {
< { \context Staff=up {r8 e16 f g e f g } }
-\version "1.9.1" %% or actually: 1.7.1 ...
+\version "1.9.2" %% or actually: 1.7.1 ...
% possible rename to scheme- something. -gp
\header { texidoc = "@cindex Scheme Music Creation
You can create music expressions from Scheme. The
-\version "1.9.1"
+\version "1.9.2"
\header{ texidoc="@cindex Nested Staff Groups
LilyPond can print nested groups of staffs. "
\score { \notes
<
- \context StaffGroup = ga <
- \context Staff = sb {c' d' e' f'}
- \context InnerStaffGroup = isga <
- \context Staff = sd {c' d' e' f'}
- \context GrandStaff=gs <
- \context Staff = sgsa {c' d' e' f'}
- \context Staff = sgsb {c' d' e' f'}
+ \new StaffGroup <
+ \new Staff {c' d' e' f'}
+ \new InnerStaffGroup <
+ \new Staff {c' d' e' f'}
+ \new GrandStaff <
+ \new Staff {c' d' e' f'}
+ \new Staff {c' d' e' f'}
>
- \context Staff = sc {c' d' e' f'}
+ \new Staff {c' d' e' f'}
>
- \context ChoirStaff = csa <
- \context Staff = sd {c' d' e' f'}
- \context InnerStaffGroup=gc <
- \context Staff = sq {c' d' e' f'}
+ \new ChoirStaff <
+ \new Staff {c' d' e' f'}
+ \new InnerStaffGroup <
+ \new Staff {c' d' e' f'}
>
- \context Staff = se {c' d' e' f'}
+ \new Staff {c' d' e' f'}
>
>
- \context ChoirStaff = csb <
- \context Staff = sg {c' d' e' f'}
- \context InnerStaffGroup = isgb <
- \context Staff = sh {c' d' e' f'}
- \context Staff = si {c' d' e' f'}
+ \new ChoirStaff <
+ \new Staff {c' d' e' f'}
+ \new InnerStaffGroup <
+ \new Staff {c' d' e' f'}
+ \new Staff {c' d' e' f'}
>
- \context Staff = sj {c' d' e' f'}
+ \new Staff {c' d' e' f'}
>
>
-\version "1.9.1"
+\version "1.9.2"
% possible rename to bar-lines-foo. -gp
\header{ texidoc = "@cindex Bar Lines Remove
-\version "1.9.1"
+\version "1.9.2"
% possible rename to staff-something. -gp
\header{ texidoc = "@cindex Staff Remove
-\version "1.9.1"
+\version "1.9.2"
\header { texidoc="@cindex Octave Doubling
Octave doubling parts of music. "
}
#(ly:set-option 'old-relative)
-\version "1.9.1"
+\version "1.9.2"
% pretty much a duplicate of extra-staff.ly. candidate for merge or delete. -gp
\header { texidoc = "@cindex Ossia
\score {
\notes\relative c'' { c1 c1 <
{\clef "treble" c1 c1 }
- \context Staff = stb { c1 c1 }
+ \new Staff { c1 c1 }
>
}
\paper {raggedright= ##t}
-\version "1.9.1"
+\version "1.9.2"
% TODO: this example has a ton of text for very little output.
% Is it all needed? -gp
% should this go to regression or be delete'd? -gp
-\version "1.9.1"
+\version "1.9.2"
\header { texidoc = "@cindex Part Combine Staff
You can combine parts on two staffs, as well as two voices. "
}
-\version "1.9.1"
+\version "1.9.2"
\header{ texidoc="@cindex Part Combine
In orchestral scores and hymns, voices are traditionally combined onto
-\version "1.9.1"
+\version "1.9.2"
% check with invisible-notes or blank-notes. possible rename. -gp
\header{ texidoc = "@cindex Partial Blank
When entering half music (i.e. for students to complete by hand)
\score {
\context PianoStaff \notes <
- \context Staff = v <
+ \new Staff <
\clef G
- \context Voice=melo {\mel}
- \context Voice=invisible {
+ \new Voice {\mel}
+ \new Voice {
\property Voice.NoteHead \override #'transparent = ##t
\property Voice.Stem \override #'transparent = ##t
\property Voice.Beam \override #'transparent = ##t
\repeat unfold 4 \quickmeasure
}
>
- \context Staff = empty \notes {\clef F s1*4}
+ \new Staff \notes {\clef F s1*4}
>
\paper {}
}
-\version "1.9.1"
+\version "1.9.2"
\header{ texidoc = "@cindex Pedal
Piano pedal symbols merge stop and start. The strings are configurable.
-\version "1.9.1"
+\version "1.9.2"
\header{ texidoc="@cindex Phrasing Slur Height
Make PhrasingSlur higher, to avoid colission from other slurs. "
}
\score {
- \context Staff = melody \notes\relative c''{
+ \new Staff \notes\relative c''{
\property Staff.PhrasingSlur \override #'height-limit = #8.0
c8 \( (d e f) g ( a b c)
| c ( b a g) f ( e d c)\)
#(ly:set-option 'old-relative)
-\version "1.9.1"
+\version "1.9.2"
\header{ texidoc="
\score {
\notes \relative c' <
- \context Staff= AS {
+ \new Staff {
\time 3/4
c4 c c | c c c |
}
- \context Staff= BS {
+ \new Staff {
\time 3/4
\property Staff.timeSignatureFraction= #'(9 . 8)
\apply #display-music \apply #(scale-music-function '(2 . 3))
\repeat unfold 6 { c8[ c c] }
}
- \context Staff= DS {
+ \new Staff {
\time 3/4
\property Staff.timeSignatureFraction= #'(10 . 8)
\apply #display-music \apply #(scale-music-function '(3 . 5))
#(ly:set-option 'old-relative)
-\version "1.9.1"
+\version "1.9.2"
\header{ texidoc="@cindex Time Signature Multiple
\score{
\notes \relative c' <
- \context Staff= AS {
+ \new Staff {
\time 3/4
c4 c c | c c c |
}
- \context Staff=BS {
+ \new Staff {
\time 2/4
c4 c | c c | c c
}
- \context Staff =CS {
+ \new Staff {
\time 3/8
c4. c8 c c c4. c8 c c
}
-\version "1.9.1"
+\version "1.9.2"
\header { texidoc = "
@cindex Preset Extent
-\version "1.9.1"
+\version "1.9.2"
\header { texidoc = "@cindex Repeat Manual
You can manually control repeat signs and numbers to produce
unusual output. "
#(ly:set-option 'old-relative)
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc="
#(ly:set-option 'old-relative)
-\version "1.9.1"
+\version "1.9.2"
% possible rename to lyric-repeat or repeat-lyric.
\header{ texidoc = "@cindex Repeat Lyrics
You can use alternate lyrics as well as alternate notes for repeats. "
-\version "1.9.1"
+\version "1.9.2"
% candidate for regression. -gp
\header { texidoc = "@cindex Rest Dot Positions
This file tests dotted rests. " }
\context Staff {
\muz \break
<
- \context Voice=one { \voiceOne \muz }
- \context Voice=two { \voiceTwo \muz }
+ { \muz } \\
+ { \muz }
>
}
\paper{}
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "@cindex Rests
-\version "1.9.1"
+\version "1.9.2"
% possible rename to scheme-something.
\header { texidoc="@cindex Scheme Reverse Music
Simple customised music apply. "
-\version "1.9.1"
+\version "1.9.2"
\header { texidoc = "@cindex Rhythm Exercise
This example shows a way to generate rhythm exercises with
LilyPond (e.g. no staff but retaining the barlines). "
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "@cindex Scales Greek
Show different scales."
}
\score{
- \notes <
-
- \context Staff="default"
- {
\voicedefault
- }
-
- >
\paper { }
\midi {}
}
#(ly:set-option 'old-relative)
-\version "1.9.1"
+\version "1.9.2"
\header { texidoc = "@cindex Scheme Interactions
With @code{ly:export}, you can pass of the result of
Scheme expressions as lilypond input. Within a Scheme expression,
% this chart is used in the manual too.
-\version "1.9.1"
+\version "1.9.2"
\header { texidoc = "@cindex Script Abbreviations
Some scripts may be entered using an abbreviation.
-\version "1.9.1"
+\version "1.9.2"
% this chart is used in the manual too.
-\version "1.9.1"
+\version "1.9.2"
\header { texidoc = "@cindex Script Priority
Relative placements of different script types can be controlled
-\version "1.9.1"
+\version "1.9.2"
\header { texidoc = "@cindex Stacked Text Articulation
You can stack text and articulations. "
-\version "1.9.1"
+\version "1.9.2"
% possible rename. -gp
\header { texidoc="@cindex Seperate Staccato
music = \notes\relative c' { c4 d e f g a b c d e }
\score {
- \context Thread=one <
+ \new Thread <
\music
\repeat unfold 2 \staccatos
>
-\version "1.9.1"
+\version "1.9.2"
\header{
texidoc="@cindex Slur Attachment Override
-\version "1.9.1"
+\version "1.9.2"
% TODO bit too wordy; edit a bit to cut stuff. -gp
\header { texidoc ="@cindex Slur Beautiful
Similarly, the curvature of a slur is adjusted to stay clear of note
-\version "1.9.1"
+\version "1.9.2"
\header {texidoc = "@cindex Slur, dotted
You can print different kinds of slurs (dotted, dashed, etc). "
}
-\version "1.9.1"
+\version "1.9.2"
\header { texidoc = "@cindex Slur Minimum Length
You can set the minimum length of a slur. "
#(ly:set-option 'old-relative)
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "Slurs become flatter as they grow longer. "
\score {
\context Staff \notes\relative c <
- \context Voice=va { \x f(f) }
- \context Voice=vb { \x g(s4g) }
- \context Voice=vc { \x a(s4*2a) }
- \context Voice=vd { \x b(s4*3b) }
- \context Voice=ve { \x c(s4*4c) }
- \context Voice=vf { \x d(s4*5d) }
- \context Voice=vg { \x e(s4*6e) }
- \context Voice=vh { \x f(s4*7f) }
- \context Voice=vi { \x g(s4*8g) }
- \context Voice=vj { \x a(s4*9a) }
- \context Voice=vk { \x b(s4*10b) }
- \context Voice=vl { \x c(s4*11c) }
- \context Voice=vm { \x d(s4*12d) }
- \context Voice=vn { \x e(s4*13e) }
- \context Voice=vo { \x f(s4*14f) }
- \context Voice=vp { \x g(s4*15g) }
- \context Voice=vq { \x a(s4*16a) }
- \context Voice=vr { \x b(s4*17b) }
- \context Voice=vs { \x c(s4*18c) }
- \context Voice=vt { \x d(s4*19d) }
- \context Voice=vu { \x e(s4*20e) }
- \context Voice=vv { \x f(s4*21f) }
- \context Voice=vw { \x g(s4*22g) }
- \context Voice=vx { \x a(s4*23a) }
- \context Voice=vy { \x b(s4*24b) }
- \context Voice=vz { \x c(s4*25c) }
- \context Voice=wa { \x d(s4*26d) }
+ \new Voice { \x f(f) }
+ \new Voice { \x g(s4g) }
+ \new Voice { \x a(s4*2a) }
+ \new Voice { \x b(s4*3b) }
+ \new Voice { \x c(s4*4c) }
+ \new Voice { \x d(s4*5d) }
+ \new Voice { \x e(s4*6e) }
+ \new Voice { \x f(s4*7f) }
+ \new Voice { \x g(s4*8g) }
+ \new Voice { \x a(s4*9a) }
+ \new Voice { \x b(s4*10b) }
+ \new Voice { \x c(s4*11c) }
+ \new Voice { \x d(s4*12d) }
+ \new Voice { \x e(s4*13e) }
+ \new Voice { \x f(s4*14f) }
+ \new Voice { \x g(s4*15g) }
+ \new Voice { \x a(s4*16a) }
+ \new Voice { \x b(s4*17b) }
+ \new Voice { \x c(s4*18c) }
+ \new Voice { \x d(s4*19d) }
+ \new Voice { \x e(s4*20e) }
+ \new Voice { \x f(s4*21f) }
+ \new Voice { \x g(s4*22g) }
+ \new Voice { \x a(s4*23a) }
+ \new Voice { \x b(s4*24b) }
+ \new Voice { \x c(s4*25c) }
+ \new Voice { \x d(s4*26d) }
>
\paper {
raggedright = ##t
-\version "1.9.1"
+\version "1.9.2"
\header { texidoc="@cindex Slur Ugly
You can get ugly slurs, if you want. "
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc="@cindex Smart Transpose
#(ly:set-option 'old-relative)
-\version "1.9.1"
+\version "1.9.2"
% more yummy regression goodness. -gp
\header {
texidoc = "
\score {
\notes \relative c''
\context GrandStaff <
- \context Staff = SA <
- \context Voice = VA { \stemUp\slurUp\tieUp
+ \new Staff <
+ \new Voice { \stemUp\slurUp\tieUp
e4 dis4 e2 }
- \context Voice = VB { \stemDown\slurDown\tieDown
+ \new Voice { \stemDown\slurDown\tieDown
cis8[ a] fis[ b] gis2 }
{\key e \major }
>
- \context Staff = SB { \clef "bass" \key e \major
+ \new Staff { \clef "bass" \key e \major
a,,16[ e dis e] b'8[ b,] e16[ e, gis b] e4
}
>
-\version "1.9.1"
+\version "1.9.2"
\header { texidoc = "@cindex Spanner after break
#(ly:set-option 'old-relative)
-\version "1.9.1"
+\version "1.9.2"
\header{texidoc = "@cindex Staff Bracket
Here's an example of staff brackets. "
\score
{
- \context StaffGroup = "a" \notes \relative c'' <
- \context Staff = "a" { b1 }
- \context PianoStaff = "b" <
- \context Staff = "c" \notes { b1 }
- \context Staff = "d" \notes { b1 }
+ \new StaffGroup \notes \relative c'' <
+ \new Staff { b1 }
+ \new PianoStaff <
+ \new Staff \notes { b1 }
+ \new Staff \notes { b1 }
>
>
#(ly:set-option 'old-relative)
-\version "1.9.1"
+\version "1.9.2"
\header {
\score {
\notes \relative c'' <
- \context StaffContainer = SA {
+ \new StaffContainer {
%% need < >, otherwise we descend to the voice inside SA
- < \context Staff = SA { c4 c4 } >
+ < \new Staff { c4 c4 } >
\quarterSkip
- < \context Staff = SB { b4 b4 } >
+ < \new Staff { b4 b4 } >
}
- \context StaffContainer =SB {
+ \new StaffContainer {
\quarterSkip
< \context Staff { e d f } >
\quarterSkip
-\version "1.9.1"
+\version "1.9.2"
\header { texidoc="@cindex Staff Lines
Staff symbol property set workaround. "
\score {
\context PianoStaff <
%\time 4/4
- \context Staff = upper <
+ \new Staff <
\upper
\outputproperty #(make-type-checker 'staff-symbol-interface)
#'line-count = #5
>
- \context Staff = lower <
+ \new Staff <
\clef bass
\lower
\outputproperty #(make-type-checker 'staff-symbol-interface)
#(ly:set-option 'old-relative)
-\version "1.9.1"
+\version "1.9.2"
\header { texidoc = "@cindex Staff Size
}
\score {
- \notes \relative c' < \context StaffContainer = SA{
+ \notes \relative c' < \new StaffContainer {
\property StaffContainer.StaffSymbol \set #'staff-space = #(/ 16 20)
\property Staff.fontSize = #-1
c8 d e[ f g a] b c \ff
}
-\context Staff = SB \relative c'' { \dynamicDown c,,4 \ff c c c }
-\context Staff = SC {
+\new Staff \relative c'' { \dynamicDown c,,4 \ff c c c }
+\new Staff {
\context Staff \outputproperty #(make-type-checker 'staff-symbol-interface)
#'staff-space = #0.8
\property Staff.fontSize = #-1
#(ly:set-option 'old-relative)
-\version "1.9.1"
+\version "1.9.2"
\header{ texidoc ="@cindex Staff Space
Setting staff space on a staff. "
\score {
\notes \relative c'' \context GrandStaff <
- \context Staff = up { c4 c4 }
- \context Staff = down {
+ \new Staff { c4 c4 }
+ \new Staff {
c4
<<c d f g>>8[
-\version "1.9.1"
+\version "1.9.2"
% possible rename to ancient- something.
\header {
texidoc ="@cindex Ancient Mensural Note Heads
-\version "1.9.1"
+\version "1.9.2"
\header { texidoc = "@cindex Stem Cross Staff
There is no support for putting chords across staves.
\score { \notes
\context PianoStaff
- < \context Staff = up {
+ < \new Staff {
\stemDown
\stemExtend
f'4
\stemExtend
\noFlag
f'8 }
- \context Staff = down {
+ \new Staff {
\clef bass
a4 a8 }
>
#(ly:set-option 'old-relative)
-\version "1.9.1"
+\version "1.9.2"
\header { texidoc = "@cindex Stem Extend
You can stop LilyPond from extending stems to the center line. "
\score {
\context Voice \notes\relative c {
\context Staff <
- \context Voice = "a" {
+ \new Voice {
f2 f8 g a b
\property Voice.Stem \set #'no-stem-extend = ##t
f2 f8 g a b
}
- \context Voice = "b" {
+ \new Voice {
c''2 c8 b a g
\property Voice.Stem \set #'no-stem-extend = ##t
c2 c8 b a g
-\version "1.9.1"
+\version "1.9.2"
\header{ texidoc = "@cindex Stem Length
You can alter the length of stems. "
-\version "1.9.1"
+\version "1.9.2"
\header {texidoc = "@cindex Tablature hammer
You can fake a hammer in tablature with slurs. "
}
-\version "1.9.1"
+\version "1.9.2"
\header{ texidoc = "@cindex Tabulature
A sample tablature, with both normal staff and tab.
-\version "1.9.1"
+\version "1.9.2"
% TODO: check about other ottava functions.
\header { texidoc = "@cindex Ottava Spanner
-\version "1.9.1"
+\version "1.9.2"
\header { texidoc = "@cindex Textscript
Test font selection and scm text markup. "
#(ly:set-option 'old-relative)
-\version "1.9.1"
+\version "1.9.2"
-\version "1.9.1"
+\version "1.9.2"
\header { texidoc = "@cindex Tie Sparse
Setting sparseTies causes only one tie to be
-\version "1.9.1"
+\version "1.9.2"
\header { texidoc= "@cindex Time Signature Double
Double time signatures are not supported
-\version "1.9.1"
+\version "1.9.2"
% TODO: This file could be old. Ask about it later. -gp
\header { texidoc = "@cindex Time
-\version "1.9.1"
+\version "1.9.2"
% possible rename to bar-something.
\header{ texidoc = "@cindex Bar Length
#(ly:set-option 'old-relative)
-\version "1.9.1"
+\version "1.9.2"
% MERGE with ly2dvi-
\header {
filename = "title.ly"
-\version "1.9.1"
+\version "1.9.2"
fooBar = \notes { < c''4 \\ g'4 > }
-\version "1.9.1"
+\version "1.9.2"
\header{ texidoc = "@cindex Transposition
Transposition test file."
\score {
\context StaffGroup <
- \context Staff=vOne \vOne
- \context Staff=vTwo \vTwo
- \context Staff=vThree \vThree
- \context Staff=vFour \vFour
+ \new Staff \vOne
+ \new Staff \vTwo
+ \new Staff \vThree
+ \new Staff \vFour
>
\paper { linewidth= 130.\mm raggedright = ##t }
}
-\version "1.9.1"
+\version "1.9.2"
\header { texidoc="@cindex Trill
Show trill line type. "
#(ly:set-option 'old-relative)
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc="@cindex Trills
\score {
<
\context GrandStaff <
- \context Staff=upper \notes\relative c'' {
+ \new Staff \notes\relative c'' {
\time 1/4
c4\prall
\time 3/8
\time 3/4
b4 c^\turn d
\time 1/4
- <\context Voice=upper{\voiceOne d4}
- \context Voice=lower{\voiceTwo
+ <{ d4}\\
+ {
\property Voice.Script \override #'extra-offset = #'(-0.8 . 2.0)
b_\turn}>
\startHorizScript
\time 3/4
d2^\prallup e4
}
- \context Lyrics=one \lyrics {
+ \new Lyrics \lyrics {
"Tremblement"4
"Tremblement"4.
"Cadence"
%}
}
- \context Lyrics=two \lyrics {
+ \new Lyrics \lyrics {
"simple"4
"appuy\\'e"4.
%{ \skip 1*3
"de suite"1
%}
}
- \context Staff=lower \notes\relative c'' {
+ \new Staff \notes\relative c'' {
% autobeamer has som problems here
d32[ \repeat unfold 3 { c d } c]
d8 ~ d32[\repeat unfold 3 { d32 c } c]
-\version "1.9.1"
+\version "1.9.2"
% regression. -gp
\header {
-\version "1.9.1"
+\version "1.9.2"
% possible rename to ancient-something.
\header { texidoc = "Ancient Vaticana
-\version "1.9.1"
+\version "1.9.2"
\header {
texidoc = "By putting the output of @code{lilypond-version}
-\version "1.9.1"
+\version "1.9.2"
% TODO: huh? what's this file about? -gp
\header { texidoc = "
\score {
\notes <
- \context Staff = upper {
+ \new Staff {
\property Staff.verticalExtent = #'(-15.0 . 0.0)
\clef alto
c1
}
- \context Staff = lower {
+ \new Staff {
\property Staff.verticalExtent = #'(-0.0 . 15.0)
\clef alto
g1
\header{
filename = "twinkle-pop.ly"
xtitle = "Ah, vous dirais-je, maman "
-description = "twinkle twinkle in pop-song-settings"
composer = "traditional"
enteredby = "HWN, chords by Johan Vromans"
copyright = "public domain"
}
text = \lyrics{
- \property Lyrics . LyricText \set #'font-style = #'italic
+ \property Lyrics . LyricText \set #'font-shape = #'italic
Ah!4 vous dir -- ai -- je ma man2
Ce4 qui cau -- se mon tour -- ment2
beat_length_ = *unsmob_moment (get_property ("beatLength"));
}
-
void
Auto_beam_engraver::junk_beam ()
{
junk_beam ();
}
else
-
{
finished_beam_ = create_beam ();
if (finished_beam_)
SCM basic = ly_symbol2scm ("Clef");
- daddy_trans_->execute_single_pushpop_property (basic, glyph_sym, SCM_UNDEFINED);
- daddy_trans_->execute_single_pushpop_property (basic, glyph_sym, glyph);
+ daddy_trans_->execute_pushpop_property (basic, glyph_sym, SCM_UNDEFINED);
+ daddy_trans_->execute_pushpop_property (basic, glyph_sym, glyph);
}
/**
|| scm_equal_p (glyph, prev_glyph_) == SCM_BOOL_F
|| scm_equal_p (clefpos, prev_cpos_) == SCM_BOOL_F
|| scm_equal_p (octavation, prev_octavation_) == SCM_BOOL_F
- || to_boolean (force_clef)
-)
+ || to_boolean (force_clef))
{
set_glyph ();
create_clef ();
SCM to_alist () const;
static SCM make_scm () ;
- static void apply_pushpop_property (Translator_group*, SCM syms, SCM eprop, SCM val);
SCM clone_scm ()const;
void apply_property_operations (Translator_group*);
protected:
~Translator_group ();
public:
- void execute_single_pushpop_property (SCM prop, SCM sym, SCM val);
+ void execute_pushpop_property (SCM prop, SCM sym, SCM val);
SCM internal_get_property (SCM name_sym) const;
SCM properties_as_alist () const;
SCM source_callback = ly_symbol2scm ("ligature-primitive-callback");
SCM noteHeadProperties = daddy_trans_->get_property ("NoteHead");
SCM value = ly_cdr (scm_sloppy_assq (source_callback, noteHeadProperties));
- daddy_trans_->execute_single_pushpop_property (symbol, target_callback, value);
+ daddy_trans_->execute_pushpop_property (symbol, target_callback, value);
}
/*
{
SCM symbol = ly_symbol2scm ("NoteHead");
SCM key = ly_symbol2scm ("molecule-callback");
- daddy_trans_->execute_single_pushpop_property (symbol, key, SCM_UNDEFINED);
+ daddy_trans_->execute_pushpop_property (symbol, key, SCM_UNDEFINED);
}
void
static Keyword_ent the_key_tab[]={
+ {"accacciatura", ACCACCIATURA},
{"accepts", ACCEPTS},
{"addlyrics", ADDLYRICS},
{"alias", ALIAS},
{"apply", APPLY},
{"applycontext", APPLYCONTEXT},
{"applyoutput", APPLYOUTPUT},
+ {"appoggiatura", APPOGGIATURA},
{"autochange", AUTOCHANGE},
{"bar", BAR},
{"breathe", BREATHE},
{"markup", MARKUP},
{"midi", MIDI},
{"name", NAME},
- {"newcontext", NEWCONTEXT},
+ {"new", NEWCONTEXT},
{"notes", NOTES},
{"octave", OCTAVE},
{"once", ONCE},
%token FIGURES FIGURE_OPEN FIGURE_CLOSE
%token FIGURE_BRACKET_CLOSE FIGURE_BRACKET_OPEN
%token GRACE
+%token ACCACCIATURA
+%token APPOGGIATURA
%token GROBDESCRIPTIONS
%token HEADER
%token HYPHEN
%type <i> exclamations questions dots optional_rest
%type <i> bass_mod
+%type <scm> grace_head
%type <scm> bass_number br_bass_figure bass_figure figure_list figure_spec
%token <i> DIGIT
%token <scm> NOTENAME_PITCH
;
+grace_head:
+ GRACE { $$ = scm_makfrom0str ("Grace"); }
+ | ACCACCIATURA { $$ = scm_makfrom0str ("Accacciatura"); }
+ | APPOGGIATURA { $$ = scm_makfrom0str ("Appoggiatura"); }
+ ;
+
+
Composite_music:
CONTEXT STRING Music {
Music*csm =MY_MAKE_MUSIC("ContextSpeccedMusic");
$$ = chm;
chm->set_spot (*$3->origin ());
}
- | GRACE Music {
+ | grace_head Music {
#if 1
/*
The other version is for easier debugging of
Sequential_music_iterator in combination with grace notes.
*/
- SCM start = THIS->lexer_->lookup_identifier ("startGraceMusic");
- SCM stop = THIS->lexer_->lookup_identifier ("stopGraceMusic");
+/*
+
+TODO: should distinguish between both grace types in the
+basic music objects too, since the meaning is different.
+
+*/
+
+ String start_str = "start" + ly_scm2string ($1) + "Music";
+ String stop_str = "stop" + ly_scm2string ($1) + "Music";
+
+ SCM start = THIS->lexer_->lookup_identifier (start_str);
+ SCM stop = THIS->lexer_->lookup_identifier (stop_str);
+
Music *startm = unsmob_music (start);
Music *stopm = unsmob_music (stop);
if (to_boolean (get_music ()->get_mus_property ("pop-first"))
&& !to_boolean (get_music ()->get_mus_property ("once"))
)
- Translator_def::apply_pushpop_property (report_to (),
- sym, eprop, SCM_UNDEFINED);
+ report_to()->execute_pushpop_property (sym, eprop, SCM_UNDEFINED);
- Translator_def::apply_pushpop_property (report_to (), sym, eprop, val);
+ report_to()->execute_pushpop_property (sym, eprop, val);
}
Simple_music_iterator::process (m);
}
Push_property_iterator::once_finalization (SCM trans, SCM music)
{
Music * mus = unsmob_music (music);
- Translator_group *tg
- = dynamic_cast<Translator_group*> (unsmob_translator (trans));
-
+ Translator_group * tg = dynamic_cast<Translator_group*> (unsmob_translator (trans));
+
SCM sym = mus->get_mus_property ("symbol");
if (check_grob (mus, sym))
{
SCM eprop = mus->get_mus_property ("grob-property");
- Translator_def::apply_pushpop_property (tg, sym, eprop, SCM_UNDEFINED);
+ tg->execute_pushpop_property (sym, eprop, SCM_UNDEFINED);
}
return SCM_UNSPECIFIED;
}
Pop_property_iterator::process (Moment m)
{
SCM sym = get_music ()->get_mus_property ("symbol");
+
if (check_grob (get_music (), sym))
{
SCM eprop = get_music ()->get_mus_property ("grob-property");
- Translator_def::apply_pushpop_property (report_to (), sym, eprop, SCM_UNDEFINED);
+ report_to()->execute_pushpop_property (sym, eprop, SCM_UNDEFINED);
}
Simple_music_iterator::process (m);
}
{
if (lily_1_8_relative)
{
- lily_1_8_compatibility_used = true;
if (body ())
p = body ()->to_relative_octave (p);
Pitch last = p ;
if (alternatives ())
- for (SCM s = alternatives (); gh_pair_p (s); s = ly_cdr (s))
- unsmob_music (ly_car (s))->to_relative_octave (p);
-
+ {
+ lily_1_8_compatibility_used = true;
+
+ for (SCM s = alternatives (); gh_pair_p (s); s = ly_cdr (s))
+ unsmob_music (ly_car (s))->to_relative_octave (p);
+ }
return last;
}
-/*
- Do it. SYM is single symbol. VAL is SCM_UNDEFINED in case of a pop
-*/
-void
-Translator_def::apply_pushpop_property (Translator_group* me,SCM sym, SCM eprop, SCM val)
-{
- dynamic_cast<Translator_group*> (me)
- ->execute_single_pushpop_property (sym, eprop, val);
-}
-
-
Link_array<Translator_def>
Translator_def::path_to_acceptable_translator (SCM type_string, Music_output_def* odef) const
SCM val = ly_cddr (entry);
val = gh_pair_p (val) ? ly_car (val) : SCM_UNDEFINED;
- apply_pushpop_property (tg, ly_car (entry), ly_cadr (entry), val);
+ tg->execute_pushpop_property (ly_car (entry), ly_cadr (entry), val);
}
else if (type == ly_symbol2scm ("assign"))
{
entry from a translator property list by name of PROP
*/
void
-Translator_group::execute_single_pushpop_property (SCM prop, SCM eltprop, SCM val)
+Translator_group::execute_pushpop_property (SCM prop, SCM eltprop, SCM val)
{
if (gh_symbol_p (prop))
{
-
-
/*
STUBS
*/
/*
-translator-scheme.cc -- implement
+ translator-scheme.cc -- implement Scheme context functions
+
+ source file of the GNU LilyPond music typesetter
-source file of the GNU LilyPond music typesetter
-
-(c) 2002--2003 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+ (c) 2002--2003 Han-Wen Nienhuys <hanwen@cs.uu.nl>
*/
return SCM_BOOL_F;
}
+/*
+ Todo: should support translator IDs, and creation?
+ */
+LY_DEFINE(ly_translator_find,
+ "ly:translator-find", 2, 0,0,
+ (SCM context, SCM name),
+ "Find a parent of @var{context} that has name or alias @var{name}. "
+ "Return @code{#f} if not found." )
+{
+ Translator_group* tr= dynamic_cast<Translator_group*> ( unsmob_translator (context));
+
+ SCM_ASSERT_TYPE(tr, context, SCM_ARG1, __FUNCTION__, "context");
+ SCM_ASSERT_TYPE(gh_string_p (name), name, SCM_ARG2, __FUNCTION__, "string");
+
+ String s = ly_scm2string (name);
+
+ while (tr)
+ {
+ if (tr->is_alias_b (s))
+ return tr->self_scm();
+ tr = tr->daddy_trans_ ;
+ }
+
+ return SCM_BOOL_F;
+}
LY_DEFINE(ly_context_properties,
}
+LY_DEFINE(ly_context_pushpop_property,
+ "ly:context-pushpop-property", 3, 1, 0,
+ (SCM context, SCM grob, SCM eltprop, SCM val),
+ "Do a single @code{\\override} or @code{\\revert} operation "
+ "in @var{context}. The grob definition @code{grob} is extended with "
+ "@code{eltprop} (if @var{val} is specified) "
+ "or reverted (if unspecified).")
+{
+ Translator_group *tg = dynamic_cast<Translator_group*> (unsmob_translator (context));
+
+ SCM_ASSERT_TYPE(tg, context, SCM_ARG1, __FUNCTION__, "context");
+ SCM_ASSERT_TYPE(gh_symbol_p (grob), grob, SCM_ARG2, __FUNCTION__, "symbol");
+ SCM_ASSERT_TYPE(gh_symbol_p (eltprop), eltprop, SCM_ARG3, __FUNCTION__, "symbol");
+
+ tg->execute_pushpop_property (grob, eltprop, val);
+
+ return SCM_UNDEFINED;
+}
+
+LY_DEFINE(ly_context_p,
+ "ly:context?", 1, 0, 0,
+ (SCM x),
+ "Type predicate: is @var{x} a context?")
+{
+ Translator_group *tg = dynamic_cast<Translator_group*> (unsmob_translator (x));
+
+ return SCM_BOOL (tg);
+}
+
+
int
Translator::print_smob (SCM s, SCM port, scm_print_state *)
{
return 1;
}
+
IMPLEMENT_SMOBS (Translator);
IMPLEMENT_DEFAULT_EQUAL_P (Translator);
+IMPLEMENT_TYPE_P(Translator,"ly:translator?");
bassFigureFormatFunction = #make-bass-figure-markup
metronomeMarkFormatter = #make-metronome-markup
+ graceSettings = #`#(
+ ("Voice" Stem direction 1)
+ ("Voice" Stem lengths ,(map (lambda (x) (* 0.8 x)) '(2.5 2.5 3.0 4.0 5.0)))
+ ("Voice" Stem stem-shorten (0.4 0))
+ ("Voice" Stem font-relative-size -1)
+ ("Voice" NoteHead font-relative-size -1)
+ ("Voice" Dots font-relative-size -1)
+ ("Voice" Stem beamed-lengths
+ ,(map (lambda (x) (* 0.8 x)) '(3.26)))
+ ("Voice" Stem beamed-minimum-free-lengths
+ ,(map (lambda (x) (* 0.8 x)) '(2.5 2.0 1.5)))
+ ("Voice" Stem beamed-extreme-minimum-free-lengths
+ ,(map (lambda (x) (* 0.8 x)) '(1.83 1.5)))
+
+ ("Voice" Stem no-stem-extend #t)
+ ("Voice" Beam thickness 0.384)
+ ("Voice" Beam space-function ,(lambda (beam mult)
+ (* 0.8 (Beam::space_function
+ beam mult))))
+ ("Voice" Beam position-callbacks (,Beam::least_squares
+ ,Beam::check_concave
+ ,Beam::slope_damping))
+ ("Staff" Accidental font-relative-size -2)
+ ("Voice" Slur direction -1)
+ )
+
\grobdescriptions #all-grob-descriptions
}
\version "1.9.1"
-%%
-%% TODO: these definitions should be read and executed out dynamically
-%% using an applycontext.
-%%
-startGraceMusic = {
- \property Voice.Stem \override #'direction = #1
- \property Voice.Stem \override #'lengths =
- #(map (lambda (x) (* 0.8 x)) '(2.5 2.5 3.0 4.0 5.0))
- \property Voice.Stem \override #'stem-shorten =
- #'(0.4 0)
- \property Voice.Stem \override #'beamed-lengths =
- #(map (lambda (x) (* 0.8 x)) '(3.26))
- \property Voice.Stem \override #'beamed-minimum-free-lengths =
- #(map (lambda (x) (* 0.8 x)) '(2.5 2.0 1.5))
- \property Voice.Stem \override #'beamed-extreme-minimum-free-lengths =
- #(map (lambda (x) (* 0.8 x)) '(1.83 1.5))
-
- \property Voice.Stem \override #'no-stem-extend = ##t
- \property Voice.Stem \override #'stroke-style = #"grace"
- \property Voice.Beam \override #'thickness = #0.384
-
- %% Instead of calling Beam::space_function, we should invoke
- %% the previously active beam function...
- \property Voice.Beam \override #'space-function =
- #(lambda (beam mult) (* 0.8 (Beam::space_function beam mult)))
+startGraceMusic = \notes {
+ \context Voice \applycontext #set-start-grace-properties
+}
- \property Voice.Beam \override #'position-callbacks =
- #`(,Beam::least_squares
- ,Beam::check_concave
- ,Beam::slope_damping)
-
- % Can't use Staff.fontSize, since time sigs, keys sigs, etc. will
- % be smaller as well.
+stopGraceMusic = \notes {
+ \context Voice \applycontext #set-stop-grace-properties
+}
- \property Voice.fontSize = #-2
- \property Staff.Accidental \override #'font-relative-size = #-2
- \property Voice.Slur \override #'direction = #-1
+startAppoggiaturaMusic =
+\notes {
+ \context Voice \applycontext #set-start-grace-properties
+ s1*0(
}
+stopAppoggiaturaMusic = \notes {
+ \context Voice \applycontext #set-stop-grace-properties
+ s1*0)
+}
-%% attention: order is significant: reversed from above
-%% (consistent ordering reduces memory usage.)
-stopGraceMusic = {
- \property Voice.Slur \revert #'direction
- \property Staff.Accidental \revert #'font-relative-size
- \property Voice.Beam \revert #'thickness
+startAccacciaturaMusic = \notes {
+ \context Voice \applycontext #set-start-grace-properties
+ s1*0(
+ \property Voice.Stem \override #'stroke-style = #"grace"
+}
+stopAccacciaturaMusic = \notes {
\property Voice.Stem \revert #'stroke-style
- \property Voice.Stem \revert #'no-stem-extend
- \property Voice.Stem \revert #'beamed-extreme-minimum-free-lengths
- \property Voice.Stem \revert #'beamed-minimum-free-lengths
- \property Voice.Stem \revert #'beamed-lengths
- \property Voice.Stem \revert #'stem-shorten
- \property Voice.Stem \revert #'lengths
- \property Voice.Stem \revert #'direction
- \property Voice.Beam \revert #'space-function
-
- \property Voice.Beam \revert #'position-callbacks
-
- % Can't use Staff.fontSize, since time sigs, keys sigs, etc. will
- % be smaller as well.
-
- \property Voice.fontSize \unset
+ \context Voice \applycontext #set-stop-grace-properties
+ s1*0)
}
-
-#(define (add-to-grace-init context object prop val)
- " Override context.object #'property before entering grace context,
-and restore afterwards. Use this to add settings to default grace notes.
-"
- (set! stopGraceMusic
- (make-sequential-music
- (cons
- (context-spec-music (make-grob-property-revert object prop) context)
- (ly:get-mus-property stopGraceMusic 'elements)
- )))
- (set! startGraceMusic
- (make-sequential-music
- (append
- (ly:get-mus-property startGraceMusic 'elements)
- (list (context-spec-music (make-grob-property-set object prop val) context))
- )
- )))
-
-
if contents:
error (_ ("The error log is as follows:"))
sys.stderr.write (contents)
+
+ # Ugh. code dup
+ if error_log_file:
+ os.unlink (error_log_file)
+
exit (status)
if __main__.verbose_p:
the side of the note head. Use LEFT, RIGHT or unset.")
(translator-property-description 'forceClef boolean? "Show clef symbol, even if it hasn't changed. Only active for the first clef after the property is set, not for the full staff.")
+
+(translator-property-description 'graceSettings vector?
+ "Overrides for grace notes. This
+property should be manipulated through the @code{add-grace-property}
+function.")
+
(translator-property-description 'highStringOne boolean? "Whether the
1st string is the string with highest pitch on the instrument (used by
the automatic string selector).")
(set! type-p-name-alist
`(
- (,ly:dir? . "direction")
- (,scheme? . "any type")
- (,number-pair? . "pair of numbers")
- (,ly:input-location? . "input location")
- (,ly:grob? . "grob (GRaphical OBject)")
+ (,boolean-or-symbol? . "boolean or symbol")
+ (,boolean? . "boolean")
+ (,char? . "char")
(,grob-list? . "list of grobs")
- (,ly:duration? . "duration")
- (,pair? . "pair")
+ (,input-port? . "input port")
(,integer? . "integer")
(,list? . "list")
- (,symbol? . "symbol")
- (,string? . "string")
- (,boolean? . "boolean")
- (,ly:pitch? . "pitch")
- (,ly:moment? . "moment")
+ (,ly:context? . "context")
(,ly:dimension? . "dimension, in staff space")
+ (,ly:dir? . "direction")
+ (,ly:duration? . "duration")
+ (,ly:grob? . "grob (GRaphical OBject)")
(,ly:input-location? . "input location")
- (,music-list? . "list of music")
+ (,ly:input-location? . "input location")
+ (,ly:moment? . "moment")
(,ly:music? . "music")
+ (,ly:pitch? . "pitch")
+ (,ly:translator? . "translator")
+ (,markup-list? . "list of markups")
+ (,markup? . "markup")
+ (,music-list? . "list of music")
+ (,number-or-grob? . "number or grob")
+ (,number-or-string? . "number or string")
+ (,number-pair? . "pair of numbers")
(,number? . "number")
- (,char? . "char")
- (,input-port? . "input port")
(,output-port? . "output port")
- (,vector? . "vector")
+ (,pair? . "pair")
(,procedure? . "procedure")
- (,boolean-or-symbol? . "boolean or symbol")
- (,number-or-string? . "number or string")
- (,markup? . "markup")
- (,markup-list? . "list of markups")
- (,number-or-grob? . "number or grob")
+ (,scheme? . "any type")
+ (,string? . "string")
+ (,symbol? . "symbol")
+ (,vector? . "vector")
))
(define-public (make-apply-context func)
(let*
- (
- (m (make-music-by-name 'ApplyContext))
- )
+ ((m (make-music-by-name 'ApplyContext)))
(ly:set-mus-property! m 'procedure func)
m
(define-public (make-ottava-set octavation)
(let*
- (
- (m (make-music-by-name 'ApplyContext))
- )
+ ((m (make-music-by-name 'ApplyContext)))
(define (ottava-modify context)
music
)
+
+
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;; switch it on here, so parsing and init isn't checked (too slow!)
+;;
+;; setting stuff for grace context.
+;;
+
+(define (vector-extend v x)
+ "Make a new vector consisting of V, with X added to the end."
+ (let*
+ ((n (vector-length v))
+ (nv (make-vector (+ n 1) '())))
+
+
+ (vector-move-left! v 0 n nv 0)
+ (vector-set! nv n x)
+ nv))
+
+
+(define (vector-map f v)
+ "Map F over V. This function returns nothing."
+ (do
+ ((n (vector-length v))
+ (i 0 (+ i 1)))
+ ((>= i n))
+
+ (f (vector-ref v i))))
+
+(define (vector-reverse-map f v)
+ "Map F over V, N to 0 order. This function returns nothing."
+ (do
+ ((i (- (vector-length v) 1) (- i 1)))
+ ((< i 0))
+
+ (f (vector-ref v i))))
+;; TODO: make a remove-grace-property too.
+(define-public (add-grace-property context-name grob sym val)
+ "Set SYM=VAL for GROB in CONTEXT-NAME. "
+ (define (set-prop context)
+ (let*
+ ((where (ly:context-property-where-defined context 'graceSettings))
+ (current (ly:get-context-property where 'graceSettings))
+ (new-settings (vector-extend current (list context-name grob sym val)))
+ )
+ (ly:set-context-property! where 'graceSettings new-settings)))
+
+ (ly:export (context-spec-music (make-apply-context set-prop) "Voice")))
+
+
+(define-public (set-start-grace-properties context)
+ (define (execute-1 x)
+ (let*
+ ((tr (ly:translator-find context (car x))))
+
+ (if (ly:context? tr)
+ (ly:context-pushpop-property tr (cadr x) (caddr x) (cadddr x))
+ )))
+
+ (let*
+ ((props (ly:get-context-property context 'graceSettings)))
+ (vector-map execute-1 props)))
+
+(define-public (set-stop-grace-properties context)
+ (define (execute-1 x)
+ (let*
+ ((tr (ly:translator-find context (car x))))
+ (if (ly:context? tr)
+ (ly:context-pushpop-property tr (cadr x) (caddr x))
+ )))
+
+ (let*
+ ((props (ly:get-context-property context 'graceSettings)))
+
+ (vector-reverse-map execute-1 props)))
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; switch it on here, so parsing and init isn't checked (too slow!)
+;;
;; automatic music transformations.
(define (switch-on-debugging m)
(set-debug-cell-accesses! 15000)
- m
- )
+ m)
(define-public toplevel-music-functions
(list check-start-chords
return str
conversions.append (((1,9,1), conv, """Remove - before articulation"""))
+if 1:
+ def conv (str):
+ str = re.sub ('\\\\newcontext', '\\\\new', str)
+ str = re.sub ('\\\\grace[\t\n ]*([^{ ]+)',
+ r'\\grace { \1 }', str)
+ str = re.sub ("\\\\grace[\t\n ]*{([^}]+)}",
+ r"""\\grace {
+ \\property Voice.Stem \\override #'stroke-style = #"grace"
+ \1
+ \\property Voice.Stem \\revert #'stroke-style }
+""", str)
+
+ return str
+
+ conversions.append (((1,9,2), conv, """\newcontext -> \new"""))
################################
# END OF CONVERSIONS