Urs Liska [Tue, 21 Feb 2017 11:42:48 +0000 (12:42 +0100)]
5067: Add ly:version? and lexicographic-list-compare?
Squashed commits:
5067: Restrict ly:version? to number list
5067: version-list-compare? rename to lexicographic-list-compare?
5067: version-list-compare? typo
ly:version? and version-list-compare?
A lexicographic list comparison for arbitrary element types,
but with special treatment of trailing elements
(additional elements of the longer list are ignored, which is
typical for version comparisons such as LilyPond 2.19 is equal to 2.19.4)
Simplify lilypond-version operator and create new interface
Add lilypond version predicates/operators
This set of predicates/operators compares a given reference version
to the LilyPond version that is currently being executed.
This makes it possible to implement "version switches" to write
(library) code that is compatible over syntax changes.
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