Name "OctavateEight" didn't make any sense. The grob doesn't have
to be an eight, and it doesn't describe octavation, but arbitrary
transposition (not only whole octaves). Also, the name should reflect
its affiliation with Clef grob.
The name "ClefTransposition" was also considered, but it was decided
that it would be too confusing together with clefTransposition, which
is a context property.
Mike Solomon [Wed, 8 May 2013 05:44:06 +0000 (07:44 +0200)]
Laissez-vibrer ties attached to notes with cross-staff stems are cross-staff (issue 1296)
This moves towards a model of cross staff where cross staff is defined as
"Any grob that is either not an element of a vertical axis group or whose
relative extent with respect to the vertical axis group of which it is an
element changes as a result of how far apart two or more vertical axis
groups are spaced."
The practical ramifications of this patch are that less programming errors
are triggered and there is less chance that early vertical alignment will
occur.
David Kastrup [Tue, 23 Apr 2013 06:21:30 +0000 (08:21 +0200)]
More options to make-regtest-pngs.sh, use GNU parallel for faster conversion
Also rearranges the options slightly. -p is now used for GNU parallel
instead of rendering PDFs via Cairo which is now done with -c. The
whole kaboodle is now:
Make PNG files from regtests
Usage: ./make-regtest-pngs.sh -j CPUs -o/-n
where -j specifies the number of parallel processes to run
(normally CPUs+1). e.g.:
./make-regtest-pngs.sh -j9
-p uses GNU parallel with the given job count in order to also
parallelize the conversion of PDF files to bitmaps when using -g
or -d. No attempt is made to parallelize the bitmap comparisons
since their memory requirements may be prohibitive.
-o means build an old regtest set - the PNGs go in the old-regtest-results
directory
-n means build a new regtest set - the PNGs go in the new-regtest-results
directory
-c uses PDF and the poppler library via pdftocairo for generating
bitmaps, simulating the output for Evince and other previewers
using poppler. pdftocairo may be contained in the poppler-utils
package.
-r can be used for specifying a rendering resolution. This
defaults to 101 for poppler and 300 for Ghostscript from PDF.
-g uses Ghostscript for rendering a bitmap version from the PDF,
simulating the output from printing PDF files on a GNU system, so
use a resolution appropriate for print. Antialiasing is not enabled.
-d changes the Ghostscript device used for creating PNG files
(usually png16m for direct PNG creation and pngmono for printer simulation)
Keith OHara [Thu, 28 Mar 2013 07:13:57 +0000 (00:13 -0700)]
Tempo and Rehearsal marks horizontal positioning; issue 3279
Space tempo/rehearsal marks so they do not overlap each other.
Do not use side-position interface for their initial vertical position,
because they are moved to the top-most staff after line-breaking.
In the LM, the word "tweaks" is used both generically, meaning
"modifying LilyPond's action", and specifically to refer to the
\tweak command. The old section heading used the word in the former
sense, but this was confusing as the section dealt exclusively
with \override commands.
"@var{grob} callback generator for inheriting a @var{property} from
an @var{axis} parent, defaulting to @var{default} if there is no
parent or the parent has no setting."
Julien Rioux [Wed, 23 Jan 2013 23:21:22 +0000 (18:21 -0500)]
lilypond-book: Textwidth detection with included file (issue 3136).
Fix the automatic textwidth detection performed by lilypond-book.
This failed for lytex files that include an external file in the
preamble, when such file was compiled in an --output directory
different from the working directory, because then the included
file was missing. We use TEXINPUTS to let the latex process know
where to look for input files.
David Kastrup [Sat, 20 Apr 2013 10:29:31 +0000 (12:29 +0200)]
Add additional options grdp to scripts/auxiliar/make-regtest-pngs.sh
This is for checking bitmap production at different resolution, the
output from using poppler and libcairo on LilyPond's PDF, and the
output for typical print bitmaps generated from LilyPond's PDF.
Mike Solomon [Thu, 18 Apr 2013 04:19:50 +0000 (06:19 +0200)]
Adds arpeggio to conditional item grob array.
The actual function of conditional elements was not correctly reflected
in the comment above Separation_item::boxes. This comment led one to believe
that conditional elements were only used when notes with accidentals
had ties coming to them. This is not true. Conditional elements are always
used for right columns when there is something to the left (see
Spacing_interface::skylines). They are omitted _only_ when they are
accidentals with ties coming to them.
So why do we want an arpeggio to be a conditional element? There is
nothing conditional about it (it will always be printed, unlike accidentals
with ties going to them). It is because conditional elements have the
double duty of being conditional (i.e. accidentals) AND being factored
into springs in note spacing (see the long comment in
Note_spacing::get_spacing) in the calculation of a spring's ideal distance.
Other elements to the left of a note column, like scripts and fingerings,
are only factored into the minimum distance. We want arpeggios to factor
into the ideal distance because otherwise they will be too close to
left note-columns in tight spacing situations.
Lastly, there was no reason in the code base to keep a pointer to the
arpeggio in the note column, so it is removed here.
1) tempo should be written using \tempo, not as a text
attached to notes (because TextScript has wrong font
and alignment for a tempo mark)
2) upper and lower voices should use \voiceXXX commands,
to make sure that all elements havee their directions set
properly (here, dots in lower voice were incorrectly up)
David Kastrup [Tue, 2 Apr 2013 13:22:13 +0000 (15:22 +0200)]
Issue 3291: Carry any exports from session initialization over to subsequent sessions
When a .ly file in the session initialization loaded a module, this
module's exports were only available in the first session on the
command line. This patch causes any modules available after first
session initialization to be available in subsequent sessions.
David Kastrup [Thu, 4 Apr 2013 09:12:38 +0000 (11:12 +0200)]
Issue 3296: Move Tweak_engraver to Score level
This makes it possible to tweak items announced at Score level, like
MetronomeMark and RehearsalMark.
The advantage is that tweaks will be applied once regardless of the
context structure (the Score context should exist only once).
Due to the hierarchical nature of acknowledgers, acknowledgers in
lower contexts will now get to see the grobs before tweaks have been
applied. However, grobs are still unfinished (except for type,
properties initialized via context properties and cause) at the time
they are announced, with other details only getting filled in by the
engraver after announcement, so the potential for trouble seems low.
Acknowledgers should usually just register a grob (or write grob data)
with any actual reading of grob data occurring at the end of the
timestep instead.
Mike Solomon [Sat, 6 Apr 2013 08:03:44 +0000 (10:03 +0200)]
Hairpin minimum-length has not effect at end of line; issue 2785.
Fixes the springs and rods callback so that broken left items and
center items are used as potential bounds of spanners, which allows
both cases to be considered in the simple spacer when scoring line breaking
configurations.
Mike Solomon [Sat, 6 Apr 2013 07:54:58 +0000 (09:54 +0200)]
Break slurs between alternative endings in repeats; issue 1698.
Create new event-types BreakPhrasingSlurEvent BreakSlurEvent,
and a music-function \free so that users can create them.
Create these event-types in the volta-repeat-iterator to break
slurs between alternatives in a \repeat volta structure.