Issue 4734: Add lilypond-book can use XeTeX backend for auto-detect
lilypond-book uses TeX engine for auto-detect default settings.
In the case of using XeTeX , the detection did not work.
When there is no glyphs, pdfTeX creates PDF.
However, XeTeX does not create PDF.
Threfore, the detection is failed.
If the documents were built by XeTeX,
XeTeX couldn't find picture/pdf/*.pdf for building essay.pdf.
This commit creates symlink to solve the problem.
In the case of pdfTeX, it does not affect.
Do not output CC#7 events in MIDI on dynamic changes
As volume changes for MIDI are encoded as note velocities, it is not
necessary to add "silent" Audio_dynamic elements to Audio_staffs to
be processed by Midi_walker. (Every "silent" Audio_dynamic event
will only get converted to a Midi_dynamic event outputted as a CC#7
event with fixed volume 100 in MIDI, see Midi_dynamic::to_string.
This behavior is not consistent with the handling of other MIDI
controls on which LilyPond will not enforce any "default" values.)
As Staff_performer::get_audio_staff has the side effect of creating
a new Audio_staff for a voice if it does not yet exist, accessing the
current voice's associated Audio_staff was moved before the handling
of Audio_dynamic elements.
Based on the revision history, not emitting any CC#7 events in MIDI
appears to have been the original intention when encoding dynamic
changes as note velocities (93b7a6ff072d73dcdd41da59cd18da8aa8d8e8cb),
but apparently the initial implementation (of passing "silent"
Audio_dynamic events to Midi_walker, and ignoring them only at the
output stage) caused problems with MIDI timing (#1593), possibly
because skipping these events only just before outputting them might
have interfered with the logic for tracking the delta times between
the MIDI events that would be actually outputted. To fix #1593,
commit f114e3c33f9c37c39c7a3fedf66ca5a074785118 conservatively
restored the emission of CC#7 events in MIDI.
The current commit tries to avoid the issues with MIDI timing by
pruning all Audio_dynamic events already from the input given to
Midi_walker, so that Midi_walker sees no events, the skipping of
which would confuse the measurement of delta times at the output
stage.
Simon Albrecht [Mon, 11 Jan 2016 17:40:42 +0000 (17:40 +0000)]
Doc: LM 2.4.1 and NR 3.3.2 additions and corrections
Issue 4721
NR 3.3.2: nitpicks in lily
example; add a missing space;
better code formatting with
\partcombine remove
printPartCombineTexts setting.
Issue 4717
LM 2.4.1: Replace incorrect
naming rule in LM. This
replaces the incorrect rule
about naming variables with a
simple reference to the
'alphabetic-only' _convention_.
A thorough explanation in the
NR remains to be done.
Phil Holmes [Wed, 6 Jan 2016 16:09:50 +0000 (16:09 +0000)]
Document all outside-staff-priority values and neaten table
Follows on from a question on -user.
There aren't that many values
of outside-staff-priority, so it
seems easiest to list them all if
we're going to list most. The
adjustments to the column widths
get rid of unnecessary line wrapping.
Simon Albrecht [Mon, 4 Jan 2016 12:08:05 +0000 (12:08 +0000)]
Store accidental styles in an alist
This rewrites the way how accidental styles
are stored and accessed.
Previously the two were
mangled in the set-accidental-style
procedure so that adding custom styles
required complete redefinition of
this procedure and copying all the
existing definitions. Now, the actual
specifications of accidental styles
are stored in the 'accidental-styles'
alist, and the set-accidentals-properties
and set-accidental-style procedures
have been replaced by a single procedure,
which reads from that alist and
sets the context properties accordingly.
Thomas Morley [Sun, 27 Dec 2015 21:33:12 +0000 (22:33 +0100)]
Issue 4716 Improve note-by-number to deal better with flag-styles
- Per default every ancient note-head will get a mensural-style-flag.
- overriding flag-style will now always work with supported styles:
default, straight- and flat-flags and (neo-)mensural-flags
Masamichi Hosoda [Thu, 24 Dec 2015 15:11:28 +0000 (00:11 +0900)]
Issue 4713/2: Change texi2html option order
To overwrite texi2html default i18n messages with the LilyPond init file,
delete TEXI2HTML_INIT that exists before TEXI2HTML_LANG.
And, add languages minimum initialization before TEXI2HTML_LANG
instead of TEXI2HTML_INIT.
Greg Swinford [Fri, 1 Jan 2016 13:11:35 +0000 (13:11 +0000)]
Doc: LM Single staff Templates - addversion remove
Remove [addversion] from two
snippets that use it. Other
LM templates don't seem to i
nclude \version statements and
[addversion] is adding some
messy extra whitespace in
HTML output.
Urs Liska [Wed, 23 Dec 2015 21:07:22 +0000 (22:07 +0100)]
4704: Improve beam subdivision beaming count
Calculates the remaining length of a beam.
If this is shorter than the regular value at the
subdivision point more beams are used.
(Example: subdivision at 1/8 -> one beam left.
Remaing notes on the beam: 3/32 -> two beams left.)
However, if only one stem is left after the subdivision
this isn't applied in order to have a visual separation.
In this case the default subdivision beam count is used.
Knut Petersen [Tue, 22 Dec 2015 09:10:50 +0000 (09:10 +0000)]
Dont emit \space glyph as empty page number
Werner L reported in 2012 that LP
emits a space glyph referencing
the century schoolbook font at the
top of every page.
If you use gs (old and current) or
pdfcrop to crop output with multiple
pages and print-page-number = ##f
there is excessive white space at the
top of even pages.
ghostscript should handle that better
but a recent gs bug report
http://bugs.ghostscript.com/show_bug.cgi?id=696445
was closed as "WONTFIX".
Changing " " to "" cured the problem
and appears to have no negative side
effects. Bounding boxes are affected
by this patch certainly so will have
effects in situations where snippets
are used by other third party
programs.
David Kastrup [Wed, 9 Dec 2015 18:35:45 +0000 (19:35 +0100)]
Issue 4702/2: Add conversion function creator make-semitone->pitch
Also contains a function shift-semitone->pitch for moving a given
conversion function to a different key.
The functions work on semitones rather than the whole tones that
LilyPond uses in the accidentals of its pitches since the semitones
are the more natural basis for most applications (including
Midi-related work) as well as for humans: 6 whole notes per octave
sounds a lot less common than 12 semitones.
There are currently no uses of those functions: they are provided as a
convenience.
Federico Bruni [Sun, 27 Dec 2015 00:05:04 +0000 (01:05 +0100)]
Doc-it: update @ruser links and fix a wrong translation.
Translated the last missing @rweb and @rlearning links.
All @ruser links are translated except for a few links to chapter 2 and
5 of NR in the Learning manual.
Thomas Morley [Sun, 6 Dec 2015 17:52:04 +0000 (18:52 +0100)]
Improve markup->string
issue 4685
Search and filter lily-module for all relevant markup-(list)-commands
to prevent error-prone manual selecting.
Special-casing put-adjacent and fill-with-pattern
markup-commands listed in markup-commands-to-ignore are not taken into
account
David Kastrup [Wed, 9 Dec 2015 20:33:00 +0000 (21:33 +0100)]
Issue 4687/1: Let \etc in partial markup commands stand for any arguments
Previously, \etc could only stand for a final markup argument. Now an
arbitrary kind and number of arguments from the last markup command in
a markup command chain may be omitted.
David Kastrup [Wed, 25 Nov 2015 12:19:26 +0000 (13:19 +0100)]
Issue 4671: convert-ly rule for ly:music-function-extract
The extracted music function no longer takes parser/location arguments since
version 2.19.22. This convert-ly rule caters with the simplest use of
ly:music-function-extract, calling one music function from inside another.
Federico Bruni [Thu, 26 Nov 2015 16:46:42 +0000 (17:46 +0100)]
Doc-it: add chapter 3 of Notation Reference
I left one paragraph of NR 3.6.1 untranslated, as it was
not clear. I'll wait for a doc patch:
https://lists.gnu.org/archive/html/lilypond-user/2015-12/msg00141.html
David Kastrup [Sun, 14 Jun 2015 15:43:13 +0000 (17:43 +0200)]
Issue 4674: Disallow "Scheme_engraver" as an engraver class of its own
It should not be registered as "Scheme_engraver", and no instances of it
should be allowed to exist without a definition of their own.
Also, instead of TRANSLATOR_DECLARATIONS_NO_LISTENER we use
TRANSLATOR_FAMILY_DECLARATIONS for anything not pertaining to an
individually documented translator.