John Gourlay [Thu, 23 Jun 2016 19:49:25 +0000 (15:49 -0400)]
Reimplement issue 4781 for musicxml2ly more literally. Reimplementation
was necessary as part of the implementation of issue 4751, but some of
the code changes for 4781 were omitted. This reproduces all the 4781 changes.
David Kastrup [Sat, 2 Jul 2016 08:08:42 +0000 (10:08 +0200)]
Issue 4912: Fix output definition use in \book and \bookpart
The only explicit output definition blocks allowed in \book and
\bookpart blocks were paper blocks. Output definitions supplied with
Scheme expressions were erroneously interpreted like global output
definitions, accepting all output definition types and overriding the
global defaults with them.
Now the only output definitions accepted as Scheme expressions are
paper blocks. As opposed to previously, they actually set the paper
block of the respective book or bookpart.
Masamichi Hosoda [Sun, 26 Jun 2016 03:15:33 +0000 (12:15 +0900)]
Issue 4876/5: Add direct parsing CFF for getting Postscript font name
FreeType 2.6 and 2.6.1 cannot get PS name from pure-CFF.
(FreeType 2.5.5 and earlier does not have this issue.
FreeType 2.6.2+ has this bug fixed.)
So we need direct parsing of the 'CFF' table, in this case.
Masamichi Hosoda [Sat, 25 Jun 2016 01:52:44 +0000 (10:52 +0900)]
Issue 4876/1: Add fontname replacing function for CFF (OTF/OTC) fonts
For CFF (OTF/OTC) fonts,
FT_Get_Postscript_Name ()
in FreeType 2.6+ gets the name in 'name' table.
However, we want the name in 'CFF' table instead of in 'name' table
because output postscript file is embedded only 'CFF' table of the font.
They are inconsistent for some OpenType/CFF Collection fonts (OTC).
This function can get the name in 'CFF' table.
TODO: Check conflicts between fonts which have same name in 'CFF' table
but different name in 'name' table.
Masamichi Hosoda [Sun, 19 Jun 2016 12:54:46 +0000 (21:54 +0900)]
Issue 4902/2: Improve `-dgs-load-fonts` option for TTF
`-dgs-load-fonts` loads fonts via Ghostscript.
However, if a TrueType font (TTF)
that does not have glyph names is loaded via Ghostscript,
all characters are shown in TOFU.
This commit lets `-dgs-load-fonts` loads those fonts
in a way that is not via Ghostscript.
Masamichi Hosoda [Sun, 19 Jun 2016 02:59:45 +0000 (11:59 +0900)]
Issue 4901: Improve `-dgs-load-fonts` option for OTC fonts
`-dgs-load-fonts` loads fonts via Ghostscript.
However, Ghostscript could not load
OpenType/CFF Collection (OTC) fonts by this way.
http://bugs.ghostscript.com/show_bug.cgi?id=696808
This commit lets `-dgs-load-fonts` loads the OTC fonts
in a way that is not via Ghostscript.
Masamichi Hosoda [Sat, 18 Jun 2016 13:49:44 +0000 (22:49 +0900)]
Issue 4900: Improve `-dgs-load-fonts` option for non-zero font-index
`-dgs-load-fonts` loads fonts via Ghostscript.
However, it could not load the font that has non-zero font-index.
This commit lets it loads the font
in a way that is not via Ghostscript.
David Kastrup [Sat, 25 Jun 2016 21:01:25 +0000 (23:01 +0200)]
Don't overload Slur_engraver::listen_slur
Having two overloaded variants of Slur_engraver::listen_slur leads to
problems with ADD_LISTENER template resolution at least in some versions
of g++. So the two-argument version is renamed to listen_note_slur.
David Kastrup [Mon, 20 Jun 2016 21:48:14 +0000 (23:48 +0200)]
Issue 4903/4: Fold Slur_proto_engraver into Slur_engraver
A symmetrical common base class to both Slur_engraver and
Phrasing_slur_engraver seems like an unnecessary complication. Instead,
Phrasing_slur_engraver can just be derived from Slur_engraver .
David Kastrup [Thu, 16 Jun 2016 17:52:01 +0000 (19:52 +0200)]
Issue 4897: Allow multiple \with per context creation
This allows using more than one \with context modification in
connection with \new, \context, \addlyrics, \drums, \lyrics, \chords,
\figures . While combining them inside of a single \with {...} is
possible, sometimes it may be inconvenient.
David Kastrup [Sat, 18 Jun 2016 08:13:10 +0000 (10:13 +0200)]
Issue 4899/4: Listeners should not be virtual
Gregorian_ligature_engraver::listen_pes_or_flexa and
Ligature_engraver::listen_pes_or_flexa were accidentally
declared virtual, but their registration already caters
for what amounts to virtual overrides in effect.
Thomas Morley [Tue, 14 Jun 2016 19:11:16 +0000 (21:11 +0200)]
Issue 4895 Give SystemStartSquare a default of 5.0 for collapse-height
This ensures same behaviour of SystemStartSquare while using
RemoveEmptyStaves as SystemStartBar, SystemStartBrace and
SystemStartBracket. The latter ones already have this default.
David Kastrup [Tue, 14 Jun 2016 18:41:13 +0000 (20:41 +0200)]
Issue 4894: Remove unescaped @funindex entries
With adjacent @funindex entries of which one differs from the other
only by the absence of a preceding backslash, the one without the
preceding backslash is removed. This is done by using the script:
Thomas Morley [Sun, 5 Jun 2016 15:19:57 +0000 (17:19 +0200)]
Issue 4883 Implement public definition of bar-line::draw-filled-box
bar-line::draw-filled-box calls the hereby renamed procedure
bar-line::calc-blot to determine the blot diameter.
It will be used in:
make-simple-bar-line
make-thick-bar-line
make-tick-bar-line
This simplifies user-customized bar-lines, which are build with
ly:round-filled-box.
No need to copy/paste the blot-calculating procedure anymore.
Masamichi Hosoda [Sun, 12 Jun 2016 10:55:51 +0000 (19:55 +0900)]
Issue 4866/2: Remove the settings that ignore some major OTC fonts
LilyPond becomes possible to handle
OpenType/CFF Collection (OTC) fonts.
So this commit removes the settings
that ignore some major OTC fonts.
OTC fonts can be used.
The comment for it complains about copy&paste code, but the
actual code for Beam_engraver::listen_beam has evolved since
then and the changes, while seeming appropriate for the
Grace_beam_engraver as well, have not been copied over.
Deleting the listener callback and instead utilizing
the one from the base class Beam_engraver seems like
the sanest course of action.
David Kastrup [Wed, 1 Jun 2016 12:43:38 +0000 (14:43 +0200)]
Issue 4789: Note_performer: articulate events
Previously, only per-note articulations rather than actual stream events
were interpreted in Midi. This change supports articulations on chords
or added via simultaneous music.