David Nalesnik [Fri, 27 Dec 2013 00:44:52 +0000 (18:44 -0600)]
Improve positioning of tuplet numbers for kneed beams.
In the past LilyPond always placed tuplet numbers according to the
position of a bracket, though this bracket may or may not have actually
been drawn. This system led at times to tuplet numbers which appeared
stranded when there was a kneed beam and no visible bracket.
This patch positions the tuplet number independently of brackets and
close to the beam when the the bracket is not drawn, the beam is kneed, and
there is an appropriate beam segment to place the number against.
The side of the beam on which the number is placed is chosen by principles
derived from Gould. The number is centered horizontally on the beam.
Collision detection is also introduced. The number will be offset
horizontally if it is too close to an adjoining note column. All shifts
preserve the number's vertical distance from the beam. If the number is
too large to fit in the available horizontal space (between note columns
to either side), we use the old bracket-based positioning system. In the
event of a collision with an accidental, the tuplet number is moved
vertically, away from the beam.
The older behavior is always available through an override of the property
`knee-to-beam' which is introduced by this patch, and set by default to true.
This patch also adds a header file, `tuplet-number.hh', and provides
a number of regression tests illustrating various features.
David Kastrup [Sat, 8 Feb 2014 18:05:16 +0000 (19:05 +0100)]
Issue 3827: remove the necessity to have a \layout block in a \markup \score ...
It turns out that this is not really fixable in the backend since what
is called "layout" in the markup function definitions does not
actually correspond to \layout but rather to \paper. Very funny.
So this is solved in the parser itself when reading a \score or
\score-lines to be used in a markup or markup list by cloning
$defaultlayout as necessary (which simulates \layout {}) whenever the
score is without an output definition.
James Lowe [Tue, 4 Feb 2014 22:06:43 +0000 (22:06 +0000)]
Web:Reworded UNIX Download page more strongly not to use distro-based packages
Issue 3829
Reworded 'Generic Packages or ....' section more 'strongly' to get
users to _not_ use distribution-specific packages but to use
the generic packages from lilypond.org.
Removed the 'Distribution-specific' Packages section completely.
Added some '32bit/64bit' labels for the generic package download links
Devon Schudy [Sun, 19 Jan 2014 04:41:28 +0000 (23:41 -0500)]
More consistent performance of breath marks. (issue 3821)
After tied notes, breaths take time only from the last note of the tie, so
e.g. { c4 ~ c8 \breathe } performs as { c4 ~ c16 r }, not { c4 r8 }.
This is consistent with articulations, and with how humans interpret
breaths after ties. This makes it possible to align simultaneous
breaths in multiple parts with different note lengths.
Ignore grace time when calculating the length of the note before a breath —
subsequent grace notes take time from the breath, not the previous note.
David Kastrup [Mon, 27 Jan 2014 11:57:43 +0000 (12:57 +0100)]
Issue 3826: Stop scripts/auxiliar/update-with-convert-ly.sh from doing a full make
It is quite a nuisance for writing convert-ly rules that
scripts/auxiliar/update-with-convert-ly runs a full make since any
partly successful run of update-with-convert-ly will cause large
delays. It also leads to a paradoxical situation when the syntax of
some files needs to be converted _before_ a full make has a chance to
succeed.
So this patch reduces the preliminary make to "make pythonmodules"
which should be sufficient for updating from convertrules.py changes.
Paul Morris [Tue, 21 Jan 2014 02:00:05 +0000 (21:00 -0500)]
stencil.scm: minor edits, doc strings, comments
Use two spaces after full stops in doc strings.
Restore some comments to new make-connected-path-stencil code.
One small code style edit to follow style of previous code.
Paul Morris [Sat, 18 Jan 2014 03:53:26 +0000 (22:53 -0500)]
stencil.scm: add make-path-stencil function
supports all path commands both relative and absolute:
lineto, rlineto, curveto, rcurveto, moveto, rmoveto, closepath
also supports single letter syntax used in standard SVG path commands:
L, l, C, c, M, m, Z, z.
refactored make-connected-path-stencil for backwards compatibility and
continued use
David Kastrup [Thu, 16 Jan 2014 10:25:23 +0000 (11:25 +0100)]
Issue 3815: Parser: harmonize \lyricsto and \addlyrics arguments
Previously, they allowed arbitrary music but since that required looking
at lookahead tokens in the wrong mode, it led to strange errors like with
lyr=\lyricsto A { }
mus={c}
when mus= was parsed as a single token in lyrics mode. Now both \addlyrics
and \lyricsto accept merely the same kind of delimited argument list
that \lyrics or \chords accept. Additionally, to preserve compatibility
to a lot of examples, music identifiers like \mus are permitted as the
argument to \lyricsto and \addlyrics.
Since this requires a change in existing uses, this includes a
convert-ly rule that removes redundant uses of \lyricmode and
rearranges the combination with context starters such that \lyricsto
in general is applied last, like \lyricmode would be.
David Kastrup [Sat, 11 Jan 2014 13:08:55 +0000 (14:08 +0100)]
Issue 3797: Music_wrapper_iterator does not follow original context setting of child
We do this by making Music_iterator::get_handle and
Music_iterator::set_context virtual and letting Music_wrapper_iterator
redirect them to the child iterator.
\score {
<<
{ { a4 a b b } a a b b }
{ \absolute { a4 a b b } a a b b }
>>
}
splits off a new Staff after \absolute { a4 a b b }.
Carl Peterson [Mon, 23 Dec 2013 22:04:13 +0000 (17:04 -0500)]
Cleanup of ugly MI and SOL shaped noteheads
1. Reducing width of MI notehead, for both "regular" (Aiken, etc.)
and "small" (Funk/Walker) heads. When Funk/Walker heads were
introduced, a special width variable was introduced to both
sets and the mi heads were made wider than the other noteheads.
This does not seem to be the practice of available examples
(Sacred Harp, Southern Harmony books, etc.) and causes issues
with alignment, particularly with stems up, and is visually odd.
The variables have been removed from the metafont code, making
the MI noteheads the same width as the other shaped notes in
their respective sets.
2. Changing the SOL notehead to more closely match the normal round
notehead (as advertised in the mf code). The previous code uses
the shape of the open (half note) notehead, which is visually
unappealing. The open notehead has been defined so that it
matches visually with both the normal Aiken/Sacred Harp heads,
as well as the thin variants (in keeping with observed practice,
which uses the regular open roundhead even when thin variants
are used).
Urs Liska [Tue, 7 Jan 2014 11:51:02 +0000 (12:51 +0100)]
Issue 3785:Web:Background: Reword intr. paragraph
I've always found this page confusing because I didn't understand
why there is this "placeholder" page.
This commit addresses this by making the "manual" issue explicit.
Additionally I consider it more useful to _first_ tell the reader
what it is and _then_ advise him to skip the essay instead of
_immediately_ telling him "Probably you won't want to read this".
If it is necessary to have the link at the end of a paragraph
(and not only of a sentence) I'd simply insert a new paragraph
after the link.
Urs Liska [Tue, 7 Jan 2014 11:30:54 +0000 (12:30 +0100)]
Issue 3785: Web:Productions: Add title box
As stated in https://codereview.appspot.com/48450044/
I think the Introduction pages should have a title box
giving the user a first idea about the page.
In this case the visitor (currently) would reach the page,
doesn't see a heading and is faced two boxes,
"Concerts" and "Published sheet music" without further introduction.
Urs Liska [Tue, 7 Jan 2014 11:18:35 +0000 (12:18 +0100)]
Issue 3785: Web:Examples: Enclose in box
I think the pages below Introduction (and probably Community too)
should consistently start with a box and a subheading,
because there is no eye-catching page heading.
This is _one_ option to do that for the Examples page.
Others would be:
- Make that @div only enclose the introductory paragraph
- enclose the introductory paragraph _and_
- add a headingless div around the examples _or_
- add a div with @subheading "Gallery"
James Lowe [Sun, 5 Jan 2014 18:10:04 +0000 (18:10 +0000)]
Doc: NR Tidy up of Midi 3.5.x sections
General tidy up for consistent line breaks and
@seealso sections plus other minor Doc CG Guidelines
No information has been changed (added or deleted).
This patch is in preparation for another tracker issue (#2877) where
some information will be moved around and information from
some sections in 3.5.x merged/deleted/improved.
Trevor Daniels [Sat, 11 Jan 2014 15:10:32 +0000 (15:10 +0000)]
Issue 3796: Doc: Bump version number
The version number of this file should have been increased
to 2.18.0 when patch 22ea3eb6b78a50784ae02c3f29060e1c093262a4
for Issue 3720 was applied to prevent inappropriate conversions
being made by convert-ly.
Devon Schudy [Sat, 21 Dec 2013 03:55:51 +0000 (22:55 -0500)]
Tremolo cleanup. (issue 3745)
Scale durations when iterating, not in make-repeat. This means the original
repeat body is intact, so unfold-repeats and display methods no longer need
to undo the scaling.
Build tremolo spanners in Scheme, not C++.
Calculate tremolo-type in tremolo::get-music-list rather than storing it as a property.
shift-duration-log now clears the cached length, since it changes the length.
\shiftDurations no longer duplicates shift-duration-log.
David Kastrup [Wed, 1 Jan 2014 23:57:15 +0000 (00:57 +0100)]
Issue 3769: Lexer/Parser: Don't package location data in SCM_TOKEN semantic value
As the location data is available as the location value in the parser
anyway, there is no point in packaging it into the semantic value.
Among other things, this leads to a cleaner display when using
-ddebug-parser, and to better understandable code.