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 .
Issue 5000/1: Add checking Ghostscript 9.20+ and Extract PDFmark
This commit adds checking Ghostscript 9.20+ and Extract PDFmark.
They can reduce the disk space required for document building.
They also can reduce the size of generated PDF document files.
Even if they are missing, you can build documents.
Ghostscript 9.20+:
It is necessary for string named destinations.
Ghostscript 9.19 and prior cannot handle them.
http://bugs.ghostscript.com/show_bug.cgi?id=696974
Extract PDFmark:
It is necessary for preserving named destinations and page mode.
https://github.com/trueroad/extractpdfmark
http://www.ctan.org/pkg/extractpdfmark
David Kastrup [Sat, 4 Jun 2016 12:11:31 +0000 (14:11 +0200)]
Issue 4997/2: Use Preinit class in Scheme_engraver
This avoids calls of derived_mark on uninitialized data. Fold
Scheme_engraver::init_from_scheme (SCM) into converting constructor
since it has become identical to it.
David Kastrup [Sat, 4 Jun 2016 12:09:08 +0000 (14:09 +0200)]
Issue 4997/1: Add Preinit class for early initialization
This is a tricky thing: once a base class calls smobify_self () in
its constructor, further allocations during construction of base
class and derived classes might lead to mark_smob calls on the
object under construction. When those call a virtual function like
derived_mark, the virtual function corresponding to the
incompletely initialized object is likely to be called.
This situation is acerbated in Guile 2.0 where the mark passes may occur
with only loose synchronization to the allocations.
The order of initialization of an object consists in calling the
constructors of virtual base classes, then of non-virtual base
classes, then initializing all data members.
As a result, the derived constructor comes too late for
initialization. That's where the Preinit template class comes in.
Derive from it _before_ deriving from the smobifying base class
providing derived_mark, and it will call its Base class' pre_init
function (which must not rely on the instantiation being complete).
The pre_init function should then put the derived class into a state
_before_ its constructor or a constructor of its data members is being
called where it's safe to call its derived_mark function. Note that in
particular that most STL data structures are in undefined state before
their constructor is being called, so the pre_init function has to
establish a state where derived_mark will not attempt to interpret data
members of types like std::vector which may not have been constructed
yet.
Masamichi Hosoda [Fri, 28 Oct 2016 13:53:25 +0000 (22:53 +0900)]
Issue 4991: Add installing optional URW++ fonts
LilyPond default fonts (TeX Gyre) do not have Greek and Cyrillic glyphs.
Newest URW 35 fonts (June 2016) have them.
http://git.ghostscript.com/?p=urw-core35-fonts.git;a=commit;h=79bcdfb34fbce12b592cce389fa7a19da6b5b018
This commit realizes the followings.
. configure script finds the following 12 OTF files.
. If they are found, `make install` installs them.
(Both TeX Gyre and URW fons are installed
under the lilypond fonts directory.)
. Even if they are not found, configure script does not raise error.
(Only TeX Gyre fonts are installed.)