Neil Puttock [Wed, 20 Jul 2011 14:49:45 +0000 (15:49 +0100)]
Fix #1695: Clef change placed outside score.
A MetronomeMark represents a special case for a break-alignable grob, since
sometimes it will be aligned on noteheads rather than prefatory material. In
this case, we don't want it to be acknowledged by the Break_align_engraver,
since it will hijack the X-parent before the Metronome_engraver can set it at
the end of the timestep. This causes the Paper_column_engraver to add the
MetronomeMark to the 'elements list of a NonMusicalPaperColumn. If this paper
column is loose, its X-extent calculation will be incorrect, since it includes
the extent of the MetronomeMark whose refpoint is different (a System).
This results in the column being translated away from the MetronomeMark into the
left margin.
This patch fixes issue 1695 by removing the default setting for 'non-musical and
setting it dynamically in the Metronome_engraver. Note that this isn't
sufficient in itself since `non-musical' checks use Item::non_musical (), which
recursively checks parents; in the case where a MetronomeMark is effectively
musical (i.e., aligned on a notehead, and parented by a PaperColumn), we also
need to return from the Break_align_engraver without potentially creating a
new BreakAlignment and setting the temporary X-parent.
Mike Solomon [Thu, 14 Jul 2011 20:02:49 +0000 (22:02 +0200)]
Institutes property checks for non-event context property settings.
This fixes issue 1734 in addition to any potential incorrect settings
of properties in the layout block. While this entails a property check
for all property settings in the ly/ folder, the time this takes is
negligible.
fix 750: No warning for non-found voice in lyrics combine when lyrics are empty
Use a bool flag to store whether the Lyrics context was ever really created
(i.e. one moment was processed). If that's not the case, then the lyrics
are empty, and we shouldn't print any warning about non-existing voices
(since we never even tried to find an appropriate voice; and we also don't
need one anyway).
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.