as index; this fixes too short forced stem directions.
(calc_stem_info): various minute bugfixes.
* lily/gourlay-breaking.cc (combine_demerits): set uniform
tightness constraint back to one. This fixes Baerenreiter
sarabande layout.
* lily/stem.cc (calc_stem_info): Use get_direction_beam_count.
* lily/beam.cc (get_direction_beam_count): New function.
* GNUmakefile.in: Fix config.h dependency.
* input/regression/tuplet-properties.ly:
* input/regression/tuplet-nest.ly: Fix.
2002-08-11 Jan Nieuwenhuizen <janneke@gnu.org>
- * input: some fixes.
+ * lily/stem.cc (get_default_stem_end_position): use beam_count - 1
+ as index; this fixes too short forced stem directions.
+ (calc_stem_info): various minute bugfixes.
+
+ * lily/gourlay-breaking.cc (combine_demerits): set uniform
+ tightness constraint back to one. This fixes Baerenreiter
+ sarabande layout.
+
+ * input: some fixes. Add \version to all files.
* lily/stem.cc (calc_stem_info): Use get_direction_beam_count.
@itemize @bullet
@item A dvi viewer that supports src specials.
@itemize @bullet
-@item Plain Xdvi, version 22.36 or newer. Available from
+@item Xdvi, version 22.36 or newer. Available from
@uref{ftp://ftp.math.berkeley.edu/pub/Software/TeX/xdvi.tar.gz,ftp.math.berkeley.edu}.
- Note that most @TeX{} distributions ship with xdvik, which is a
- different and less well maintained program. To find out which xdvi you
- are running, try @code{xdvi --version} or @code{xdvi.bin --version}.
+ Note that most @TeX{} distributions ship with xdvik, which is always
+ a few versions behind the official Xdvi. To find out which xdvi you
+ are running, try @code{xdvi -version} or @code{xdvi.bin -version}.
@item KDVI. A dvi viewer for KDE. You need KDVI from KDE 3.0 or
newer. Enablle the menu Settings -> Inverse search.
@end itemize
@item XEmacs. Xemacs is very similar to emacs.
@item NEdit. NEdit runs under Windows, and Unix.
It is available from @uref{http://www.nedit.org}.
-@item GVim. GVim is a lightweight GUI variant of VIM, the popular VI
+@item GVim. GVim is a GUI variant of VIM, the popular VI
clone. It is available from @uref{http://www.vim.org}.
@end itemize
@end itemize
If you use xemacs instead of emacs, you use @code{(gnuserve-start)} in
your @file{.emacs}, and set @code{XEDITOR} to @code{gnuclient -q +%l %f}
-For using Vim, set @code{XEDITOR} to @code{gvim +%l %f}, or use this
+For using Vim, set @code{XEDITOR} to @code{gvim --remote +%l %f}, or use this
argument with xdvi's @code{-editor} option.
@cindex NEdit
For using NEdit, set @code{XEDITOR} to @code{nc -noask +%l %f}, or
depth = ..
-SUBDIRS=bugs test regression tutorial no-notation ascii-art template mutopia
+SUBDIRS=test regression tutorial no-notation ascii-art template mutopia
# nereides is tweaked a lot, can't do (read webpage)
examples=trip star-spangled-banner paddy twinkle font20
+\version "1.5.68"
\include "paper13.ly"
mu = {}
+\version "1.5.68"
\include "SondagMorgenIntro.ly"
\include "SondagMorgenVers.ly"
\include "SondagMorgenVersVolta1.ly"
+\version "1.5.68"
\include "deutsch.ly"
marks = \lyrics {
+\version "1.5.68"
lyr = \lyrics {
\context LyricsVoice = va {
Nu er det søn -- dag,
+\version "1.5.68"
\include "deutsch.ly"
marks = \lyrics {
+\version "1.5.68"
\include "deutsch.ly"
marks = \lyrics {
+\version "1.5.68"
\include "deutsch.ly"
marks = \lyrics {
+\version "1.5.68"
\include "deutsch.ly"
marks = \lyrics {
+\version "1.5.68"
\include "deutsch.ly"
marks = \lyrics {
+\version "1.5.68"
\include "deutsch.ly"
marks = \lyrics {
+\version "1.5.68"
\include "SondagMorgenIntro.ly"
\include "SondagMorgenVers.ly"
\include "SondagMorgenVersVolta1.ly"
+\version "1.5.68"
\include "deutsch.ly"
marks = \lyrics {
+\version "1.5.68"
\include "deutsch.ly"
marks = \lyrics {
+\version "1.5.68"
\include "deutsch.ly"
marks = \lyrics {
+\version "1.5.68"
%% +.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.5.68"
% A simple scale in LilyPond
%
% Type:
+\version "1.5.68"
% Some beamed and slurred notes of different taste in LilyPond
%
% Type:
+\version "1.5.68"
\header {
+\version "1.5.68"
\header {
+\version "1.5.68"
% Test parser error
+\version "1.5.68"
% Test parser error
+\version "1.5.68"
% Test parser error
+\version "1.5.68"
% Test parser error
+\version "1.5.68"
%% +.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.5.68"
\header {
texidoc = "Cautionary accidentals are indicated using either
+\version "1.5.68"
\header {
texidoc = "If two forced accidentals happen at the same time, only one
sharp sign is printed."
+\version "1.5.68"
\header {
texidoc = "Ledger lines are shortened when there are accidentals"
+\version "1.5.68"
\header {
texidoc ="Accidentals are placed as closely as possible.
Accidentals in corresponding octaves are aligned.
+\version "1.5.68"
\header{
texidoc="Simple beams on middle line should be allowed to have a slope."
}
+\version "1.5.68"
\header{
texidoc = "Concave beams should be horizontal. informally spoken,
+\version "1.5.68"
\header {
texidoc = "Cross staff (kneed) beams
don't cause extreme slopes"
+\version "1.5.68"
\header {
texidoc = "French style beaming. In french beaming, the stems do not go to the outer beams."
+\version "1.5.68"
\header {
texidoc=" Funky kneed beams with beamlets also work. The beamlets
+\version "1.5.68"
\header {
texidoc = "Knee beaming. (funky)"
}
+\version "1.5.68"
\header {
+\version "1.5.68"
\header {
texidoc = "Kneed beams (often happens with cross-staff beams)
+\version "1.5.68"
\header {
texidoc = "explicit beams may cross barlines. "
}
+\version "1.5.68"
\header
{
texidoc= "Quarter notes may be beamed: the beam is halted momentarily."
+\version "1.5.68"
\header {
texidoc = "automatic beaming also works in ternary time sigs."
}
+\version "1.5.68"
\header {
texidoc = "beams (simple)"
}
+\version "1.5.68"
\score {
\notes
+\version "1.5.68"
\header {
texidoc =
+\version "1.5.68"
\header {
texidoc = "Oppositely stemmed chords, meshing into each other,
are resolved."
+\version "1.5.68"
\header {
texidoc = "Dots move to the right when a collision with the (up)flag happens"
}
+\version "1.5.68"
\header {texidoc = "Dynamic letters are kerned, and their weight
matches that of the hairpin signs. The dynamic scripts should be
+\version "1.5.68"
\header {
texidoc = "Test figured bass.
+\version "1.5.68"
\header {
texidoc = "Automatic fingering tries to put fingering instructions
+\version "1.5.68"
\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.5.68"
\header
{
texidoc = "The autobeamer is not confusde by grace notes."
+\version "1.5.68"
\header {
texidoc = "Bar line should come before the grace note."
}
+\version "1.5.68"
\header {
texidoc = "Grace notes do tricky things with timing. If a measure
+\version "1.5.68"
\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.5.68"
\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.5.68"
\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.5.68"
\score { \notes \relative c'' {
f1
+\version "1.5.68"
\header {
texidoc = "Another combination of grace note nesting."
}
+\version "1.5.68"
\score
{ \notes {
+\version "1.5.68"
\header {
texidoc = "partcombiner and grace notes can go together"
}
+\version "1.5.68"
\header {
texidoc = "Pieces may begin with grace notes."
}
+\version "1.5.68"
\header {
texidoc = "grace notes in different voices/staves are synchronized."
}
+\version "1.5.68"
\header {
texidoc = "Grace notes and unfolded repeats.
Line breaks may happen before grace notes.
+\version "1.5.68"
\header {
+\version "1.5.68"
\header {
texidoc = "Hara kiri should not upset fixed distance alignment like in pianostaff. In this example the middle staff is harakiried."
}
+\version "1.5.68"
\header{
texidoc =
+\version "1.5.68"
\header {
texidoc = "Lyrics syllables are aligned according to
+\version "1.5.68"
\header {
texidoc = "If NoteCollision has merge-differently-dotted set, note
+\version "1.5.68"
\header{
texidoc="
+\version "1.5.68"
\header {
texidoc = "Note heads are flipped on the stem to prevent collisions.
+\version "1.5.68"
\header {
texidoc = "prefatory spacing
+\version "1.5.68"
\header {
texidoc = "Repeats may be unfolded through the Scheme function @code{unfold-repeats}."
+\version "1.5.68"
\header
{
+\version "1.5.68"
\header {
texidoc = "Rests can have pitches--these will be affected by
+\version "1.5.68"
\header
{
+\version "1.5.68"
\header {
+\version "1.5.68"
\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.5.68"
\header {
texidoc = "Scripts may b4e stacked."
+\version "1.5.68"
\header
{
texidoc ="Slurs may be placed over rest. The slur will avoid colliding with
+\version "1.5.68"
\header {
texidoc="Manual hack for slur and staccato."
}
+\version "1.5.68"
\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 "1.5.68"
\header {
texidoc = "Accidentals in different staffs don't effect the
+\version "1.5.68"
\header {
texidoc = "Accidentals sticking out to the left
+\version "1.5.68"
\header {
texidoc = "Downstem notes following a barline are
printed with some extra space. This is an optical correction similar
+\version "1.5.68"
\header {
texidoc = "clef changes at the start of a line get much more space
+\version "1.5.68"
\header { texidoc = "
A voicelet (a very short voice to get polyphonic chords correct)
+\version "1.5.68"
\header {
texidoc = "A clef can be folded below notes in a different staff, if
this doesn't disrupt the flow of the notes."
+\version "1.5.68"
\header {
texidoc = "A clef can be folded below notes in a different staff, if
+\version "1.5.68"
\header {
texidoc = "Spacing uses the duration of the notes, but disregards
+\version "1.5.68"
\header {
texidoc = "Grace note spacing. Should be tuned? "
}
+\version "1.5.68"
\header {
texidoc = "
+\version "1.5.68"
\header {
texidoc = "For knees, the spacing correction is such that the
stems are put at regular distances.
+\version "1.5.68"
\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.5.68"
\header {
texidoc = "Notes that are shorter than the common shortest note, Get a
+\version "1.5.68"
\header {
texidoc = "Upstem notes before a barline are printed with some extra
+\version "1.5.68"
\header {
texidoc = "For juxtaposed chords with the same direction, a
slight optical correction is used. It is constant, and only works if
+\version "1.5.68"
\header {
texidoc = "Span bars draw only in between staff bar lines, so setting those to transparent shows bar lines between systems only.
"
+\version "1.5.68"
\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.5.68"
\header {
texidoc = "Stanza numbers may differ for the first and following systems."
}
+\version "1.5.68"
\header {
texidoc = "LilyPond correctly determines the size of every
+\version "1.5.68"
\header {
texidoc =
"
+\version "1.5.68"
\header {
texidoc = "Tie engraver uses @code{busyGrobs} to keep track of
+\version "1.5.68"
\header {
texidoc = "Tieing a grace to the to a following grace or main note works."
}
+\version "1.5.68"
\header {
texidoc = "In combination with a beam, the bracket of the tuplet
+\version "1.5.68"
\header {
texidoc="Manual hack for nested tuplets, move outer tuplet up."
}
+\version "1.5.68"
\header {
texidoc = "Horizontal tuplet brackets are shifted vertically
+\version "1.5.68"
\include "sondag-morgen-intro.ly"
\include "sondag-morgen-vers.ly"
\include "sondag-morgen-vers-volta1.ly"
+\version "1.5.68"
\include "deutsch.ly"
marks = \lyrics {
+\version "1.5.68"
lyr = \lyrics {
\context LyricsVoice = va {
Nu er det søn -- dag,
+\version "1.5.68"
\include "deutsch.ly"
marks = \lyrics {
+\version "1.5.68"
\include "deutsch.ly"
marks = \lyrics {
+\version "1.5.68"
\include "deutsch.ly"
marks = \lyrics {
+\version "1.5.68"
\include "deutsch.ly"
marks = \lyrics {
+\version "1.5.68"
\include "deutsch.ly"
marks = \lyrics {
+\version "1.5.68"
\include "deutsch.ly"
marks = \lyrics {
+\version "1.5.68"
\include "sondag-morgen-intro.ly"
\include "sondag-morgen-vers.ly"
\include "sondag-morgen-vers-volta1.ly"
+\version "1.5.68"
\include "deutsch.ly"
marks = \lyrics {
+\version "1.5.68"
\include "deutsch.ly"
marks = \lyrics {
+\version "1.5.68"
\include "deutsch.ly"
marks = \lyrics {
+\version "1.5.68"
\include "paper13.ly"
mu = {}
+\version "1.5.68"
\header {
dedication = "dedication"
title = "Title"
+\version "1.5.68"
\header {
texidoc = "
+\version "1.5.68"
%% +.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.5.68"
\header {
texidoc="Jazz chord names, but with lower case names for minor chords"
}
+\version "1.5.68"
\header {
texidoc= "Using make-music, you can add various stuff to notes. Here
#(define (make-script x)
(let ((m (ly-make-music "Articulation_req")))
- (ly-set-mus-property! m 'articulation-type x)
- (ly-set-mus-property! m 'script x)
+ (ly-set-mus-property!! m 'articulation-type x)
+ (ly-set-mus-property!! m 'script x)
m))
#(define (add-script m x)
(if (equal? (ly-music-name m) "Request_chord")
- (ly-set-mus-property! m 'elements
+ (ly-set-mus-property!! m 'elements
(cons (make-script x)
(ly-get-mus-property m 'elements)))
+\version "1.5.68"
\header {
texidoc = "You can move around Bar_engraver and
+\version "1.5.68"
\header{
texidoc=""
}
+\version "1.5.68"
\header {
+\version "1.5.68"
\header {
texidoc="Blank music paper with clefs"
}
+\version "1.5.68"
\header {
texidoc = "Broken spanners can be adjusted individually, but
;; 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 '(4 . -2))
+ (ly-set-grob-property!! grob 'extra-offset '(4 . -2))
)
))
+\version "1.5.68"
\header{
texidoc = "chord/markup test"
}
+\version "1.5.68"
\header {
title="Chord Taxonomy of LilyPond -- jazz"
}
+\version "1.5.68"
\header{
texidoc="Display the number of systems, or the system number of a
+\version "1.5.68"
\header {
title="Chord Taxomony of LilyPond -- jazz"
subtitle="Amy's chord tests"
+\version "1.5.68"
\header {
texidoc = "Cue notes should be set in smaller type. Cue clefs are
+\version "1.5.68"
#(define (duration-check music)
"Check all rest durations in MUSIC"
+\version "1.5.68"
\header {
texidoc = "Test figured bass.
+\version "1.5.68"
\score{
\notes\relative c'{
[a8 b'' a,, b'']
+\version "1.5.68"
\header {
texidoc="MIDI and midi2ly test file. Diff between this and midi2ly.py (experimental, 1.5.17) should be minimal"
}
+\version "1.5.68"
\header {
texidoc= "Positions of accidentals may be manually set. This
+\version "1.5.68"
\header {
texidoc="Octave duplicate parts of music"
}
+\version "1.5.68"
\header {
texidoc = "Grob extents may be hard coded using grob
+\version "1.5.68"
\header {
texidoc = " a way to generate rhythm exercises with lilypond
+\version "1.5.68"
\header {
texidoc = "Relative placements of different script types can be controlled
by overriding script-priority."
+\version "1.5.68"
\header {
texidoc="You can enter notes and articulations separately, and merge
+\version "1.5.68"
\header {
texidoc="sketch output supported features"
}
+\version "1.5.68"
\header
{
texidoc = "regularSpacingDelta is an experimental feature that
+\version "1.5.68"
\header {
texidoc="Test super/sub, raise and overstrike."
}
+\version "1.5.68"
\header {
texidoc="Document trills, pralls and turns"
title="Marques des agr\\'ements et leur signification"
+\version "1.5.68"
\header {
texidoc = "The standard function unfold-repeats will recursively unfold
+\version "1.5.68"
#(define (voicify-list lst number)
"Make a list of Musics.
(let* ((es (ly-get-mus-property ch 'elements)))
- (ly-set-mus-property! ch 'elements
+ (ly-set-mus-property!! ch 'elements
(voicify-list (split-list es music-separator?) 0))
ch
))
(voicify-chord m)
(begin
(if (pair? es)
- (ly-set-mus-property! m 'elements (map voicify-music es)))
+ (ly-set-mus-property!! m 'elements (map voicify-music es)))
(if (music? e)
- (ly-set-mus-property! m 'element (voicify-music e)))
+ (ly-set-mus-property!! m 'element (voicify-music e)))
m)
+\version "1.5.68"
\score {
\notes\context PianoStaff <
\context Staff = up
+\version "1.5.68"
\score {
\notes\context PianoStaff <
\context Staff = up
+\version "1.5.68"
soprano = \notes \relative c'' {
+\version "1.5.68"
% lines preceded by a percent sign are comments.
\include "paper16.ly"
+\version "1.5.68"
\include "os-music.ly"
\include "paper16.ly"
+\version "1.5.68"
% include file for tutorial
\header {
+\version "1.5.68"
\include "paper16.ly"
+\version "1.5.68"
accompMotif = \notes \relative c {
+\version "1.5.68"
\score {
\notes {
+\version "1.5.68"
\score {
\notes { c'4 e'4 g'4 }
}
int beam_count = get_beam_count (me);
- SCM shorten = me->get_grob_property ("beamed-stem-shorten");
- if (shorten == SCM_EOL)
+ SCM shorten_list = me->get_grob_property ("beamed-stem-shorten");
+ if (shorten_list == SCM_EOL)
return;
- int sz = scm_ilength (shorten);
-
Real staff_space = Staff_symbol_referencer::staff_space (me);
- SCM shorten_elt = scm_list_ref (shorten,
- scm_int2num (beam_count <? (sz - 1)));
+
+ SCM shorten_elt =
+ robust_list_ref (beam_count -1, shorten_list);
Real shorten_f = gh_scm2double (shorten_elt) * staff_space;
/* your similar cute comment here */
line_ = 0;
demerits_ = 0;
}
+
+ void print () const
+ {
+ printf ("prev break %d, line %d, demerits %f\n",
+ prev_break_, line_, demerits_);
+ }
};
+void
+print_break_nodes (Array<Break_node> const & arr)
+{
+ for (int i =0; i < arr.size (); i++)
+ {
+ printf ( "node %d: ", i);
+ arr[i].print ();
+ }
+}
+
/**
This algorithms is adapted from the OSU Tech report on breaking lines.
if (breaks.size () % HAPPY_DOTS_I)
progress_indication (String ("[") + to_string (breaks.size()) + "]");
-
progress_indication ("\n");
Array<int> final_breaks;
break_penalties += gh_scm2double (pen);
}
}
-
-#if 1
/*
Q: do want globally non-cramped lines, or locally equally cramped lines.
*/
- Real demerit = abs (this_one.force_) + 0.1 *abs (prev.force_ - this_one.force_)
+ Real demerit = abs (this_one.force_) + abs (prev.force_ - this_one.force_)
+ break_penalties;
-#else
- Real demerit = abs (this_one.force_) + break_penalties;
-#endif
- if (!this_one.satisfies_constraints_b_)
+ if (!this_one.satisfies_constraints_b_)
{
/*
If it doesn't satisfy constraints, we make this one
SCM grace_prop = me->get_grob_property ("grace");
bool grace_b = to_boolean (grace_prop);
- SCM bml = robust_list_ref ( beam_count ,
+ SCM bml = robust_list_ref ( beam_count - 1,
me->get_grob_property ("beamed-minimum-lengths"));
Real minimum_length = gh_scm2double(bml)*staff_space;
- SCM bl = robust_list_ref ( beam_count ,
+ SCM bl = robust_list_ref ( beam_count - 1,
me->get_grob_property ("beamed-lengths"));
Real stem_length = gh_scm2double(bl) * staff_space;
stem goes to center of beam, hence 0.5
*/
Real beam_lengthen = beam_translation* (beam_count - 1)
- + ((beam_count > 0) ? thick : 0) - 0.5 * thick;
+ + 0.5 * thick;
Real shortest_y = note_start + minimum_length + beam_lengthen;
Real ideal_y = stem_length + note_start + beam_lengthen;
+\version "1.5.68"
%
% Running LilyPond on this file generates the short interface doc
+\version "1.5.68"
startGraceMusic = {
\property Voice.Stem \override #'direction = #1
+\version "1.5.68"
\include "paper11-init.ly"
+\version "1.5.68"
\include "paper13-init.ly"
+\version "1.5.68"
\include "paper16-init.ly"
+\version "1.5.68"
\include "paper20-init.ly"
+\version "1.5.68"
\include "paper23-init.ly"
+\version "1.5.68"
\include "paper26-init.ly"
(before-line-breaking-callback . ,Stem::before_line_breaking)
(molecule-callback . ,Stem::brew_molecule)
(thickness . 1.3)
- (beamed-lengths . (0.0 2.5 2.0 1.5))
+ (beamed-lengths . (2.5 2.0 1.5))
;;
- (beamed-minimum-lengths . (0.0 1.5 1.25 1.0))
+ (beamed-minimum-lengths . (1.5 1.25 1.0))
;; Stems in unnatural (forced) direction should be shortened,
;; according to [Roush & Gourlay]. Their suggestion to knock off