David Kastrup [Tue, 16 Jun 2015 12:14:27 +0000 (14:14 +0200)]
Issue 1375/2: Create Translator_creator class
Previously, translators were created by copying from a context-less
instantiation of the translator containing its documentation. This had
several unpleasant consequences, the most problematic likely being the
inability to register Scheme engravers because their documentation would
be identical to all other Scheme engravers.
A new Translator_creator class takes over the task of creating
Translator instances when called with a context argument.
As a result of joining the mechanisms for Scheme engravers and C++
engravers, ly:translator-name and ly:translator-description are
reimplemented in a manner resembling object properties.
David Kastrup [Fri, 27 Jan 2017 12:27:03 +0000 (13:27 +0100)]
Issue 1375/1: Let Translator constructor take a Context argument
This is the first step towards constructing rather than cloning translators
when creating contexts. On its own, it does not make sense, but the change
is large and mostly mechanical, so keeping it separate from the actually
difficult parts makes sense.
David Nalesnik [Mon, 23 Jan 2017 18:02:27 +0000 (12:02 -0600)]
Let \alterBroken tweak ties again
When tweaking Tie grobs, the music function \alterBroken has
incorrectly rejected them since 2.17.6 as not being spanners.
The method of spanner recognition is at fault: 'span-direction
is not used by TieEvent.
Also, use eqv? instead of eq? for comparison of numbers.
Thomas Morley [Wed, 27 Jul 2016 09:46:55 +0000 (11:46 +0200)]
Issue 4931 make deadNote work with other font-settings
In case the current (text-)font does not contain a cross-glyph,
font-name is set temporary to '(), and font-family to feta.
If feta is replaced with another font without glyphs for cross-style
note-heads, it will still fail, though.
The regtest dead-notes.ly is altered accordingly.
Also, ly-syntax is used where possible.
palmMute and harmonic are not affected by this patch and still
work nicely.
David Nalesnik [Fri, 23 Dec 2016 16:39:12 +0000 (10:39 -0600)]
Restrict spread of symbols in church rests
The spacing of symbols in multi-measure church rests varies with
the measure size. In loose spacing, this can lead to loss of
readability as the symbols are pushed far apart.
This patch introduces the property "max-symbol-separation," which
represents the largest allowed distance between components of a
Kirchenpause. Distance between symbols will vary with measure size
unless the maximum is exceeded.
Setting the property to a small value will effectively create
constant spacing. Using a very large value will permit proportional
spacing regardless of measure length (the previous default behavior).
A default value of 8.0 staff spaces is set to allow flexibility in
shorter measures.
Simon Albrecht [Mon, 9 Jan 2017 02:13:29 +0000 (03:13 +0100)]
NR 1.2.1.d: Split note more appropriately (issue 5027)
Durations which have to be written with ties should be
split at major subdivisions of the measure. The current
example in the NR didn't choose the most recommended way
to do this.
Thomas Morley [Sat, 31 Dec 2016 12:33:24 +0000 (12:33 +0000)]
Let the distance of strings and frets in fret-diagrams be settable
Issue 5025
- Two new sub-properties of fret-diagram-details are introduced:
fret-distance and string-distance
- regtest fret-diagrams-size.ly is extended
- entry in changes.tely
David Kastrup [Sun, 1 Jan 2017 09:14:14 +0000 (10:14 +0100)]
Issue 5024: Rework the Preinit framework into something simpler
The previous introduction of the Preinit class had to work with
uninitialized data members in a state before construction.
Particularly for data structures like vector classes, this
was quite awkward. Moving such structures into a separate
class initialized before the smobifying base class fixes
this deficiency and makes the behavior much more reliable,
at the cost of making the class hierarchy a bit more nested.
Masamichi Hosoda [Fri, 16 Dec 2016 11:57:58 +0000 (20:57 +0900)]
Issue 5013: Fix scripts for environments where "set -ux" carries over
Normally, in Bourne shell scripts,
"set -ux" does not carry over to child processes.
However, under some conditions, it carries over to child processes.
(E.g. environment variable SHELLOPTS exists.)
If "set -ux" in smart-autogen.sh carries over to the child processes,
autoconf fails.
In order to avoid the issue,
this commit makes smart-autogen.sh and smart-configure.sh use
"set +ux" to cancel the effect of "set -ux"
just before invoking the child process.
Likewise, this commit also removes "set -e"
for avoiding "set -e" carrying over, and adds alternative error handling.
Thomas Morley [Thu, 1 Dec 2016 21:38:54 +0000 (22:38 +0100)]
Issue 5003 unfoldRepeats can be restricted to certain repeat-types
It now takes an additional, optional argument.
It's a list of symbols representing the repeat-types which should
be unfolded.
Possible settings are percent, tremolo and volta.
The default is an empty list, for which repeated-music is taken,
unfolding all.
A new regtest is added to cover the new feature.
Changes is extended accordingly.
Also correcting two small typos in Documentation/notation/staff.itely
XML:Fix reg tests that have both lyrics and chords (for example 61e)
As commented in the patch
I did not find any
documentation if a chord
element can contain multiple
lyrics, so I just assumed that
the first note of the chord
contained the Lyrics
(consistant with Finale
and Muscore exports).
David Kastrup [Thu, 17 Nov 2016 19:23:27 +0000 (20:23 +0100)]
Issue 4999: Synchronize \layout and \midi definitions
\midi was ignored when fixes for issues 4302 and 4772 were committed to
\layout . This commit brings the context hierarchy in \midi back in
line with the state in \layout .