2004-02-22 Han-Wen Nienhuys <hanwen@xs4all.nl>
+ * scripts/lilypond-book.py (do_file): do not overwrite input file.
+
+ * scripts/convert-ly.py (conv): add rules for name changes.
+
* lily/context-scheme.cc (LY_DEFINE): use Scheme style naming for
music/context/grob property functions. Internally, use
get_property() and set_property() for both.
@itemize @bullet
+@item The naming of exported Scheme functions now follows Scheme conventions.
+Changes be applied to Scheme files with convert-ly:
+
+@example
+ convert-ly -e -n --from=2.1.24 --to=2.1.26 *.scm
+@end example
+
+
@item Notes can be excluded from auto-beaming, by marking them with
@code{\noBeam}:
@example
\applycontext
#(lambda (x)
(format #t "\nWe were called in barnumber ~a.\n"
- (ly:get-context-property x 'currentBarNumber)))
+ (ly:context-property x 'currentBarNumber)))
@end example
This means that the scheme function @var{func} is called with
@var{music} as its argument. The return value of @var{func} is the
result of the entire expression. @var{func} may read and write music
-properties using the functions @code{ly:get-mus-property} and
-@code{ly:set-mus-property!}.
+properties using the functions @code{ly:music-property} and
+@code{ly:music-set-property!}.
An example is a function that reverses the order of elements in
its argument:
@lilypond[verbatim,raggedright]
#(define (rev-music-1 m)
- (ly:set-mus-property! m 'elements (reverse
- (ly:get-mus-property m 'elements)))
+ (ly:music-set-property! m 'elements (reverse
+ (ly:music-property m 'elements)))
m)
\score { \notes \apply #rev-music-1 { c4 d4 } }
@end lilypond
children.
@example
#(define (reverse-music music)
- (let* ((elements (ly:get-mus-property music 'elements))
- (child (ly:get-mus-property music 'element))
+ (let* ((elements (ly:music-property music 'elements))
+ (child (ly:music-property music 'element))
(reversed (reverse elements)))
; set children
- (ly:set-mus-property! music 'elements reversed)
+ (ly:music-set-property! music 'elements reversed)
; recurse
(if (ly:music? child) (reverse-music child))
5-line staff) has not changed, the details still change to express the
innovations of contemporary notation. Hence, it encompasses some 500
years of music. Its applications range from monophonic melodies to
-monstruous counterpoint for large orchestras.
+monstrous counterpoint for large orchestras.
How can we get a grip on such a many-headed beast, and force it into
the confines of a computer program? Our solution is to make a strict
@cindex @code{\rfz}
-Absolute dynamic marks are specified using an variable after a
-note: @code{c4\ff}. The available dynamic marks are @code{\ppp},
+Absolute dynamic marks are specified using a command after a note:
+@code{c4\ff}. The available dynamic marks are @code{\ppp},
@code{\pp}, @code{\p}, @code{\mp}, @code{\mf}, @code{\f}, @code{\ff},
@code{\fff}, @code{\fff}, @code{\fp}, @code{\sf}, @code{\sff},
@code{\sp}, @code{\spp}, @code{\sfz}, and @code{\rfz}:
\context ChoirStaff \notes <<
\context Lyrics = sopranoLyrics @{ s1 @}
\context Voice = soprano @{ @emph{music} @}
- \context Lyrics = tenor @{ s1 @}
- \context Voice = tenorLyrics @{ @emph{music} @}
+ \context Lyrics = tenorLyrics @{ s1 @}
+ \context Voice = tenor @{ @emph{music} @}
>>
@end example
and then combine the appropriate melodies and lyric lines:
center-line:
@example
(define (blanker grob grob-origin context)
- (if (and (memq (ly:get-grob-property grob 'interfaces)
+ (if (and (memq (ly:grob-property grob 'interfaces)
note-head-interface)
- (eq? (ly:get-grob-property grob 'staff-position) 0))
+ (eq? (ly:grob-property grob 'staff-position) 0))
- (ly:set-grob-property! grob 'transparent #t)))
+ (ly:grob-set-property! grob 'transparent #t)))
@end example
PACKAGE_NAME=LilyPond
MAJOR_VERSION=2
MINOR_VERSION=1
-PATCH_LEVEL=25
-MY_PATCH_LEVEL=hwn1
+PATCH_LEVEL=26
+MY_PATCH_LEVEL=
-\version "2.1.22"
+\version "2.1.26"
%% +.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 "2.1.25"
+\version "2.1.26"
\header {
texidoc = "Cautionary accidentals are indicated using either
-\version "2.1.25"
+\version "2.1.26"
\header {
texidoc = "If two forced accidentals happen at the same time, only one
sharp sign is printed."
-\version "2.1.25"
+\version "2.1.26"
\header {
-\version "2.1.25"
+\version "2.1.26"
\header {
texidoc="
-\version "2.1.25"
+\version "2.1.26"
\header {
texidoc = "Quarter tone notation is supported, including
threequarters flat."
}
-\version "2.1.25"
+\version "2.1.26"
\score {
\notes \relative c'' {
-\version "2.1.25"
+\version "2.1.26"
\header{
texidoc="
A sharp sign after a double sharp sign, as well as a flat sign
-\version "2.1.25"
+\version "2.1.26"
\header {
wreak havoc in the spacing when unbroken."
}
-\version "2.1.25"
+\version "2.1.26"
rechts = \notes \relative c' {
\clef treble
-\version "2.1.25"
+\version "2.1.26"
\header{
texidoc="
-\version "2.1.25"
+\version "2.1.26"
\header{
texidoc="
-\version "2.1.25"
+\version "2.1.26"
\header{
texidoc="
%}
-\version "2.1.23"
+\version "2.1.26"
upper = \notes \relative c {
\clef "treble"
-\version "2.1.25"
+\version "2.1.26"
\header {
\applycontext
#(lambda (tr)
(format #t "\nWe were called in barnumber ~a.\n"
- (ly:get-context-property tr 'currentBarNumber)))
+ (ly:context-property tr 'currentBarNumber)))
c1 c1
}}
-\version "2.1.25"
+\version "2.1.26"
\header {
texidoc = "The @code{\applyoutput} expression is the most flexible way to
#(define (mc-squared gr org cur)
(let*
(
- (ifs (ly:get-grob-property gr 'interfaces))
- (sp (ly:get-grob-property gr 'staff-position))
+ (ifs (ly:grob-property gr 'interfaces))
+ (sp (ly:grob-property gr 'staff-position))
)
(if (and (memq 'note-head-interface ifs)
(memq sp '(-2 -3 -5)))
(begin
- (ly:set-grob-property! gr 'print-function brew-new-markup-stencil)
- (ly:set-grob-property! gr 'font-family 'roman)
- (ly:set-grob-property!
+ (ly:grob-set-property! gr 'print-function brew-new-markup-stencil)
+ (ly:grob-set-property! gr 'font-family 'roman)
+ (ly:grob-set-property!
gr 'text
(make-raise-markup -0.5
(case sp
-\version "2.1.22"
+\version "2.1.26"
\header{
texidoc="
A square bracket on the left indicates that the player should not
-\version "2.1.23"
+\version "2.1.26"
\header {
texidoc = "Arpeggio stays clear of accidentals and flipped note heads."
-\version "2.1.22"
+\version "2.1.26"
\header{
texidoc="
Arpeggios are supported, both cross-staff and broken single staff.
-\version "2.1.22"
+\version "2.1.26"
\header{
texidoc="No auto beams will be put over (manual) repeat bars."
}
-\version "2.1.25"
+\version "2.1.26"
\score {
\notes { c8 c-\noBeam c c }
texidoc = "Automatic beaming is also done on tuplets."
}
-\version "2.1.22"
+\version "2.1.26"
\score{
\notes\relative c''{
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "Tuplet-spanner should not put (visible) brackets on
}
-\version "2.1.23"
+\version "2.1.26"
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "With balloon texts, objects in the output can be marked,
with lines and explanatory text added."
}
-\version "2.1.22"
+\version "2.1.26"
\score {
\notes {
-\version "2.1.23"
+\version "2.1.26"
\header {
-\version "2.1.22"
+\version "2.1.26"
\header{
texidoc="
-\version "2.1.22"
+\version "2.1.26"
\header{ texidoc="A knee is made automatically when a horizontal
beam fits in a gap between note heads that is larger than a predefined
"
}
-\version "2.1.22"
+\version "2.1.26"
\paper { raggedright= ##t }
\score { \notes \relative c'' {
-\version "2.1.22"
+\version "2.1.26"
\header{
texidoc="Simple beams on middle staffline are allowed to be
-\version "2.1.22"
+\version "2.1.26"
\header{
texidoc = "Concave beams should be horizontal. Informally spoken,
-\version "2.1.22"
+\version "2.1.26"
\header{
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "Cross staff (kneed) beams do not cause extreme slopes."
}
-\version "2.1.22"
+\version "2.1.26"
\header{
texidoc="
Beams can be typeset over fixed distance aligned staves, beam
-\version "2.1.22"
+\version "2.1.26"
\header { texidoc = "@cindex Beam Damp
Beams are less steep than the notes they encompass. " }
-\version "2.1.22"
+\version "2.1.26"
\header{
texidoc="Beamed stems have standard lengths if possible. Quantization is switched off in this example."
-\version "2.1.22"
+\version "2.1.26"
\header{
texidoc="
Beams should behave reasonably well, even under extreme circumstances.
-\version "2.1.22"
+\version "2.1.26"
\header {
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc=" Funky kneed beams with beamlets also work. The beamlets
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "In complex configurations of knee beaming, according to
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "Point-symmetric beams should receive the same
-\version "2.1.22"
+\version "2.1.26"
\header{
texidoc="
-\version "2.1.22"
+\version "2.1.26"
\header {
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "Kneed beams (often happens with cross-staff beams)
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "Explicit beams may cross barlines. "
}
-\version "2.1.22"
+\version "2.1.26"
\header{
texidoc=" Beams on ledgered notes should always reach the middle staff
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "Beams and ties may be entered in postfix notation, separating the
}
-\version "2.1.22"
+\version "2.1.26"
\score {
\notes \relative c''{
-\version "2.1.22"
+\version "2.1.26"
\header{
-\version "2.1.22"
+\version "2.1.26"
\header
{
texidoc= "Quarter notes may be beamed: the beam is halted momentarily."
texidoc = "The number of beams does not change on a rest."
}
-\version "2.1.22"
+\version "2.1.26"
\score { \notes \relative c, {
\clef bass
-\version "2.1.22"
+\version "2.1.26"
\header{
texidoc="
Engraving second intervals is tricky. We used to have problems with seconds
-\version "2.1.22"
+\version "2.1.26"
\header{
texidoc="Beams in unnatural direction, have shortened stems, but do not look too short."
-\version "2.1.22"
+\version "2.1.26"
\header{
texidoc = "Hairy case for beam, chord, and automatic knees."
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "Automatic beaming works also in ternary time sigs."
}
-\version "2.1.22"
+\version "2.1.26"
\header{
texidoc="
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "Beaming can be also given explicitly."
}
-\version "2.1.25"
+\version "2.1.26"
\header{
texidoc="
#(define (set-page-break grob grob-c context)
(let*
- ((meta (ly:get-grob-property grob 'meta))
+ ((meta (ly:grob-property grob 'meta))
(name (cdr (assoc 'name meta))))
(if (equal? 'NonMusicalPaperColumn name)
- (ly:set-grob-property! grob 'between-system-string "(pagebreak)\n\n"))
+ (ly:grob-set-property! grob 'between-system-string "(pagebreak)\n\n"))
))
\score {
-\version "2.1.22"
+\version "2.1.26"
\header{
texidoc="
-\version "2.1.22"
+\version "2.1.26"
\header{
texidoc="
#(ly:set-option 'old-relative)
-\version "2.1.22"
+\version "2.1.26"
\header{
texidoc="
Breathing signs are available in different tastes: commas (default),
-\version "2.1.22"
+\version "2.1.26"
\header{
texidoc="Property chordChanges: display chord names only when
-\version "2.1.22"
+\version "2.1.26"
\header {
-\version "2.1.22"
+\version "2.1.26"
\header {
-\version "2.1.22"
+\version "2.1.26"
\header { texidoc = "The property @code{chordNameExceptions} can used
to store a list of special notations for specific chords.
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "The layout of the major 7 can be tuned with
@code{majorSevenSymbol}."
-\version "2.1.22"
+\version "2.1.26"
\header {
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "Scripts can also be attached to chord elements."
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "
Tremolo repeats can be constructed for short tremolos (total duration smaller than 1/4) too. Only some of the beams are connected to the stems.
-\version "2.1.22"
+\version "2.1.26"
\header{
texidoc="
-\version "2.1.22"
+\version "2.1.26"
\header {
-\version "2.1.22" \header {
+\version "2.1.26" \header {
texidoc = "Octavation signs may be added to clefs. These
octavation signs may be placed below or above (meaning an octave
-\version "2.1.22"
+\version "2.1.26"
\header{
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "Clusters are a device to denote that a complete range of
notes is to be played."
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "Single head notes may collide. "
}
dots: notes with dots should go to the right, if there could be
confusion to which notes the dots belong."
}
-\version "2.1.22"
+\version "2.1.26"
\score {
\notes \relative c'' {
<< <a c>2\\ { <b d>4 <b d>4 } >>
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "If collision resolution finds dotted note head must
on the right side."
}
-\version "2.1.22"
+\version "2.1.26"
\paper { raggedright= ##t }
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "Note heads in collisions should be merged if
they have the same positions in the extreme note heads.
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc =
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "If NoteCollision has merge-differently-dotted = ##t note
texidoc = "When merging heads, the dots are merged too."
}
-\version "2.1.22"
+\version "2.1.26"
\score {
\notes {
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "Oppositely stemmed chords, meshing into each other,
are resolved."
#(ly:set-option 'old-relative)
-\version "2.1.22"
+\version "2.1.26"
\header{
texidoc="
In addition to normal collision rules, there is support for polyphony,
-\version "2.1.23"
+\version "2.1.26"
\header {
texidoc = "Completion heads are broken across bar lines. This was
-\version "2.1.23"
+\version "2.1.26"
\header{
texidoc="
-\version "2.1.23"
+\version "2.1.26"
\header {
texidoc = "Custodes may be engraved in various styles."
}
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "Dots move to the right when a collision with the (up)flag happens."
}
-\version "2.1.22" \header{
+\version "2.1.26" \header{
texidoc=" Noteheads can have dots, and rests too.
}
-\version "2.1.23"
+\version "2.1.26"
drh = \drums { cymc4.^"crash" hhc16^"h.h." hh \repeat "unfold" 5 {hhc8 hho hhc8 hh16 hh} hhc4 r4 r2 }
drl = \drums {\repeat "unfold" 3 {bd4 sn8 bd bd4 << bd ss >> } bd8 tommh tommh bd toml toml bd tomfh16 tomfh }
-\version "2.1.22"
+\version "2.1.26"
\header{
texidoc = "Broken crescendi should be open on one side."
}
-\version "2.1.22"
+\version "2.1.26"
\header {texidoc = "Dynamic letters are kerned, and their weight
matches that of the hairpin signs. The dynamic scripts should be
-\version "2.1.22"
+\version "2.1.26"
\header{
texidoc=" Dynamics appear below or above the staff. If multiple
dynamics are linked with (de)crescendi, they should be on the same
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "Crescendi may start off-notes, however, they should not collapse into flat lines."
-\version "2.1.23"
+\version "2.1.26"
\header {
texidoc = " Easy-notation (or Ez-notation) prints names in note heads.
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "
Figured bass is created by the FiguredBass context which eats
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "With the new chord syntax, it is possible to associate
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "Automatic fingering tries to put fingering instructions
-\version "2.1.22"
+\version "2.1.26"
\header{
texidoc = "
The line-spanners connects to the Y position of the note on the next line.
-\version "2.1.22"
+\version "2.1.26"
\header { texidoc = "The magnification can be set for any font. Note
that this does not change variable symbols such as beams or slurs.
" }
-\version "2.1.22"
+\version "2.1.26"
\header {
-\version "2.1.22"
+\version "2.1.26"
\header{
texidoc="
#(ly:set-option 'old-relative)
-\version "2.1.23"
+\version "2.1.26"
\header{
-\version "2.1.22"
+\version "2.1.26"
\header
{
texidoc = "The autobeamer is not confused by grace notes."
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "Bar line should come before the grace note."
}
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "Grace notes do tricky things with timing. If a measure
\paper { raggedright= ##t }
-\version "2.1.22"
+\version "2.1.26"
\score { \notes\relative c'' { c4 d8[ \grace { e32[ d c d] } e8] e[ e \grace { f16 } e8 e] }}
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc="@cindex Grace End
-\version "2.1.22"
+\version "2.1.26"
\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 "2.1.22"
+\version "2.1.26"
\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 "2.1.22"
+\version "2.1.26"
\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 "2.1.22"
+\version "2.1.26"
\header {
texidoc = "In nested syntax, graces are still properly handled."
}
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "Also in the nested syntax here, grace notes appear rightly."
}
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "Graces notes may have the same duration as the main note."
}
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "Grace notes may be put in a @code{partcombine}r."
}
-\version "2.1.22"
+\version "2.1.26"
\header{
texidoc = "Stripped version of trip.ly. Staves should be of correct length."
}
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "Pieces may begin with grace notes."
}
-\version "2.1.22"
+\version "2.1.26"
\header{
texidoc = "Here @code{startGraceMusic} should set @code{no-stem-extend} to
true; the two grace beams should be the same here.
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "Grace notes in different voices/staves are synchronized."
}
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "There are three different kinds of grace types: the base
grace switches to smaller type, the appoggiatura inserts also a slur, and the
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "When grace notes are entered with unfolded repeats,
line breaks take place before grace notes.
-\version "2.1.22"
+\version "2.1.26"
\header {
-\version "2.1.22"
+\version "2.1.26"
\header {
-\version "2.1.22"
+\version "2.1.26"
\header{
texidoc="
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc ="Hairpin crescendi may be dashed. "
-\version "2.1.22"
+\version "2.1.26"
\header {
-\version "2.1.23"
+\version "2.1.26"
\header { texidoc =
}
-\version "2.1.22"
+\version "2.1.26"
textFlat = \markup {\smaller \flat}
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "Instrument names are also printed on partial starting measures."
}
-\version "2.1.22"
+\version "2.1.26"
\header{
texidoc="
Staff margins are also markings attached to barlines. They should be
-\version "2.1.22"
+\version "2.1.26"
\header { texidoc = "Each clef have own accidental placing rules. " }
\score { \notes
-\version "2.1.22"
+\version "2.1.26"
\header { texidoc = "By setting @code{Staff.keySignature} directly,
key signatures can be set invidually per pitch.
-\version "2.1.22"
+\version "2.1.26"
\header{
texidoc="
Key signatures may appear on key changes, even without a barline.
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "With the @code{\\lyricsto} mechanism, individual lyric
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc ="Polyphonic rhythms and rests do not disturb
-\version "2.1.22"
+\version "2.1.26"
\header{
texidoc= "Lyrics can be set to a melody automatically. Excess lyrics will be
-\version "2.1.22"
+\version "2.1.26"
\header
{
-\version "2.1.22"
+\version "2.1.26"
\header { texidoc= "In lyric extenders, a syllable may be extended over several notes. "}
-\version "2.1.23"
+\version "2.1.26"
\header {
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "In lyrics, hyphens may be used."
}
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "
-\version "2.1.22"
+\version "2.1.26"
\header{
texidoc="
The multiple stanzas of lyric phrasing are aligned according to the start
-\version "2.1.23"
+\version "2.1.26"
\header{
texidoc="
-\version "2.1.22"
+\version "2.1.26"
\header
{
texidoc = "Melismata are triggered by manual beams."
texidoc = "The note markup function may be used to make metronome
markings. It works for a variety of flag, dot and duration settings."
}
-\version "2.1.22"
+\version "2.1.26"
\score { \notes { c4^\markup {
\note #"1" #1
-\version "2.1.22"
+\version "2.1.26"
\header {texidoc="Markup scripts may be stacked."}
\paper { raggedright = ##t}
\score { \notes { c''^\markup { "a" \column < "1" \bold "2" "3" > } } }
}
-\version "2.1.22" % to be updated
+\version "2.1.26" % to be updated
#(def-markup-command (upcase paper props str) (string?)
"Upcase the string characters. Syntax: \\upcase #\"string\""
}
-\version "2.1.23"
+\version "2.1.26"
%% TODO: should have 2/4 + 5/8 time sig style.
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "There is limited support for mensural notation: note head
}
-\version "2.1.22"
+\version "2.1.26"
\score { \notes \relative c'' { \tempo \breve = 100 c1 c1 \tempo 8.. = 50 c1 }
\paper { raggedright = ##t }
-\version "2.1.22"
+\version "2.1.26"
\header{
texidoc="
-\version "2.1.25"
+\version "2.1.26"
\header { texidoc=" You can write stencil callbacks in Scheme, thus
providing custom glyphs for notation elements. A simple example is
-\version "2.1.22"
+\version "2.1.26"
\header
{
texidoc = "The multimeasure rest is centered exactly between bar lines."
-\version "2.1.22"
+\version "2.1.26"
\header {
-\version "2.1.23"
+\version "2.1.26"
\header { texidoc = "There are both long and short intstrument names.
Engraving instrument names should not be confused by the
multimeasure rests. " }
independent on prefatory matter in other staves."
}
-\version "2.1.22"
+\version "2.1.26"
\score {
\notes << \new Staff { R1 }
texidoc = "By setting texts starting with a multi-measure rest, an
extra spacing column is created. This should not cause problems."
}
-\version "2.1.22"
+\version "2.1.26"
\score {
<<
-\version "2.1.22"
+\version "2.1.26"
\header {
-\version "2.1.23"
+\version "2.1.26"
\header{
texidoc="
}
-\version "2.1.25"
+\version "2.1.26"
#(define (notes-to-skip m)
"Convert all stuff with duration (notes, lyrics, bass figures, etc.) to skips.
Scripts and dynamics are maintained.
"
- (if (memq 'rhythmic-event (ly:get-mus-property m 'types))
+ (if (memq 'rhythmic-event (ly:music-property m 'types))
(let* ((newmus (make-music-by-name 'SkipEvent)))
(map
- (lambda (x) (ly:set-mus-property! newmus (car x) (cdr x)))
+ (lambda (x) (ly:music-set-property! newmus (car x) (cdr x)))
(ly:get-mutable-properties m))
newmus
)
texts using a similar syntax as @code{\\markup}."
}
-\version "2.1.23"
+\version "2.1.26"
\score {
\notes {
\fatText
texidoc = "With the new markup syntax, text may be written in various manners."
}
-\version "2.1.22"
+\version "2.1.26"
\score {
-\version "2.1.22"
+\version "2.1.26"
\header{
texidoc=" By default, text is set with empty horizontal dimensions.
-\version "2.1.23"
+\version "2.1.26"
\header {
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "Note heads are flipped on the stem to prevent collisions.
Harmonic heads do not get accidentals or dots."
}
-\version "2.1.22"
+\version "2.1.26"
\score {
\notes {
-\version "2.1.22"
+\version "2.1.26"
\header{
texidoc="
Note head shapes may be set from several choices.
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "Note head lines (e.g. glissando)
-\version "2.1.23"
+\version "2.1.26"
\header{
texidoc=" The number of stafflines of a staff can be set. Ledger
}
-\version "2.1.22"
+\version "2.1.26"
\paper { raggedright = ##t}
"
}
-\version "2.1.22"
+\version "2.1.26"
% . There must be a minimum distance between the octavation line and the
% topmost staff line, taking into account the height of the closing
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc ="The a2 string is printed only on notes (i.e. not on rests),
and only after chords, solo or polyphony."
"
}
-\version "2.1.22"
+\version "2.1.26"
vone =\notes
}
-\version "2.1.22"
+\version "2.1.26"
\score {
\new Staff
vone = \notes \relative a' { d4 r8 d8 d8 r8 d8 r8 d2 ~ d2 ~ d4 }
vtwo = \notes \relative g' { g4. g8 r2 g4 r4 r2 g4 }
-\version "2.1.22"
+\version "2.1.26"
\score {
}
-\version "2.1.22"
+\version "2.1.26"
vone = \notes \relative a' { R1 a2 r4 r a a a a }
vtwo = \notes \relative a' { R1 f4 f4 f4 f f f a a }
"
}
-\version "2.1.22"
+\version "2.1.26"
vone = \notes \relative a' { g2 g g g4 g f' c c( c) c c c ~ c
c2. c4 c
-\version "2.1.22"
+\version "2.1.26"
\header {
-\version "2.1.22"
+\version "2.1.26"
\header
{
texidoc = "The standard piano pedals style comes with Ped symbols.
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc="Ordinary slurs should work well with phrasing slur."
-\version "2.1.22"
+\version "2.1.26"
\header {
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "Distances between prefatory items (e.g. clef, bar, etc.)
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "Once properties take effect during a single time step only."
}
music may be quoted. "
}
-\version "2.1.25"
+\version "2.1.26"
bla = \notes\relative c' { fis4 fis fis fis }
with @code{\mark NUMBER}, or with @code{Score.rehearsalMark}."
}
-\version "2.1.22"
+\version "2.1.26"
\score { \notes \relative c'' {
c1 \mark \default
c1 \mark #7
}
-\version "2.1.22"
+\version "2.1.26"
\score {
\notes \relative c''{
\set Score.markFormatter = #format-mark-numbers
-\version "2.1.22"
+\version "2.1.26"
\header{
texidoc="
-\version "2.1.22"
+\version "2.1.26"
\header{
texidoc="
-\version "2.1.22"
+\version "2.1.26"
\header {
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "Measure repeats may be nested with beat repeats."
}
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "Within a bar, beat repeats denote that a music snippet should be
played again."
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "Repeats may be unfolded through the Scheme function @code{unfold-repeats}."
-\version "2.1.22"
+\version "2.1.26"
\header{
texidoc="
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "When too few alternatives are present, the first
-\version "2.1.22"
+\version "2.1.26"
\header{
texidoc="
texidoc = "Rests under beams are only moved if necessary."
}
-\version "2.1.22"
+\version "2.1.26"
fig = \notes \relative c' {
<a c e>8[ r <c e a> r <e a c> r <a c e>] r |
-\version "2.1.22"
+\version "2.1.26"
\header{
texidoc="
Rests should not collide with beams, stems and noteheads. Rests may
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "Whole and half rests moving outside the staff should get
ledger lines."
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "Rests can have pitches--these will be affected by
}
-\version "2.1.22"
+\version "2.1.26"
\score {
\new Staff \notes \relative c' {
-\version "2.1.22"
+\version "2.1.26"
\header{
texidoc="
-\version "2.1.22"
+\version "2.1.26"
\header
{
-\version "2.1.22"
+\version "2.1.26"
\header {
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "Scripts can be stacked. The order is determined by a
priority field, but when objects have the same priority, the input
-\version "2.1.22"
+\version "2.1.26"
\paper { raggedright= ##t }
-\version "2.1.22"
+\version "2.1.26"
\header{
texidoc="
-\version "2.1.22"
+\version "2.1.26"
foollilypondbook = "
\score
"
-\version "2.1.22"
+\version "2.1.26"
foollilypondbook = "
\score
"
-\version "2.1.22"
+\version "2.1.26"
foollilypondbook = "
\score
"
-\version "2.1.22"
+\version "2.1.26"
foollilypondbook = "
\score
"
-\version "2.1.22"
+\version "2.1.26"
foollilypondbook = "
\score
"
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "The area underneath an (up) slur is minimised to improve the shape. "
-\version "2.1.22"
+\version "2.1.26"
\header{
texidoc="
-\version "2.1.22"
+\version "2.1.26"
\header{
texidoc="
-\version "2.1.22"
+\version "2.1.26"
\header{
texidoc="
Slurs behave decently when broken across a linebreak.
-\version "2.1.22"
+\version "2.1.26"
\header{
texidoc="Slurs should not get confused by augmentation dots. With a lot
of dots, the problems becomes more visible."
-\version "2.1.22"
+\version "2.1.26"
\header{
texidoc="
Slurs should look nice and symmetric. The curvature may increase
-\version "2.1.22"
+\version "2.1.26"
\header
{
texidoc ="Slurs may be placed over rest. The slur will avoid colliding with
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc="An extra offset may be added between a slur and staccato(s)."
}
-\version "2.1.22"
+\version "2.1.26"
\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."
-\version "2.1.22"
+\version "2.1.26"
\header
{
texidoc = "Symmetric figures should lead to symmetric slurs."
-\version "2.1.22"
+\version "2.1.26"
\header
{
texidoc = "Symmetric figures should lead to symmetric slurs."
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "Accidentals in different staves do not affect the
-\version "2.1.25"
+\version "2.1.26"
\header {
texidoc = "Accidentals do not influence the amount of stretchable space. "
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "Accidentals sticking out to the left
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "Downstem notes following a barline are
printed with some extra space. This is an optical correction similar
-\version "2.1.23"
+\version "2.1.26"
\header {
texidoc = "Clef changes at the start of a line get much more space
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc ="Broken engraving of a bar at the end of a line does not upset
#(ly:set-option 'old-relative)
-\version "2.1.22"
+\version "2.1.26"
\header { texidoc = "
A voicelet (a very short voice to get polyphonic chords correct)
should not confuse the spacing engine."
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "A clef can be folded below notes in a different staff, if
this does not disrupt the flow of the notes."
-\version "2.1.23"
+\version "2.1.26"
\header {
texidoc = "A clef can be folded below notes in a different staff, if
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "Spacing uses the duration of the notes, but disregards
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "Grace note spacing. Should it be tuned? "
}
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "For knees, the spacing correction is such that the
-\version "2.1.22"
+\version "2.1.26"
\header{
texidoc = "Concurrent tuplets should be equidistant on all staffs.
}
}
-\version "2.1.22"
+\version "2.1.26"
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "Rests get a little less space, since they are narrower.
However, the quarter rest in feta font is relatively wide, causing this
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "Notes that are shorter than the common shortest note get a
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "Upstem notes before a barline are printed with some extra
-\version "2.1.22"
+\version "2.1.26"
\header{
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "For juxtaposed chords with the same direction, a
slight optical correction is used. It is constant, and works only if
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc ="Space from a normal note (or barline) to a grace note is
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "
When tightly spaced, the spaces between elements (hinterfleisch?)
-\version "2.1.23"
+\version "2.1.26"
\header {
texidoc = "Span bars are drawn only between staff bar lines. By setting
bar lines to transparent, they are shown only between systems.
-\version "2.1.22"
+\version "2.1.26"
\header{
texidoc="
}
-\version "2.1.23"
+\version "2.1.26"
\score {
<<
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "The staff is a grob (graphical object) which may be adjusted as well, for example, to have 6 thick lines and a slightly large @code{staff-space}.
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "Stanza numbers are put left of their lyric."
-\version "2.1.22"
+\version "2.1.26"
\header{
texidoc="
-\version "2.1.22"
+\version "2.1.26"
\header {
-\version "2.1.23"
+\version "2.1.26"
\header{
texidoc="
-\version "2.1.22"
+\version "2.1.26"
\header{
texidoc="
Stem tremolos or rolls are tremolo signs that look like beam segments
-\version "2.1.23"
+\version "2.1.26"
\header {
texidoc = "The size of every system is correctly determined; this
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc =
"
}
-\version "2.1.23"
+\version "2.1.26"
\score {
\notes \new TabStaff {
-\version "2.1.22"
+\version "2.1.26"
\header{ texidoc = "@cindex Tabulature
A sample tablature, with both normal staff and tab.
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "The @code{\\tag} command marks music expressions with a
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc= "Text spanners should not repeat start text when broken."
}
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "Tie engraver uses @code{busyGrobs} to keep track of
-\version "2.1.22"
+\version "2.1.26"
\header{
texidoc="
When tying chords, the outer slurs point outwards, the inner slurs
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "Ties should not collide with dots."
}
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "Tieing a grace to the to a following grace or main note works."
}
-\version "2.1.22"
+\version "2.1.26"
\header{
texidoc="
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "In combination with a beam, the bracket of the tuplet
-\version "2.1.25"
+\version "2.1.26"
\header {
texidoc="By a manual hack for nested tuplets, an outer tuplet can be moved up."
}
#(define (make-text-checker-once text)
(lambda (grob) (and text-checker-once
- (if (equal? text (ly:get-grob-property grob 'text))
+ (if (equal? text (ly:grob-property grob 'text))
(begin
(set! text-checker-once #f) #t)
#f))))
}
-\version "2.1.22"
+\version "2.1.26"
\score {
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "Tuplets may contain rests. "
}
-\version "2.1.22"
+\version "2.1.26"
\score {
\notes \relative c' {
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "Horizontal tuplet brackets are shifted vertically
-\version "2.1.22"
+\version "2.1.26"
\header{
texidoc="
-\version "2.1.22"
+\version "2.1.26"
\header { texidoc= "
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc ="Broken volta spanners behave correctly at their left edge in all cases."
on more staves in a score."
}
-\version "2.1.22"
+\version "2.1.26"
vmus = \notes { \repeat volta 2 c1 \alternative { d e } }
-\version "2.1.22"
+\version "2.1.26"
%% +.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 "2.1.25"
+\version "2.1.26"
\header {
#(define (make-script x)
(let ((m (make-music-by-name 'ArticulationEvent)))
- (ly:set-mus-property! m 'articulation-type x)
+ (ly:music-set-property! m 'articulation-type x)
m))
#(define (add-script m x)
(if
- (equal? (ly:get-mus-property m 'name) 'EventChord)
- (ly:set-mus-property! m 'elements
+ (equal? (ly:music-property m 'name) 'EventChord)
+ (ly:music-set-property! m 'elements
(cons (make-script x)
- (ly:get-mus-property m 'elements))))
+ (ly:music-property m 'elements))))
m)
#(define (add-staccato m)
-\version "2.1.25"
+\version "2.1.26"
\header {
texidoc= "@cindex make-music Fingering
#(define (make-text-script x)
(let ((m (make-music-by-name 'TextScriptEvent)))
- (ly:set-mus-property! m 'direction DOWN)
- (ly:set-mus-property! m 'text (make-simple-markup x))
+ (ly:music-set-property! m 'direction DOWN)
+ (ly:music-set-property! m 'text (make-simple-markup x))
m))
#(define (add-text-script m x)
- (if (equal? (ly:get-mus-property m 'name) 'EventChord)
- (ly:set-mus-property! m 'elements
+ (if (equal? (ly:music-property m 'name) 'EventChord)
+ (ly:music-set-property! m 'elements
(cons (make-text-script x)
- (ly:get-mus-property m 'elements)))
+ (ly:music-property m 'elements)))
- (let ((es (ly:get-mus-property m 'elements))
- (e (ly:get-mus-property m 'element)) )
+ (let ((es (ly:music-property m 'elements))
+ (e (ly:music-property m 'element)) )
(map (lambda (y) (add-text-script y x)) es)
(if (ly:music? e)
(add-text-script e x))))
"
}
-\version "2.1.25"
+\version "2.1.26"
#(define (kill-ambitus grob grob-context apply-context)
- (if (memq 'ambitus-interface (ly:get-grob-property grob 'interfaces))
+ (if (memq 'ambitus-interface (ly:grob-property grob 'interfaces))
(ly:grob-suicide grob)
))
#(define ((shift-ambitus x) grob grob-context apply-context)
- (if (memq 'ambitus-interface (ly:get-grob-property grob 'interfaces))
+ (if (memq 'ambitus-interface (ly:grob-property grob 'interfaces))
(ly:grob-translate-axis! grob x X)
))
"
}
-\version "2.1.22"
+\version "2.1.26"
\score {
\context Voice \notes\relative c {
-\version "2.1.23"
+\version "2.1.26"
% TODO: split ancient-font into seperate files; possibly in
% different locations.
\header {
-\version "2.1.22"
+\version "2.1.26"
% TODO: move stuff from ancient-font into here? See comment
% for ancient-font.ly
\header {
-\version "2.1.23"
+\version "2.1.26"
\header {
texidoc = "@cindex Bagpipe Music
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "@cindex Bars Always
-\version "2.1.23"
+\version "2.1.26"
\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 "2.1.22"
+\version "2.1.26"
\header {
texidoc = "@cindex Bar Lines
Different types of bar lines demonstrated.
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "@cindex Bar Number Every Fifth Reset
" }
-\version "2.1.22"
+\version "2.1.26"
\score {
\context Staff \notes \transpose c c' {
-\version "2.1.22"
+\version "2.1.26"
\header{
texidoc="@cindex Bar Number Show All
Second line has bar numbers on start of every measure.
}
-\version "2.1.25"
+\version "2.1.26"
wipeNote = {
\once \override NoteHead #'transparent = ##t
-\version "2.1.23"
+\version "2.1.26"
% keep for now, although merging into beam-auto-override is a possibility.
\header {
texidoc = "@cindex Auto Beaming 4/8
-\version "2.1.23"
+\version "2.1.26"
\header {
texidoc = "@cindex Auto Beaming Override
-\version "2.1.22"
+\version "2.1.26"
\header{
texidoc = "@cindex Beaming Presets
The auto-beam engraver has presets for common time signatures. " }
-\version "2.1.22"
+\version "2.1.26"
\header{
texidoc="@cindex Beam Position Control
-\version "2.1.23"
+\version "2.1.26"
\header{
texidoc="@cindex Beam Count
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "@cindex Beam Dir Functions
-\version "2.1.22"
+\version "2.1.26"
\header{
texidoc="@cindex Beam Isknee
LilyPond can beam across a Piano Staff.
-\version "2.1.22"
+\version "2.1.26"
\header{
texidoc="@cindex Beam Neutral Direction
When a beam falls in the middle of the staff, LilyPond normally
-\version "2.1.22"
+\version "2.1.26"
\header{
texidoc="@cindex Beam Over Rests
-\version "2.1.22"
+\version "2.1.26"
% 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 "2.1.23"
+\version "2.1.26"
\header {
texidoc = "@cindex Blank Paper Tab
-\version "2.1.23"
+\version "2.1.26"
\header {
texidoc="@cindex Blank Paper
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "@cindex Boxed Stencil
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "@cindex Capital Letters
You can set the font to use small caps.
-\version "2.1.22"
+\version "2.1.26"
\header{
texidoc="@cindex Cautionary Accidentals
LilyPond can display cautionary accidentals in different ways.
-\version "2.1.23"
+\version "2.1.26"
\header {
texidoc = "@cindex Chord Names German
By setting @code{chordRootNamer}, the root
-\version "2.1.23"
+\version "2.1.26"
\header {
-\version "2.1.22"
+\version "2.1.26"
\header { texidoc= "@cindex Chord Names No Inversions
Chord names don't attempt to find inversions and
bass notes. " }
-\version "2.1.23"
+\version "2.1.26"
\header {
texidoc = "Jazz chords can also be used without notes."
}
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "@cindex Chord Octavation
Appending @code{_8} or @code{^8} to a clef name will
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "@cindex Clef End of Line
-\version "2.1.22"
+\version "2.1.26"
\header{ texidoc = "
@cindex Clef Manual Control
-\version "2.1.23"
+\version "2.1.26"
% Ugh, we need to override some LaTeX titling stuff
-\version "2.1.25"
+\version "2.1.26"
\header{
texidoc="@cindex Count Systems
-\version "2.1.22"
+\version "2.1.26"
\header{
texidoc="@cindex Crescendi
LilyPond can print crescendi in a number of different ways.
-\version "2.1.22"
+\version "2.1.26"
% TODO: check to see if this example can be simplified using \small
% or \tiny.
\header { texidoc = "@cindex Cue Notes
@code{caesura}.
" }
-\version "2.1.22"
+\version "2.1.26"
\include "gregorian-init.ly"
-\version "2.1.22"
+\version "2.1.26"
% possible rename to slurs-?
% TODO: find out what drarn means, and if there's an overlap with drarn.ly
\header{
-\version "2.1.22"
+\version "2.1.26"
\header{texidoc="@cindex Drarn
You can attach slurs and ties to noteheads.
" }
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "@cindex Dynamic Absolute Volume
Absolute dynamics have effect in MIDI files.
-\version "2.1.22"
+\version "2.1.26"
% probably should be merged into refman.
\header{
texidoc = "@cindex Dynamic Piu Forte
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "@cindex Embedded Postscript
By inserting the @TeX{} command \embeddedps, you can
-\version "2.1.22"
+\version "2.1.26"
% 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 "2.1.22"
+\version "2.1.26"
\header{ texidoc="@cindex Embedded Tex
You can embed Tex commands in your score. "}
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc ="In polyphonic notation, many voices can share a staff: In
-\version "2.1.23"
+\version "2.1.26"
\header {
texidoc = "The notation problem, @emph{what} symbols to create,
-\version "2.1.23"
+\version "2.1.26"
% definitely wil be renamed to something.
%{
texidoc = "An alternate method to make bass figures is to use
markup texts."
}
-\version "2.1.22"
+\version "2.1.26"
nat = \markup { \natural }
sh = \markup { \smaller \raise #0.6 \sharp }
-\version "2.1.23"
+\version "2.1.26"
%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
-\version "2.1.22"
+\version "2.1.26"
% MERGED: stuff from follow-break.ly to follow-thread.ly
% followVoice: connect note heads with line when thread switches staff
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc="@cindex Force hshift
Force hshift to override collisions. " }
-\version "2.1.22"
+\version "2.1.26"
\header{
texidoc="@cindex Gourlay
-\version "2.1.22"
+\version "2.1.26"
\header {
title = "Gregorian Scripts"
texidoc = "@cindex Gregorian Scripts
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc ="@cindex Artificial Harmonics
-\version "2.1.22"
+\version "2.1.26"
#(define (my-ly-version)
-\version "2.1.22"
+\version "2.1.26"
\header { texidoc = "@cindex Horizontal Shift
You can manually shift notes horizontally. " }
-\version "2.1.23"
+\version "2.1.26"
\header { texidoc = "
-\version "2.1.23"
+\version "2.1.26"
\header {
texidoc =
-\version "2.1.22"
+\version "2.1.26"
\header { texidoc = "@cindex Incipit
This shows how to make an ``incipit'' to indicate scordatora
tuning of a violin part, using the clefStyle property.
-\version "2.1.23"
+\version "2.1.26"
\header { texidoc = "@cindex Instrument Name Grandstaff
You can name the whole grandstaff in addition to individual staffs. " }
-\version "2.1.22"
+\version "2.1.26"
% MERGE with title.ly -gp
%{
-\version "2.1.23"
+\version "2.1.26"
\header {
% shorthand for Skip Lyric
sl = \notes { \skip 4 }
-\version "2.1.22"
+\version "2.1.26"
\score {
<<
\context Voice = "A" \notes {c4 c c c}
-\version "2.1.23"
+\version "2.1.26"
% TODO:
% check with ancient- stuff. rename, merge, something. -gp
-\version "2.1.22"
+\version "2.1.26"
% candidate for regression. -gp
\header {
texidoc="MIDI and midi2ly test file. Diff between this and midi2ly.py should be minimal."
-\version "2.1.25"
+\version "2.1.26"
% possible rename to scheme- or something like that. -gp
\header { texidoc= "@cindex Scheme Manual Accidentals
(lambda (elt)
(and
(not (eq? #f (memq 'accidental-interface
- (ly:get-grob-property elt 'interfaces))))
- (eq? (ly:get-grob-property
+ (ly:grob-property elt 'interfaces))))
+ (eq? (ly:grob-property
(ly:grob-parent elt 1) 'staff-position) pos))))
\score {
-\version "2.1.25"
+\version "2.1.26"
% 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
move text around. " }
#(define (make-text-checker text)
- (lambda (grob) (equal? text (ly:get-grob-property grob 'text))))
+ (lambda (grob) (equal? text (ly:grob-property grob 'text))))
\score {
\notes\relative c''' {
-\version "2.1.25"
+\version "2.1.26"
\include "deutsch.ly"
% possible rename to scheme- something. -gp
% TODO: ask if it needs to have so many empty bars in the middle. -gp
#(define (transform music)
- (let* ((es (ly:get-mus-property music 'elements))
+ (let* ((es (ly:music-property music 'elements))
(n (ly:music-name music))
)
(if (not (equal? n "Sequential_music"))
(let recurse ((elts es))
(if (not (equal? elts '()))
(begin
- ((trans (ly:get-mus-property (cadr elts) 'elements)) (car elts))
+ ((trans (ly:music-property (cadr elts) 'elements)) (car elts))
(set-cdr! elts (cddr elts))
(recurse (cdr elts))
)
)
#(define ((trans pitches) music)
- (let* ((es (ly:get-mus-property music 'elements))
- (e (ly:get-mus-property music 'element))
- (p (ly:get-mus-property music 'pitch)))
+ (let* ((es (ly:music-property music 'elements))
+ (e (ly:music-property music 'element))
+ (p (ly:music-property music 'pitch)))
(if (pair? es)
- (ly:set-mus-property!
+ (ly:music-set-property!
music 'elements
(map (trans pitches) es)))
(if (ly:music? e)
- (ly:set-mus-property!
+ (ly:music-set-property!
music 'element
((trans pitches) e)))
(let* ((o (ly:pitch-octave p))
(n (ly:pitch-notename p))
(i (+ (* 7 o) n))
- (pes (ly:get-mus-property (list-ref pitches i) 'elements))
- (pnew (ly:get-mus-property (car pes) 'pitch))
+ (pes (ly:music-property (list-ref pitches i) 'elements))
+ (pnew (ly:music-property (car pes) 'pitch))
)
- (ly:set-mus-property! music 'pitch pnew)
+ (ly:music-set-property! music 'pitch pnew)
)
)
music
-\version "2.1.25"
+\version "2.1.26"
pat = \notes \transpose c c' \repeat unfold 2 {
<< { \context Staff=up {r8 e16 f g e f g } }
-\version "2.1.22"
+\version "2.1.26"
\header{ texidoc="@cindex Nested Staff Groups
LilyPond can print nested groups of staffs. "
-\version "2.1.23"
+\version "2.1.26"
% possible rename to bar-lines-foo. -gp
\header{ texidoc = "@cindex Bar Lines Remove
-\version "2.1.23"
+\version "2.1.26"
% possible rename to staff-something. -gp
\header{ texidoc = "@cindex Staff Remove
Both solutions are demonstrated here.
" }
-\version "2.1.22"
+\version "2.1.26"
\score {
\notes\relative c''
-\version "2.1.22"
+\version "2.1.26"
\header{ texidoc="@cindex Part Combine
In orchestral scores and hymns, voices are traditionally combined onto
-\version "2.1.22"
+\version "2.1.26"
% 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)
-\version "2.1.22"
+\version "2.1.26"
\header{ texidoc="@cindex Phrasing Slur Height
Make PhrasingSlur higher, to avoid colission from other slurs. "
}
}
-\version "2.1.25"
+\version "2.1.26"
#(define ((futz-alignment-callback distance count) grob axis)
(< count (length bs))
(equal? (list-ref bs count) a)
)
- (ly:set-grob-property! a 'forced-distance distance))
+ (ly:grob-set-property! a 'forced-distance distance))
(Align_interface::fixed_distance_alignment_callback grob axis)) )
-\version "2.1.25"
+\version "2.1.26"
\header{ texidoc="
#(define (scale-one-music m fraction)
"Maybe we should just export Music::compress to Scheme?"
(let*
- ((dur (ly:get-mus-property m 'duration)))
+ ((dur (ly:music-property m 'duration)))
(if (ly:duration? dur)
(let*
(d (ly:duration-dot-count dur))
(factor (ly:duration-factor dur)))
- (ly:set-mus-property! m 'duration
+ (ly:music-set-property! m 'duration
(ly:make-duration l d
(* (car fraction) (car factor))
(* (cdr fraction) (cdr factor))))))
-\version "2.1.23"
+\version "2.1.26"
\header{ texidoc="@cindex Time Signature Multiple
-\version "2.1.22"
+\version "2.1.26"
\header { texidoc = "
@cindex Preset Extent
-\version "2.1.22"
+\version "2.1.26"
\header { texidoc = "@cindex Repeat Manual
You can manually control repeat signs and numbers to produce
unusual output. "
-\version "2.1.22"
+\version "2.1.26"
\header{
texidoc="
-\version "2.1.22"
+\version "2.1.26"
% possible rename to lyric-repeat or repeat-lyric.
-\version "2.1.22"
+\version "2.1.26"
% candidate for regression. -gp
\header { texidoc = "@cindex Rest Dot Positions
This file tests dotted rests. " }
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc = "@cindex Rests
-\version "2.1.25"
+\version "2.1.26"
% possible rename to scheme-something.
\header { texidoc="@cindex Scheme Reverse Music
Simple customised music apply. "
music = \notes \relative c'' { c4 d4( e4 f4 }
#(define (reverse-music music)
- (let* ((elements (ly:get-mus-property music 'elements))
+ (let* ((elements (ly:music-property music 'elements))
(reversed (reverse elements))
- (e (ly:get-mus-property music 'element))
- (span-dir (ly:get-mus-property music 'span-direction)))
+ (e (ly:music-property music 'element))
+ (span-dir (ly:music-property music 'span-direction)))
- (ly:set-mus-property! music 'elements reversed)
+ (ly:music-set-property! music 'elements reversed)
(if (ly:music? e)
- (ly:set-mus-property!
+ (ly:music-set-property!
music 'element
(reverse-music e)))
(if (ly:dir? span-dir)
- (ly:set-mus-property! music 'span-direction (- span-dir)))
+ (ly:music-set-property! music 'span-direction (- span-dir)))
(map reverse-music reversed)
-\version "2.1.23"
+\version "2.1.26"
\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 "2.1.22"
+\version "2.1.26"
\header {
texidoc = "
-\version "2.1.22"
+\version "2.1.26"
\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 "2.1.22"
+\version "2.1.26"
\header { texidoc = "@cindex Script Abbreviations
Some scripts may be entered using an abbreviation.
-\version "2.1.22"
+\version "2.1.26"
% this chart is used in the manual too.
-\version "2.1.22"
+\version "2.1.26"
\header { texidoc = "@cindex Script Priority
Relative placements of different script types can be controlled
-\version "2.1.22"
+\version "2.1.26"
\header { texidoc = "@cindex Stacked Text Articulation
You can stack text and articulations. "
-\version "2.1.22"
+\version "2.1.26"
% possible rename. -gp
\header { texidoc="@cindex Seperate Staccato
-\version "2.1.22"
+\version "2.1.26"
\header{
texidoc="@cindex Slur Attachment Override
-\version "2.1.22"
+\version "2.1.26"
% 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 "2.1.22"
+\version "2.1.26"
\header {texidoc = "@cindex Slur, dotted
You can print different kinds of slurs (dotted, dashed, etc). "
}
-\version "2.1.22"
+\version "2.1.26"
\header {
-\version "2.1.22"
+\version "2.1.26"
\header { texidoc = "@cindex Slur Minimum Length
You can set the minimum length of a slur. "
-\version "2.1.23"
+\version "2.1.26"
\header { texidoc="@cindex Slur Ugly
You can get ugly slurs, if you want. "
-\version "2.1.25"
+\version "2.1.26"
\header {
texidoc="@cindex Smart Transpose
(ly:make-pitch o n a)))
#(define (simplify music)
- (let* ((es (ly:get-mus-property music 'elements))
- (e (ly:get-mus-property music 'element))
- (p (ly:get-mus-property music 'pitch)))
+ (let* ((es (ly:music-property music 'elements))
+ (e (ly:music-property music 'element))
+ (p (ly:music-property music 'pitch)))
(if (pair? es)
- (ly:set-mus-property!
+ (ly:music-set-property!
music 'elements
(map (lambda (x) (simplify x)) es)))
(if (ly:music? e)
- (ly:set-mus-property!
+ (ly:music-set-property!
music 'element
(simplify e)))
(if (ly:pitch? p)
(begin
(set! p (unhair-pitch p))
- (ly:set-mus-property! music 'pitch p)))
+ (ly:music-set-property! music 'pitch p)))
music))
-\version "2.1.22"
+\version "2.1.26"
% more yummy regression goodness. -gp
\header {
-\version "2.1.25"
+\version "2.1.26"
\header { texidoc = "@cindex Spanner after break
;; if you're using this for other grob-types.
(if (and (>= (length b) 2) (eq? (car (last-pair b)) grob))
- (ly:set-grob-property! grob 'extra-offset '(-2 . -1))
+ (ly:grob-set-property! grob 'extra-offset '(-2 . -1))
)
))
-\version "2.1.23"
+\version "2.1.26"
\header{texidoc = "@cindex Staff Bracket
Here's an example of staff brackets. "
-\version "2.1.23"
+\version "2.1.26"
\header {
-\version "2.1.22"
+\version "2.1.26"
\header {
-\version "2.1.23"
+\version "2.1.26"
\header { texidoc = "@cindex Staff Size
-\version "2.1.23"
+\version "2.1.26"
\header{ texidoc ="@cindex Staff Space
Setting staff space on a staff. "
-\version "2.1.22"
+\version "2.1.26"
% possible rename to ancient- something.
\header {
texidoc ="@cindex Ancient Mensural Note Heads
-\version "2.1.22"
+\version "2.1.26"
\header { texidoc = "@cindex Stem Cross Staff
There is no support for putting chords across staves.
-\version "2.1.22"
+\version "2.1.26"
\header { texidoc = "@cindex Stem Extend
You can stop LilyPond from extending stems to the center line. "
-\version "2.1.22"
+\version "2.1.26"
\header{ texidoc = "@cindex Stem Length
You can alter the length of stems. "
-\version "2.1.22"
+\version "2.1.26"
\header {texidoc = "@cindex Tablature hammer
You can fake a hammer in tablature with slurs. "
}
-\version "2.1.22"
+\version "2.1.26"
\header{ texidoc = "@cindex Tabulature
A sample tablature, with both normal staff and tab.
-\version "2.1.23"
+\version "2.1.26"
\header {
}
-\version "2.1.22"
+\version "2.1.26"
\score {
\new Staff \notes \relative c'' {
-\version "2.1.22"
+\version "2.1.26"
\header { texidoc = "@cindex text spanner
You can make LilyPond print text spanners. "
-\version "2.1.22"
+\version "2.1.26"
\header { texidoc = "@cindex Textscript
Test font selection and scm text markup. "
-\version "2.1.22"
+\version "2.1.26"
-\version "2.1.22"
+\version "2.1.26"
\header { texidoc = "@cindex Tie Sparse
Setting sparseTies causes only one tie to be
-\version "2.1.22"
+\version "2.1.26"
\header { texidoc= "
-\version "2.1.22"
+\version "2.1.26"
% TODO: This file could be old. Ask about it later. -gp
\header { texidoc = "@cindex Time
-\version "2.1.22"
+\version "2.1.26"
% possible rename to bar-something.
\header{ texidoc = "@cindex Bar Length
-\version "2.1.22"
+\version "2.1.26"
% MERGE with lilypond-
\header {
filename = "title.ly"
-\version "2.1.22"
+\version "2.1.26"
fooBar = \notes { << c''4 \\ g'4 >> }
-\version "2.1.22"
+\version "2.1.26"
\header{ texidoc = "@cindex Transposition
Transposition test file."
-\version "2.1.22"
+\version "2.1.26"
\header { texidoc="@cindex Trill
Show trill line type.
-\version "2.1.22"
+\version "2.1.26"
\header {
texidoc="@cindex Trills
-\version "2.1.22"
+\version "2.1.26"
% regression. -gp
\header {
-\version "2.1.23"
+\version "2.1.26"
% possible rename to ancient-something.
\header { texidoc = "Ancient Vaticana
-\version "2.1.22"
+\version "2.1.26"
\header {
-\version "2.1.22"
+\version "2.1.26"
% TODO: huh? what's this file about? -gp
\header { texidoc = "
}
-LY_DEFINE(ly_get_context_property,
+LY_DEFINE(ly_context_property,
"ly:context-property", 2, 0, 0,
(SCM context, SCM name),
"retrieve the value of @var{name} from context @var{context}")
}
-LY_DEFINE(ly_set_context_property,
+LY_DEFINE(ly_context_set_property,
"ly:context-set-property!", 3, 0, 0,
(SCM context, SCM name, SCM val),
"set value of property @var{name} in context @var{context} to @var{val}.")
return sc->get_length().smobbed_copy();
}
-LY_DEFINE(ly_get_property,
+LY_DEFINE(ly_music_property,
"ly:music-property", 2, 0, 0, (SCM mus, SCM sym),
"Get the property @var{sym} of music expression @var{mus}.\n"
"If @var{sym} is undefined, return @code{'()}.\n" )
return sc->internal_get_property (sym);
}
-LY_DEFINE(ly_set_property,
+LY_DEFINE(ly_music_set_property,
"ly:music-set-property!", 3, 0, 0,
(SCM mus, SCM sym, SCM val),
"Set property @var{sym} in music expression @var{mus} to @var{val}.")
-\version "2.1.22"
+\version "2.1.26"
% a3-init.ly
hsize = 296.9 \mm
-\version "2.1.22"
+\version "2.1.26"
% a4.ly
hsize = 210.0 \mm
-\version "2.1.22"
+\version "2.1.26"
% Symbols needed to print accordion music
%
% 2' = T
% Toplevel initialisation file.
-\version "2.1.22"
+\version "2.1.26"
\include "declarations-init.ly"
pitchnames = \pitchnamesCatalan
-\version "2.1.22"
+\version "2.1.26"
% Toplevel initialisation file.
-\version "2.1.22"
+\version "2.1.26"
\include "declarations-init.ly"
-\version "2.1.22"
+\version "2.1.26"
chordmodifiers = #default-chord-modifier-list
#(ly:set-option 'old-relative)
-\version "2.1.23"
+\version "2.1.26"
breve = #(ly:make-duration -1 0)
longa = #(ly:make-duration -2 0 )
maxima = #(ly:make-duration -3 0)
pitchnames = \pitchnamesDeutsch
-\version "2.1.22"
+\version "2.1.26"
-\version "2.1.24"
+\version "2.1.26"
drumPitchNames =
#'((acousticbassdrum . acousticbassdrum)
-\version "2.1.22"
+\version "2.1.26"
%
% declare the standard dynamic identifiers.
#(define (make-dynamic-script str)
(let* ((m (make-music-by-name 'AbsoluteDynamicEvent)))
- (ly:set-mus-property! m 'text str)
+ (ly:music-set-property! m 'text str)
m
))
ppppp = #(make-dynamic-script "pppp")
pitchnames = \pitchnamesEnglish
-\version "2.1.22"
+\version "2.1.26"
-\version "2.1.23"
+\version "2.1.26"
\translator {
\name Global
pitchnames = \pitchnamesEspanol
-\version "2.1.22"
+\version "2.1.26"
-\version "2.1.22"
+\version "2.1.26"
%
% Running LilyPond on this file generates the documentation
-\version "2.1.22"
+\version "2.1.26"
%
% Running LilyPond on this file generates the short interface doc
-\version "2.1.22"
+\version "2.1.26"
startGraceMusic = \notes {
-\version "2.1.22"
+\version "2.1.26"
%%%%%%%%
%%%%%%%% shortcuts common for all styles of gregorian chant notation
#(define-public midi-debug #f)
-\version "2.1.25"
+\version "2.1.26"
\include "declarations-init.ly"
pitchnames = \pitchnamesItaliano
-\version "2.1.22"
+\version "2.1.26"
-\version "2.1.22"
+\version "2.1.26"
% legal-init.ly
hsize = 8.5 \in
-\version "2.1.22"
+\version "2.1.26"
% letter-init.ly
hsize = 8.5 \in
-\version "2.1.22"
+\version "2.1.26"
\midi {
\tempo 4=60
\include "performer-init.ly"
-\version "2.1.22"
+\version "2.1.26"
%{
common dutch names for notes. es means flat, is means sharp
%}
pitchnames =\pitchnamesNorsk
-\version "2.1.22"
+\version "2.1.26"
-\version "2.1.22"
+\version "2.1.26"
-\version "2.1.23"
+\version "2.1.26"
% JUNKME
%part-paper-init.ly
-\version "2.1.23"
+\version "2.1.26"
%
% setup for Request->Element conversion. Guru-only
% property-init.ly
-\version "2.1.22"
+\version "2.1.26"
stemUp = \override Stem #'direction = #1
stemDown = \override Stem #'direction = #-1
-\version "2.1.22"
+\version "2.1.26"
major = #`(
-\version "2.1.22"
+\version "2.1.26"
dashHat= "marcato"
-\version "2.1.22"
+\version "2.1.26"
startGroup = #(make-span-event 'NoteGroupingEvent START)
stopGroup = #(make-span-event 'NoteGroupingEvent STOP)
pitchnames = \pitchnamesSuomi
-\version "2.1.22"
+\version "2.1.26"
)
pitchnames = \pitchnamesSvenska
-\version "2.1.22"
+\version "2.1.26"
-\version "2.1.22"
+\version "2.1.26"
% tabloid-init.ly
"Like the C++ code that executes \\override, but without type
checking. "
- (ly:set-context-property! context context-prop
+ (ly:context-set-property! context context-prop
(cons (cons setting value)
- (ly:get-context-property context context-prop)
+ (ly:context-property context context-prop)
)
)
)
- (ly:set-context-property!
+ (ly:context-set-property!
context context-prop
- (revert-assoc (ly:get-context-property context context-prop)
+ (revert-assoc (ly:context-property context context-prop)
setting))
)
(define-public (make-bass-figure-markup figures context)
(define (no-end-bracket? f1 f2)
- (eq? (ly:get-mus-property f1 'bracket-stop) '())
+ (eq? (ly:music-property f1 'bracket-stop) '())
)
(define (no-start-bracket? f1 f2)
- (eq? (ly:get-mus-property f2 'bracket-start) '())
+ (eq? (ly:music-property f2 'bracket-start) '())
)
;; TODO: support slashed numerals here.
(define (fig-to-markup fig-music)
(let*
- ((align-accs (eq? #t (ly:get-context-property context 'alignBassFigureAccidentals)))
- (fig (ly:get-mus-property fig-music 'figure))
- (acc (ly:get-mus-property fig-music 'alteration))
+ ((align-accs (eq? #t (ly:context-property context 'alignBassFigureAccidentals)))
+ (fig (ly:music-property fig-music 'figure))
+ (acc (ly:music-property fig-music 'alteration))
(acc-markup #f)
(fig-markup
(if (string? fig)
(
(c (make-dir-column-markup (map fig-to-markup figs)))
)
- (if (eq? (ly:get-mus-property (car figs) 'bracket-start) #t)
+ (if (eq? (ly:music-property (car figs) 'bracket-start) #t)
(make-bracket-markup c)
c
)))
(ev (make-music-by-name 'NoteEvent))
)
- (ly:set-mus-property! ev 'duration duration)
- (ly:set-mus-property! ev 'pitch pitch)
+ (ly:music-set-property! ev 'duration duration)
+ (ly:music-set-property! ev 'pitch pitch)
ev
))
(if bass-note
(begin
- (ly:set-mus-property! bass-note 'bass #t)
+ (ly:music-set-property! bass-note 'bass #t)
(set! nots (cons bass-note nots))))
(if inv-note
(begin
- (ly:set-mus-property! inv-note 'inversion #t)
- (ly:set-mus-property! inv-note 'octavation
+ (ly:music-set-property! inv-note 'inversion #t)
+ (ly:music-set-property! inv-note 'octavation
(- (ly:pitch-octave inversion)
(ly:pitch-octave original-inv-pitch))
)
(make-line-markup
(if (and (= (step-nr pitch) 7)
(= (step-alteration pitch) 1))
- (list (ly:get-context-property context 'majorSevenSymbol))
+ (list (ly:context-property context 'majorSevenSymbol))
(list (accidental->markup (step-alteration pitch))
(make-simple-markup (number->string (step-nr pitch)))))))
(if #f (begin
(write-me "pitches: " pitches)))
(let* ((full-exceptions
- (ly:get-context-property context 'chordNameExceptionsFull))
+ (ly:context-property context 'chordNameExceptionsFull))
(full-exception (full-match full-exceptions))
(full-markup (if full-exception (cadr full-exception) '()))
(partial-exceptions
- (ly:get-context-property context 'chordNameExceptionsPartial))
+ (ly:context-property context 'chordNameExceptionsPartial))
(partial-exception (partial-match partial-exceptions))
(partial-pitches (if partial-exception (car partial-exception) '()))
(partial-markup-prefix
ps)
))
- (define name-root (ly:get-context-property context 'chordRootNamer))
+ (define name-root (ly:context-property context 'chordRootNamer))
(define name-note
- (let ((nn (ly:get-context-property context 'chordNoteNamer)))
+ (let ((nn (ly:context-property context 'chordNoteNamer)))
(if (eq? nn '())
; replacing the next line with name-root gives guile-error...? -rz
;; apparently sequence of defines is equivalent to let, not let* ? -hwn
- (ly:get-context-property context 'chordRootNamer)
+ (ly:context-property context 'chordRootNamer)
;; name-root
nn)))
(args (list num-markup))
(total (if (= (ly:pitch-alteration pitch) 0)
(if (= (pitch-step pitch) 7)
- (list (ly:get-context-property context 'majorSevenSymbol))
+ (list (ly:context-property context 'majorSevenSymbol))
args)
(cons (accidental->markup (step-alteration pitch)) args)
))
(let*
(
- (sep (ly:get-context-property context 'chordNameSeparator))
+ (sep (ly:context-property context 'chordNameSeparator))
(root-markup (name-root root))
(add-markups (map (lambda (x)
(glue-word-to-step "add" x))
,exception-markup
.
,(if (ly:pitch? bass-pitch)
- (list (ly:get-context-property context 'chordNameSeparator)
+ (list (ly:context-property context 'chordNameSeparator)
(name-note bass-pitch))
'()))))
(
(root (car in-pitches))
(pitches (map (lambda (x) (ly:pitch-diff x root)) (cdr in-pitches)))
- (exceptions (ly:get-context-property context 'chordNameExceptions))
+ (exceptions (ly:context-property context 'chordNameExceptions))
(exception (assoc-get-default pitches exceptions #f))
(prefixes '())
(suffixes '())
"
(define (chord-to-exception-entry m)
- (let* ((elts (ly:get-mus-property m 'elements))
+ (let* ((elts (ly:music-property m 'elements))
(omit-root (and (pair? rest) (car rest)))
- (pitches (map (lambda (x) (ly:get-mus-property x 'pitch))
+ (pitches (map (lambda (x) (ly:music-property x 'pitch))
(filter
(lambda (y) (memq 'note-event
- (ly:get-mus-property y 'types)))
+ (ly:music-property y 'types)))
elts)))
(sorted (sort pitches ly:pitch<?))
(root (car sorted))
;; \chords has changed to c' too?
(diff (ly:pitch-diff root (ly:make-pitch 0 0 0)))
(normalized (map (lambda (x) (ly:pitch-diff x diff)) sorted))
- (texts (map (lambda (x) (ly:get-mus-property x 'text))
+ (texts (map (lambda (x) (ly:music-property x 'text))
(filter
(lambda (y) (memq 'text-script-event
- (ly:get-mus-property y 'types)))
+ (ly:music-property y 'types)))
elts)))
(text (if (null? texts) #f (if omit-root (car texts) texts))))
(define (is-req-chord? m)
(and
- (memq 'event-chord (ly:get-mus-property m 'types))
+ (memq 'event-chord (ly:music-property m 'types))
(not (equal? ZERO-MOMENT (ly:music-length m)))))
- (let* ((elts (filter is-req-chord? (ly:get-mus-property seq 'elements)))
+ (let* ((elts (filter is-req-chord? (ly:music-property seq 'elements)))
(alist (map chord-to-exception-entry elts)))
(filter (lambda (x) (cdr x)) alist)))
(m (make-music-by-name 'PropertySet))
)
- (map (lambda (x) (ly:set-mus-property! m (car x) (cdr x))) props)
+ (map (lambda (x) (ly:music-set-property! m (car x) (cdr x))) props)
m
))
(csp (make-music-by-name 'ContextSpeccedMusic))
)
- (ly:set-mus-property! seq 'elements musics)
+ (ly:music-set-property! seq 'elements musics)
(context-spec-music seq 'Staff))
(begin
(ly:warn (format "Unknown clef type `~a'
(define-public (music-map function music)
"Apply @var{function} to @var{music} and all of the music it contains. "
- (let* ((es (ly:get-mus-property music 'elements))
- (e (ly:get-mus-property music 'element))
+ (let* ((es (ly:music-property music 'elements))
+ (e (ly:music-property music 'element))
)
- (ly:set-mus-property! music 'elements
+ (ly:music-set-property! music 'elements
(map (lambda (y) (music-map function y)) es))
(if (ly:music? e)
- (ly:set-mus-property! music 'element (music-map function e)))
+ (ly:music-set-property! music 'element (music-map function e)))
(function music)
))
(define (inner-music-filter pred? music)
"Recursive function."
- (let* ((es (ly:get-mus-property music 'elements))
- (e (ly:get-mus-property music 'element))
- (as (ly:get-mus-property music 'articulations))
+ (let* ((es (ly:music-property music 'elements))
+ (e (ly:music-property music 'element))
+ (as (ly:music-property music 'articulations))
(filtered-as (filter ly:music? (map (lambda (y) (inner-music-filter pred? y)) as)))
(filtered-e (if (ly:music? e)
(inner-music-filter pred? e)
(filtered-es (filter ly:music? (map (lambda (y) (inner-music-filter pred? y)) es)))
)
- (ly:set-mus-property! music 'element filtered-e)
- (ly:set-mus-property! music 'elements filtered-es)
- (ly:set-mus-property! music 'articulations filtered-as)
+ (ly:music-set-property! music 'element filtered-e)
+ (ly:music-set-property! music 'elements filtered-es)
+ (ly:music-set-property! music 'articulations filtered-as)
;; if filtering emptied the expression, we remove it completely.
(if (or (pred? music)
(lambda (mus)
(music-filter
(lambda (m)
- (let* ((tags (ly:get-mus-property m 'tags))
+ (let* ((tags (ly:music-property m 'tags))
(res (memq tag tags)))
res)) mus)))
(display music)
(display ": { ")
- (let* ((es (ly:get-mus-property music 'elements))
- (e (ly:get-mus-property music 'element))
+ (let* ((es (ly:music-property music 'elements))
+ (e (ly:music-property music 'element))
)
(display (ly:get-mutable-properties music))
(let*
(
- (d (ly:get-mus-property music 'duration))
+ (d (ly:music-property music 'duration))
)
(if (ly:duration? d)
(let* (
(cdr cp)))
)
- (ly:set-mus-property! music 'duration nd)
+ (ly:music-set-property! music 'duration nd)
))
music))
(define-public (note-to-cluster music)
"Replace NoteEvents by ClusterNoteEvents."
- (if (eq? (ly:get-mus-property music 'name) 'NoteEvent)
+ (if (eq? (ly:music-property music 'name) 'NoteEvent)
(let* ((cn (make-music-by-name 'ClusterNoteEvent)))
- (ly:set-mus-property! cn 'pitch (ly:get-mus-property music 'pitch))
- (ly:set-mus-property! cn 'duration (ly:get-mus-property music 'duration))
+ (ly:music-set-property! cn 'pitch (ly:music-property music 'pitch))
+ (ly:music-set-property! cn 'duration (ly:music-property music 'duration))
cn)
music))
"
This function replaces all repeats with unfold repeats. It was
written by Rune Zedeler. "
- (let* ((es (ly:get-mus-property music 'elements))
- (e (ly:get-mus-property music 'element))
+ (let* ((es (ly:music-property music 'elements))
+ (e (ly:music-property music 'element))
(n (ly:music-name music)))
(if (equal? n "Repeated_music")
(begin
(if (equal?
- (ly:get-mus-property music 'iterator-ctor)
+ (ly:music-property music 'iterator-ctor)
Chord_tremolo_iterator::constructor)
- (shift-duration-log music (ly:intlog2 (ly:get-mus-property music 'repeat-count)) 0)
+ (shift-duration-log music (ly:intlog2 (ly:music-property music 'repeat-count)) 0)
)
- (ly:set-mus-property!
+ (ly:music-set-property!
music 'length Repeated_music::unfolded_music_length)
- (ly:set-mus-property!
+ (ly:music-set-property!
music 'start-moment-function Repeated_music::first_start)
- (ly:set-mus-property!
+ (ly:music-set-property!
music 'iterator-ctor Unfolded_repeat_iterator::constructor)))
(if (pair? es)
- (ly:set-mus-property!
+ (ly:music-set-property!
music 'elements
(map unfold-repeats es)))
(if (ly:music? e)
- (ly:set-mus-property!
+ (ly:music-set-property!
music 'element
(unfold-repeats e)))
i.e. this is not an override"
(let* ((m (make-music-by-name 'OverrideProperty)))
- (ly:set-mus-property! m 'symbol grob)
- (ly:set-mus-property! m 'grob-property gprop)
- (ly:set-mus-property! m 'grob-value val)
- (ly:set-mus-property! m 'pop-first #t)
+ (ly:music-set-property! m 'symbol grob)
+ (ly:music-set-property! m 'grob-property gprop)
+ (ly:music-set-property! m 'grob-value val)
+ (ly:music-set-property! m 'pop-first #t)
m
i.e. this is not an override"
(let* ((m (make-music-by-name 'OverrideProperty)))
- (ly:set-mus-property! m 'symbol grob)
- (ly:set-mus-property! m 'grob-property gprop)
- (ly:set-mus-property! m 'grob-value val)
+ (ly:music-set-property! m 'symbol grob)
+ (ly:music-set-property! m 'grob-property gprop)
+ (ly:music-set-property! m 'grob-value val)
m
(define-public (make-grob-property-revert grob gprop)
"Revert the grob property GPROP for GROB."
(let* ((m (make-music-by-name 'OverrideProperty)))
- (ly:set-mus-property! m 'symbol grob)
- (ly:set-mus-property! m 'grob-property gprop)
+ (ly:music-set-property! m 'symbol grob)
+ (ly:music-set-property! m 'grob-property gprop)
m
"Add \\context CONTEXT = foo to M. "
(let* ((cm (make-music-by-name 'ContextSpeccedMusic)))
- (ly:set-mus-property! cm 'element m)
- (ly:set-mus-property! cm 'context-type context)
+ (ly:music-set-property! cm 'element m)
+ (ly:music-set-property! cm 'context-type context)
(if (and (pair? rest) (string? (car rest)))
- (ly:set-mus-property! cm 'context-id (car rest))
+ (ly:music-set-property! cm 'context-id (car rest))
)
cm
))
(let*
((m (make-music-by-name 'ApplyContext)))
- (ly:set-mus-property! m 'procedure func)
+ (ly:music-set-property! m 'procedure func)
m
))
(define-public (make-sequential-music elts)
(let* ((m (make-music-by-name 'SequentialMusic)))
- (ly:set-mus-property! m 'elements elts)
+ (ly:music-set-property! m 'elements elts)
m
))
(define-public (make-simultaneous-music elts)
(let* ((m (make-music-by-name 'SimultaneousMusic)))
- (ly:set-mus-property! m 'elements elts)
+ (ly:music-set-property! m 'elements elts)
m
))
(define-public (make-event-chord elts)
(let* ((m (make-music-by-name 'EventChord)))
- (ly:set-mus-property! m 'elements elts)
+ (ly:music-set-property! m 'elements elts)
m
))
(define-public (make-skip-music dur)
(let* ((m (make-music-by-name 'SkipMusic)))
- (ly:set-mus-property! m 'duration dur)
+ (ly:music-set-property! m 'duration dur)
m
))
(seq (make-music-by-name 'MultiMeasureRestMusicGroup))
)
- (map (lambda (x) (ly:set-mus-property! x 'origin location))
+ (map (lambda (x) (ly:music-set-property! x 'origin location))
(list start ch ch2 seq))
- (ly:set-mus-property! start 'duration duration)
- (ly:set-mus-property! seq 'elements
+ (ly:music-set-property! start 'duration duration)
+ (ly:music-set-property! seq 'elements
(list
ch
(make-event-chord (list start))
(let*
(
- (text (ly:get-mus-property script-music 'text))
- (dir (ly:get-mus-property script-music 'direction))
+ (text (ly:music-property script-music 'text))
+ (dir (ly:music-property script-music 'direction))
(p (make-music-by-name 'MultiMeasureTextEvent))
)
(if (ly:dir? dir)
- (ly:set-mus-property! p 'direction dir))
- (ly:set-mus-property! p 'text text)
+ (ly:music-set-property! p 'direction dir))
+ (ly:music-set-property! p 'text text)
p
))
- (if (eq? (ly:get-mus-property music 'name) 'MultiMeasureRestMusicGroup)
+ (if (eq? (ly:music-property music 'name) 'MultiMeasureRestMusicGroup)
(let*
(
- (text? (lambda (x) (memq 'script-event (ly:get-mus-property x 'types))))
- (es (ly:get-mus-property music 'elements))
+ (text? (lambda (x) (memq 'script-event (ly:music-property x 'types))))
+ (es (ly:music-property music 'elements))
(texts (map script-to-mmrest-text (filter text? es)))
(others (remove text? es))
)
(if (pair? texts)
- (ly:set-mus-property!
+ (ly:music-set-property!
music 'elements
(cons (make-event-chord texts) others)
))
(
(m (make-music-by-name 'PropertySet))
)
- (ly:set-mus-property! m 'symbol sym)
- (ly:set-mus-property! m 'value val)
+ (ly:music-set-property! m 'symbol sym)
+ (ly:music-set-property! m 'value val)
m
))
old centralCPosition, add OCTAVATION to centralCPosition, and set
OTTAVATION to `8va', or whatever appropriate."
- (if (number? (ly:get-context-property context 'centralCPosition))
+ (if (number? (ly:context-property context 'centralCPosition))
(if (= octavation 0)
(let*
((where (ly:context-property-where-defined context 'centralCPosition))
- (oc0 (ly:get-context-property context 'originalCentralCPosition)))
+ (oc0 (ly:context-property context 'originalCentralCPosition)))
- (ly:set-context-property! context 'centralCPosition oc0)
+ (ly:context-set-property! context 'centralCPosition oc0)
(ly:unset-context-property where 'originalCentralCPosition)
(ly:unset-context-property where 'ottavation))
(let*
((where (ly:context-property-where-defined context 'centralCPosition))
- (c0 (ly:get-context-property context 'centralCPosition))
+ (c0 (ly:context-property context 'centralCPosition))
(new-c0 (+ c0 (* -7 octavation)))
(string (cdr
(assoc octavation '((2 . "15ma")
(-1 . "8va bassa")
(-2 . "15ma bassa"))))))
- (ly:set-context-property! context 'centralCPosition new-c0)
- (ly:set-context-property! context 'originalCentralCPosition c0)
- (ly:set-context-property! context 'ottavation string)
+ (ly:context-set-property! context 'centralCPosition new-c0)
+ (ly:context-set-property! context 'originalCentralCPosition c0)
+ (ly:context-set-property! context 'ottavation string)
))))
- (ly:set-mus-property! m 'procedure ottava-modify)
+ (ly:music-set-property! m 'procedure ottava-modify)
(context-spec-music m 'Staff)
))
(if set
(make-sequential-music (list set ch))
(begin
- (ly:set-mus-property! ev 'label label)
+ (ly:music-set-property! ev 'label label)
ch))))
(define-public (make-penalty-music pen)
(let
((m (make-music-by-name 'BreakEvent)))
- (ly:set-mus-property! m 'penalty pen)
+ (ly:music-set-property! m 'penalty pen)
m))
(define-public (make-articulation name)
(let* (
(m (make-music-by-name 'ArticulationEvent))
)
- (ly:set-mus-property! m 'articulation-type name)
+ (ly:music-set-property! m 'articulation-type name)
m
))
(define-public (make-lyric-event string duration)
(let* ((m (make-music-by-name 'LyricEvent)))
- (ly:set-mus-property! m 'duration duration)
- (ly:set-mus-property! m 'text string)
+ (ly:music-set-property! m 'duration duration)
+ (ly:music-set-property! m 'text string)
m))
(define-public (make-span-event type spandir)
(let* (
(m (make-music-by-name type))
)
- (ly:set-mus-property! m 'span-direction spandir)
+ (ly:music-set-property! m 'span-direction spandir)
m
))
"Set all of ALIST as properties of M."
(if (pair? alist)
(begin
- (ly:set-mus-property! m (caar alist) (cdar alist))
+ (ly:music-set-property! m (caar alist) (cdar alist))
(set-mus-properties! m (cdr alist)))
))
(define-public (music-separator? m)
"Is M a separator?"
- (let* ((ts (ly:get-mus-property m 'types )))
+ (let* ((ts (ly:music-property m 'types )))
(memq 'separator ts)
))
(define (voicify-chord ch)
"Split the parts of a chord into different Voices using separator"
- (let* ((es (ly:get-mus-property ch 'elements)))
+ (let* ((es (ly:music-property ch 'elements)))
- (ly:set-mus-property! ch 'elements
+ (ly:music-set-property! ch 'elements
(voicify-list (split-list es music-separator?) 0))
ch
))
(error "not music!"))
)
(let*
- ((es (ly:get-mus-property m 'elements))
- (e (ly:get-mus-property m 'element))
+ ((es (ly:music-property m 'elements))
+ (e (ly:music-property m 'element))
)
(if (pair? es)
- (ly:set-mus-property! m 'elements (map voicify-music es)))
+ (ly:music-set-property! m 'elements (map voicify-music es)))
(if (ly:music? e)
- (ly:set-mus-property! m 'element (voicify-music e)))
+ (ly:music-set-property! m 'element (voicify-music e)))
(if
(and (equal? (ly:music-name m) "Simultaneous_music")
(reduce (lambda (x y ) (or x y)) #f (map music-separator? es)))
(define-public (make-type-checker symbol)
(lambda (elt)
;;(display symbol)
- ;;(eq? #t (ly:get-grob-property elt symbol))
- (not (eq? #f (memq symbol (ly:get-grob-property elt 'interfaces))))))
+ ;;(eq? #t (ly:grob-property elt symbol))
+ (not (eq? #f (memq symbol (ly:grob-property elt 'interfaces))))))
(define-public ((outputproperty-compatibility func sym val) grob g-context ao-context)
(if (func grob)
- (ly:set-grob-property! grob sym val)))
+ (ly:grob-set-property! grob sym val)))
(define-public ((set-output-property grob-name symbol val) grob grob-c context)
"
(let*
- ((meta (ly:get-grob-property grob 'meta)))
+ ((meta (ly:grob-property grob 'meta)))
(if (equal? (cdr (assoc 'name meta)) grob-name)
- (ly:set-grob-property! grob symbol val)
+ (ly:grob-set-property! grob symbol val)
)))
)
(define (checker tr)
- (let* ((bn (ly:get-context-property tr 'currentBarNumber)))
+ (let* ((bn (ly:context-property tr 'currentBarNumber)))
(if (= bn n)
#t
(error
n bn ))
)))
- (ly:set-mus-property! m 'procedure checker)
+ (ly:music-set-property! m 'procedure checker)
m
))
(define (ly:music-message music msg)
(let*
(
- (ip (ly:get-mus-property music 'origin))
+ (ip (ly:music-property music 'origin))
)
(if (ly:input-location? ip)
"Check music expression for a Simultaneous_music containing notes\n(ie. Request_chords), without context specification. Called from parser."
(let*
- ((es (ly:get-mus-property music 'elements))
- (e (ly:get-mus-property music 'element))
+ ((es (ly:music-property music 'elements))
+ (e (ly:music-property music 'element))
(name (ly:music-name music))
)
(define (set-prop context)
(let*
((where (ly:context-property-where-defined context 'graceSettings))
- (current (ly:get-context-property where 'graceSettings))
+ (current (ly:context-property where 'graceSettings))
(new-settings (vector-extend current (list context-name grob sym val)))
)
- (ly:set-context-property! where 'graceSettings new-settings)))
+ (ly:context-set-property! where 'graceSettings new-settings)))
(ly:export (context-spec-music (make-apply-context set-prop) 'Voice)))
)))
(let*
- ((props (ly:get-context-property context 'graceSettings)))
+ ((props (ly:context-property context 'graceSettings)))
(if (vector? props)
(vector-map execute-1 props))))
)))
(let*
- ((props (ly:get-context-property context 'graceSettings)))
+ ((props (ly:context-property context 'graceSettings)))
(if (vector? props)
(vector-reverse-map execute-1 props))))
(define (apply-durations lyric-music durations)
(define (apply-duration music)
(if (and (not (equal? (ly:music-length music) ZERO-MOMENT))
- (ly:duration? (ly:get-mus-property music 'duration)))
+ (ly:duration? (ly:music-property music 'duration)))
(begin
- (ly:set-mus-property! music 'duration (car durations))
+ (ly:music-set-property! music 'duration (car durations))
(set! durations (cdr durations))
)))
(define-public ((add-balloon-text object-name text off) grob orig-context cur-context)
"Usage: see input/regression/balloon.ly "
(let*
- ((meta (ly:get-grob-property grob 'meta))
+ ((meta (ly:grob-property grob 'meta))
(nm (if (pair? meta) (cdr (assoc 'name meta)) "nonexistant"))
- (cb (ly:get-grob-property grob 'print-function)))
+ (cb (ly:grob-property grob 'print-function)))
(if (equal? nm object-name)
(begin
- (ly:set-grob-property! grob 'print-function Balloon_interface::print)
- (ly:set-grob-property! grob 'balloon-original-callback cb)
- (ly:set-grob-property! grob 'balloon-text text)
- (ly:set-grob-property! grob 'balloon-text-offset off)
- (ly:set-grob-property! grob 'balloon-text-props '((font-family . roman)))
+ (ly:grob-set-property! grob 'print-function Balloon_interface::print)
+ (ly:grob-set-property! grob 'balloon-original-callback cb)
+ (ly:grob-set-property! grob 'balloon-text text)
+ (ly:grob-set-property! grob 'balloon-text-offset off)
+ (ly:grob-set-property! grob 'balloon-text-props '((font-family . roman)))
))))
(define-public (tablature-print-function grob)
(let ((stencil (fontify-text
(ly:get-default-font grob)
- (ly:get-grob-property grob 'text)
+ (ly:grob-property grob 'text)
)))
stencil ; return the stencil.
))
) ) )
(define-public (hammer-print-function grob)
- (let* ((note-collums (ly:get-grob-property grob 'note-columns))
+ (let* ((note-collums (ly:grob-property grob 'note-columns))
(note-column1 (cadr note-collums))
(note-column2 (car note-collums))
- (note1 (car (ly:get-grob-property note-column1 'note-heads)))
- (note2 (car (ly:get-grob-property note-column2 'note-heads)))
- (text1 (ly:get-grob-property note1 'text))
- (text2 (ly:get-grob-property note2 'text))
+ (note1 (car (ly:grob-property note-column1 'note-heads)))
+ (note2 (car (ly:grob-property note-column2 'note-heads)))
+ (text1 (ly:grob-property note1 'text))
+ (text2 (ly:grob-property note2 'text))
(fret1 (if (string? text1) (string->number text1) 0))
(fret2 (if (string? text2) (string->number text2) 0))
(letter (cond
(define-public ((modulo-bar-number-visible n m) barnum) (and (> barnum 1) (= m (modulo barnum n))))
(define-public ((set-bar-number-visibility n) tr)
- (let* ((bn (ly:get-context-property tr 'currentBarNumber)))
- (ly:set-context-property! tr 'barNumberVisibility (modulo-bar-number-visible n (modulo bn n)))))
+ (let* ((bn (ly:context-property tr 'currentBarNumber)))
+ (ly:context-set-property! tr 'barNumberVisibility (modulo-bar-number-visible n (modulo bn n)))))
(define-public (default-bar-number-visibility barnum) (> barnum 1))
(define-method (note-events (vs <Voice-state>))
(define (f? x)
- (equal? (ly:get-mus-property x 'name) 'NoteEvent))
+ (equal? (ly:music-property x 'name) 'NoteEvent))
(filter f? (events vs)))
(define-method (previous-voice-state (vs <Voice-state>))
"Analyse EVS at INDEX, given state ACTIVE."
(define (analyse-tie-start active ev)
- (if (equal? (ly:get-mus-property ev 'name) 'TieEvent)
+ (if (equal? (ly:music-property ev 'name) 'TieEvent)
(acons 'tie index active)
active
))
(define (analyse-tie-end active ev)
- (if (equal? (ly:get-mus-property ev 'name) 'NoteEvent)
+ (if (equal? (ly:music-property ev 'name) 'NoteEvent)
(assoc-remove! active 'tie)
active) )
(define (analyse-absdyn-end active ev)
- (if (equal? (ly:get-mus-property ev 'name) 'AbsoluteDynamicEvent)
+ (if (equal? (ly:music-property ev 'name) 'AbsoluteDynamicEvent)
(assoc-remove!
(assoc-remove! active 'cresc)
'decr)
(define (analyse-span-event active ev)
(let*
- ((name (ly:get-mus-property ev 'name))
+ ((name (ly:music-property ev 'name))
(key (cond
((equal? name 'SlurEvent) 'slur)
((equal? name 'PhrasingSlurEvent) 'tie)
((equal? name 'CrescendoEvent) 'cresc)
((equal? name 'DecrescendoEvent) 'decr)
(else #f)) )
- (sp (ly:get-mus-property ev 'span-direction)) )
+ (sp (ly:music-property ev 'span-direction)) )
(if (and (symbol? key) (ly:dir? sp))
(if (= sp STOP)
(consists Note_heads_engraver)
)))
- (ly:set-mus-property! m 'elements (list m1 m2))
- (ly:set-mus-property! m1 'property-operations props)
- (ly:set-mus-property! m2 'property-operations props)
+ (ly:music-set-property! m 'elements (list m1 m2))
+ (ly:music-set-property! m1 'property-operations props)
+ (ly:music-set-property! m2 'property-operations props)
(ly:run-translator m2 part-combine-listener)
(ly:run-translator m1 part-combine-listener)
- (ly:set-mus-property! m 'split-list
+ (ly:music-set-property! m 'split-list
(determine-split-list (reverse! (cdr (assoc "one" noticed)) '())
(reverse! (cdr (assoc "two" noticed)) '())))
(set! noticed '())
(vs2 (cdr (voice-states now-state)))
(notes1 (note-events vs1))
- (durs1 (sort (map (lambda (x) (ly:get-mus-property x 'duration)) notes1) ly:duration<?))
+ (durs1 (sort (map (lambda (x) (ly:music-property x 'duration)) notes1) ly:duration<?))
(pitches1 (sort
- (map (lambda (x) (ly:get-mus-property x 'pitch)) notes1) ly:pitch<?))
+ (map (lambda (x) (ly:music-property x 'pitch)) notes1) ly:pitch<?))
(notes2 (note-events vs2))
- (durs2 (sort (map (lambda (x) (ly:get-mus-property x 'duration)) notes2) ly:duration<?))
+ (durs2 (sort (map (lambda (x) (ly:music-property x 'duration)) notes2) ly:duration<?))
(pitches2 (sort
- (map (lambda (x) (ly:get-mus-property x 'pitch)) notes2) ly:pitch<?)) )
+ (map (lambda (x) (ly:music-property x 'pitch)) notes2) ly:pitch<?)) )
(cond
((> (length notes1) 1) (put 'apart))
((and
(= 1 (length notes1))
(= 1 (length notes2))
- (equal? (ly:get-mus-property (car notes1) 'pitch)
- (ly:get-mus-property (car notes2) 'pitch)))
+ (equal? (ly:music-property (car notes1) 'pitch)
+ (ly:music-property (car notes2) 'pitch)))
(set! (configuration now-state) 'unisono))
((and
((evs (map car (cdar event-list)))
(now (caar event-list))
(notes (filter (lambda (x)
- (equal? (ly:get-mus-property x 'name) 'NoteEvent))
+ (equal? (ly:music-property x 'name) 'NoteEvent))
evs))
(pitch (if (pair? notes)
- (ly:get-mus-property (car notes) 'pitch)
+ (ly:music-property (car notes) 'pitch)
#f)) )
;; tail recursive.
'())
))
- (ly:set-mus-property! m 'element music)
- (ly:set-mus-property! m 'split-list split)
+ (ly:music-set-property! m 'element music)
+ (ly:music-set-property! m 'split-list split)
(set! noticed '())
m
;;;;
(define (attached-to-stem slur dir)
- (let* ((note-columns (ly:get-grob-property slur 'note-columns))
+ (let* ((note-columns (ly:grob-property slur 'note-columns))
(col (if (= dir 1) (car note-columns) (car (last-pair note-columns))))
- (stem (ly:get-grob-property col 'stem)))
+ (stem (ly:grob-property col 'stem)))
(and
(eq? col (ly:spanner-get-bound slur dir))
(ly:grob? stem)
- (ly:get-grob-property stem 'heads))))
+ (ly:grob-property stem 'heads))))
;;
;; 'head 'along-side-stem 'stem 'loose-end
;;
(define (calc-slur-extremity slur dir)
- (let* ((note-columns (ly:get-grob-property slur 'note-columns))
+ (let* ((note-columns (ly:grob-property slur 'note-columns))
(col (car (if (= dir 1) note-columns (reverse note-columns))))
- (stem (ly:get-grob-property col 'stem)))
+ (stem (ly:grob-property col 'stem)))
(cond
((< (length note-columns) 1) 'head)
((not (attached-to-stem slur dir)) 'loose-end)
((and stem
- (not (equal? (ly:get-grob-property slur 'direction)
- (ly:get-grob-property stem 'direction)))) 'head)
+ (not (equal? (ly:grob-property slur 'direction)
+ (ly:grob-property stem 'direction)))) 'head)
((and (attached-to-stem slur dir)
(ly:grob? stem)
- (ly:grob? (ly:get-grob-property stem 'beam))
+ (ly:grob? (ly:grob-property stem 'beam))
;; and beam on same side as slur
(equal?
- (ly:get-grob-property stem 'direction)
- (ly:get-grob-property slur 'direction)))
+ (ly:grob-property stem 'direction)
+ (ly:grob-property slur 'direction)))
'stem)
((not (attached-to-stem slur dir)) 'loose-end)
(else 'head))
(alteration . ,(ly:pitch-alteration p)))))
(define (music->xml-node music)
- (let* ((name (ly:get-mus-property music 'name))
- (e (ly:get-mus-property music 'element))
- (es (ly:get-mus-property music 'elements))
+ (let* ((name (ly:music-property music 'name))
+ (e (ly:music-property music 'element))
+ (es (ly:music-property music 'elements))
(mprops (ly:get-mutable-properties music))
- (d (ly:get-mus-property music 'duration))
- (p (ly:get-mus-property music 'pitch))
+ (d (ly:music-property music 'duration))
+ (p (ly:music-property music 'pitch))
(ignore-props '(origin elements duration pitch element)))
(make <xml-node>
;; tuplets.
(define-public (denominator-tuplet-formatter mus)
- (number->string (ly:get-mus-property mus 'denominator)))
+ (number->string (ly:music-property mus 'denominator)))
(define-public (fraction-tuplet-formatter mus)
- (string-append (number->string (ly:get-mus-property mus 'numerator))
+ (string-append (number->string (ly:music-property mus 'numerator))
":"
- (number->string (ly:get-mus-property mus 'denominator))
+ (number->string (ly:music-property mus 'denominator))
))
;; metronome marks
(define-public (format-metronome-markup event context)
(let*
- ((dur (ly:get-mus-property event 'tempo-unit))
- (count (ly:get-mus-property event 'metronome-count))
+ ((dur (ly:music-property event 'tempo-unit))
+ (count (ly:music-property event 'metronome-count))
(note-mark (make-note-by-number-markup (ly:duration-log dur)
(ly:duration-dot-count dur)
1) ) )
'''
#need anything else besides textwidth?
def get_latex_textwidth (source):
+ print 'hoi\n', source
m = re.search (r'''(?P<preamble>\\begin\s*{document})''', source)
preamble = source[:m.start (0)]
latex_document = LATEX_DOCUMENT % vars ()
output_filename = (output_name
+ '/' + input_base
+ format2ext[format])
+
+
+ if os.path.samefile (output_filename, input_fullname):
+ ly.error (_("Output would overwrite input file; use --output."))
+ sys.exit (2)
+
output_file = open (output_filename, 'w')
if output_name:
os.chdir (output_name)
ly.progress (_ ("Reading %s...") % input_fullname)
source = in_handle.read ()
+ print 'hoai', source, in_handle
ly.progress ('\n')
snippet_types = (