Fix issues 75 and 1256: Allow multiple concurrent slurs
Rewrite the Slur_engraver and the Phrasing_slur_engraver to support
multiple concurrent slurs. The default lilypond syntax using parentheses
still supports only one slur at a time, but by adding a spanner-id property
to the (Phrasing)SlurEvent music expression, one can create multiple
concurrent slurs, each with a different spanner-id.
This finally allows appoggiaturas and acciaccaturas (which both create a
slur from the grace note the the next note) to be placed inside a slur.
If we observe a new slur start while a slur is already present, we now
totally ignore the new slur event, so it does not influence the appearance
of the existing slur (bug 1256)
Neil Puttock [Thu, 7 Jul 2011 19:10:20 +0000 (20:10 +0100)]
Add display method for \tweak.
* input/regression/display-lily-tests.ly:
add tests for \tweak
* scm/define-music-display-methods.scm
(scheme-expr->lily-string): don't funnel booleans through pretty-print
(EventChord): treat simple_element with 'tweaks list as note_chord_element
to preserve < > around tweaked note
* scm/display-lily.scm (music->lily-string):
process 'tweaks via new function tweaks->lily-string
Joe Neeman [Fri, 27 May 2011 15:57:16 +0000 (18:57 +0300)]
Emit not-quite-cross-staff beams in the right context.
This is related to 1043 and possibly other bugs. Previously,
if a staff change happened immediately after the termination of
an auto-engraved cross-staff beam, then the beam was parented
to the wrong staff. Now, every beam is parented to the context
in which it began.
When notes overlap on the same pitch on the same MIDI channel,
re-arrange the note-off events for MIDI players that cannot handle
overlap, but if midiMergeUnisons = #t, merge such notes.
Janek Warchol [Sun, 12 Jun 2011 10:41:44 +0000 (12:41 +0200)]
doc: changing example for overriding positions
example in LM 4.5.2 (fixing beam collision)
is outdated because beam collision has been
implemented, so there is nothing to fix.
Therefore I change the type of collision
to beam-tie collision.
James Lowe [Mon, 6 Jun 2011 16:38:52 +0000 (17:38 +0100)]
Doc: Added \cueClef command
Added usage of \cueClef and \cueClefUnset commands.
Added some @cindex and @funindex entries
Moved the small section for cueVoice to the top and updated the first two examples
to be more in keeping with the preceding examples added for
\cueDuringWithCleff.
Added new @lilyponds showing how to use \cueClef with CueVoice
Mike Solomon [Thu, 12 May 2011 23:28:24 +0000 (19:28 -0400)]
Fixes the assert problem caused by ledger line spanners.
This fix makes it such that ledger lines are not printed when
there is a no-line staff symbol. This makes sense, as a note
cannot be above or below the staff if the staff does not exist,
which means that ledger lines should not be used.
James Lowe [Tue, 26 Apr 2011 21:39:28 +0000 (22:39 +0100)]
Doc: Adjusted CG Policy on @lilypond[] variables
As a reuslt of work on NR 3.2 Titles and Headers, it was necessary to
define some more explicit requirements for using the variables in the
@lilypond[ ... ] construct. Ssuch as removing staffsize
and page sizes within the actual @lilypond example which only add more noise
to the examples.
Also when the need to show taglines and/or page breaks and footers is required then
\book is needed in the example and this will result in unnecessary white space between top and bottom
of the page. So showing page breaking features or numbering examples becomes
problematic within the documentation.
The new @lilypond[papersize=X] variable allows for explicit page sizing without
the need to include it in the example itself. Allowing for better clarity.
The papersize=X takes variables from the scm/paper.scm else 'a4' is presumed.
Moved existing material to the front of this section so that it makes more sense
and added the new requirements for the various preferred variables.
Allow for spaces in ttf font glyph names. Fixes #1562.
Apparently, the Verdana.ttf font that comes with Windows 7 SP1
has glyphs 571 and 571 using names "glyph 571" and "glyph 572", i.e.,
their glyph names contain spaces. This breaks the PostScript output.
Thanks to Chris Lidell and James Lowe for their help to nail this
bug.
Keith OHara [Tue, 24 May 2011 01:49:23 +0000 (18:49 -0700)]
Loose lines honor padding between systems
When placing a loose line (e.g. Lyrics) at the top or bottom of a
system, include as a constraint the padding to the neighboring
system or markup. Fix 1654.
Trevor Daniels [Thu, 12 May 2011 08:39:31 +0000 (09:39 +0100)]
Fix calculation of vertical offset when 'staff-padding is set
- fix 877: Ottava clefs may not look good
- the previous code incorrectly calculated the offset from
the staff rather than the parent; this happened to coincide
with the correct value for most parents but gave an incorrect
offset for OctavateEight above the F-clef