Graham Percival [Tue, 30 Aug 2011 05:36:35 +0000 (06:36 +0100)]
Merge segfault regtests
We haven't had a release in a month. More to the point, we
haven't had a regtest comparison in a month.
http://code.google.com/p/lilypond/issues/detail?id=1821
is not going away any time soon. It involves complicated stuff in
the build system, which nobody wants to touch.
As a temporary workaround, I will now reduce the number of
regression tests. This commit merges segfault fixes.
Mike Solomon [Mon, 29 Aug 2011 14:29:16 +0000 (16:29 +0200)]
Better pure height approximations of stem tremolos.
Before this patch, stem-tremolo pure heights wer always centered at
the offset of their Y parent (often 0), which means that tremolos
were not being considered correctly in horizontal spacing. This
patch fixes that. The regression test stem-tremolo-note-column.ly
now correctly checks for this - before, it only worked because flags
were combined with stems and created a Y-extent that overshot the
flag ending. Making more accurate flag extents broke this regression
test, and this patch rectifies it.
Tuplet bracket positions were being calculated before beamed stem
positions were set. This patch triggers the setting of stem positions
before the calculation of these brackets.
David Kastrup [Sat, 27 Aug 2011 20:23:44 +0000 (22:23 +0200)]
Make #{ #} accept everything an assignment accepts.
This also makes #{ #} return a void music event, and does not create
sequential music if not necessary.
Mike Solomon [Sat, 27 Aug 2011 14:56:55 +0000 (16:56 +0200)]
Better pure height approximations for stems.
This makes several large changes to the Stem grobs' property list.
The following properties are deleted:
stem-end-position
stem-begin-position
length
Now, the only property that controls these three parameters is
Y-extent.
A new function, stem::length, has been added to allow for common
length overrides (i.e. cross-staff-stems) and is in the regtest
stem-length-override.ly.
Mike Solomon [Sat, 27 Aug 2011 13:13:25 +0000 (15:13 +0200)]
Adds a Flag grob to LilyPond.
This results in more flexibility with the control of flags and their
attachment to stems.
It also results in more accurate skylines for horizontal spacing, which
tightens up certain loose spacing situations, especially ones involving
grace notes that are close in pitch to the notes that follow them.
Note that this patch prolongs a problem with the calculations of flag
widths, which are artificially set at a half stem width skinnier than
they are actually. The same problem existed in the old Stem::width
function by using Stem::flag instead of Stem::get_translated_flag
to determine the width of the stem grob. This can be fixed in one
of several ways, but my recommendation would be to fix it in the
Feta font by adjusting the set_char_box for flags.
Mike Solomon [Thu, 25 Aug 2011 07:32:53 +0000 (09:32 +0200)]
Fixes issue 1628.
Changes the order in which callbacks are chained in the slur engravers,
allowing the correct callback order for articulations that are added
later on in a timestep.
Mike Solomon [Thu, 25 Aug 2011 07:16:51 +0000 (09:16 +0200)]
Fixes issue 1328.
Finds the local minimum or maximum of a Bezier curve along the X
axis in the range of an intersection and shifts intersecting
curves up over this range plus slur padding.
Adds default slur padding to all scripts, as this algorithm makes
them almost just touch with the slur whereas the previous one already
had a bit of padding built into it because it was a generous approximation.
Ian Hulin [Mon, 22 Aug 2011 10:01:13 +0000 (11:01 +0100)]
T1349 - Fix load order for running with Guile V2
1. Split load list into components (init-scheme-files-lib, *-used, *-body
and *-tail, and append them together before doing load.
2. Split markup macros from markup.scm to new file markup-macros.scm
makes upper loop smaller,
bottom crook sticks less,
vertical line is more evenly curved.
Also the upper loop is slightly bigger
in _change version of the clef than
in the regular version, to fit stafflines well.
Lilypond-book: Implement MusicXML support in lilypond-book
This patch adds support for including MusicXML files into
documents processed by lilypond-book. In particular:
-) HTML: <musicxmlfile options>filename.xml</musicxmlfile>
-) TeX: \musicxmlfile[options]{filename.xml}
-) Texinfo: @musicxmlfile[options]{filename.xml}
Since MusicXML is so verbose, it doesn't make much sense to
support inline MusicXML.
The snippets are basically processed like a lilypond file,
except that musicxml2ly is run on them (with the options given
for the snippet) and the returned lilypond code is then processed
as if it were the original contents of the file.
For the output links, however, the html and texinfo pages will
link to the .xml/.mxl file rather than the intermediate .ly file.
If a file has the extension .mxl, it is assumed to be a compressed
MusicXML file (alternatively, the 'compressed' snippet option can
be given).
What's missing is proper documentation in "Usage". I'm unsure
how to document such new snippet types...
Patrick McCarty [Thu, 18 Aug 2011 06:18:46 +0000 (23:18 -0700)]
Guile v2: Set 'show-file-name option correctly.
This fixes a compile issue with Guile v2.
Using the `debug-enable' procedure with non-boolean debug options raises
an error with Guile v2. The internal type for `show-file-name' is
SCM_OPTION_SCM, and this is why we can't use `debug-enable' here.
The fix is to use `debug-set!', passing the unquoted option name and
the value as arguments (as stated in the Guile documentation).
Werner Lemberg [Thu, 18 Aug 2011 06:04:35 +0000 (08:04 +0200)]
[doc] Try to omit leading # if not necessary.
I wonder whether a leading ' should be omitted also, but I think it doesn't
really harm because it's never part of a Scheme expression (unlike to `#f'
or `#t').