David Nalesnik [Thu, 26 Mar 2015 15:08:55 +0000 (10:08 -0500)]
Issue 4328: Add means to display objects accessible from a grob
A convenient way to display the grobs and grob-objects pointed to by
various internal properties of a given grob would be very helpful for
debugging and development purposes. For example, it would facilitate the
creation of advanced tweaks, which frequently require "lateral" access
to other grobs.
The output of the function 'grob::display-objects' shows all of the grobs
accessible to a given grob through ly:grob-object together with the relevant
interfaces and properties. It includes properties which are empty: not all
properties within an interface may be set for or used by a grob supporting
that interface.
David Kastrup [Sun, 15 Mar 2015 11:15:18 +0000 (12:15 +0100)]
Issue 4324: Don't create Bottom to announce TimeSignatureEvent
As a fallout of issue 4138, << \time 3/4 \new Staff c2. >> created a
spurious Staff only containing a time signature. This change avoids the
creation of a Bottom context just for accommodating \time. As a result,
{ \tweak color #red \time 3/4 c2. }
will no longer show a change in color since no Staff context exists at
the time \time is executed and consequently the tweak does not apply
anywhere. You have to use \time in existing Staff contexts to have
either \tweak and point&click have an effect (and get an error locator
when something with typesetting the signature goes wrong). Outside of
such contexts, \time just changes properties of the Timing context.
Trevor Daniels [Sun, 15 Mar 2015 14:04:52 +0000 (14:04 +0000)]
Doc: Issue 4323: Ensure all contexts in satb.ly template stay alive
Following the fix to Issue 2010, some contexts in deeply nested
parallel constructs may be terminated prematurely, at least this
is the likely explanation for the failure of the satb.ly template
in Release 2.19.16, although blaming Issue 2010 is conjecture.
As an alternative fix to Issue 2010 seems far away, this is a hackish
workaround enable the satb.ly template to work in releases after
2.19.15 by ensuring all contexts remain alive for the duration of the
longest of them. It corrects all the examples in the LM.
Keith OHara [Wed, 11 Mar 2015 04:04:13 +0000 (21:04 -0700)]
Avoid floating-point compares on Stem:head_positions; issue 4310
On the cross-compiled windows executable, head_positions().is_empty()
seems to sometimes return true for a stem with a single note.
head_positions() returns something like [3.00... , 3.00...]
David Nalesnik [Mon, 9 Mar 2015 15:16:55 +0000 (10:16 -0500)]
Issue 4319: toward-stem-shift-in-column should only affect Script grobs
Previously, toward-stem-shift-in-column did not discriminate between
different types of grobs in the 'scripts grob-array. This meant that
TextScript, StringNumber, and Fingering objects would be caught as well.
This patch only shifts an articulation in the presence of another Script
grob.
Paul Morris [Thu, 19 Feb 2015 17:25:54 +0000 (12:25 -0500)]
Web: revise site background
Issue 4299
green fade-out gradient at both top corners
site background is slightly off-white
column backgrounds are pure-white
adjust search box color
update ie css file
C:\tmp\lilypond-2.19.16-0.mingw\$_OUTDIR\usr\bin>lilypond
GNU LilyPond 2.19.16
terminate called after throwing an instance of 'std::logic_error'
what(): basic_string::_S_construct null not valid
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
Trevor Daniels [Fri, 6 Mar 2015 23:29:19 +0000 (23:29 +0000)]
Docs: Issue 4181: Expose \stemUp and \stemDown predefs less
in LM Tweaking output
- change some examples to use \slurUp etc rather than \stemUp
- give an example showing the use of the direction indicators
- replace mention of \stemUp in text with \tieUp, etc
- correct a few typos
in NR Changing defaults
- remove superfluous \stemUp
David Kastrup [Wed, 4 Mar 2015 22:11:52 +0000 (23:11 +0100)]
Issue 4311: Make multimeasure rests obey tweaks
This change basically just copies all properties from the originating
MultiMeasureRestMusic to all of the MultiMeasureRestEvent events
generated from it. In particular, it now copies the previously omitted
'tweaks property.
David Kastrup [Thu, 19 Feb 2015 12:37:37 +0000 (13:37 +0100)]
Issue 4296: Let \displayLilyMusic print even repeated durations
\displayLilyMusic { c4 c c c } now produces { c4 c4 c4 c4 } in order to
better match the content of the music rather than the shortest possible
input representation.
Paul Morris [Wed, 18 Feb 2015 23:07:52 +0000 (18:07 -0500)]
Web: be more consistent with use of columns
Issue 4297
use a column on this page:
introduction/text-input
use columns instead of news-items on this page:
introduction/examples
only have one h3 heading per column on these pages:
introduction/easier-editing
dowmloads
community/google-summer-of-code
Thomas Morley [Sun, 8 Feb 2015 17:40:10 +0000 (18:40 +0100)]
Clean up inconsistencies in engraver-init.ly and performer-init.ly
issue 4281
In performer-init.ly
- let context-defs be copied when possible
- add missing contexts for \accepts and \alias
- delete settings for ChordNameVoice
- add GregorianTranscriptionStaff, GregorianTranscriptionVoice, NoteNames,
PetrucciStaff, PetrucciVoice
- all contexts are written without quotation marks
- accepted contexts are ordered alphabetically
In engraver-init.ly
- add FretBoards to the accepted contexts in StaffGroup
- add NullVoice to the accepted contexts in RhythmicStaff
- all contexts are written with quotation marks
- accepted contexts are ordered alphabetically
Kevin Barry [Thu, 19 Feb 2015 15:51:52 +0000 (15:51 +0000)]
Doc: replaced tabs with spaces in /ly/*.ly
Issue 1432
A number of the *.ly files have a mixture of
tabs and spaces to generate their indents.
This can lead to ugly/unhelpful indenting for
some editors. The tabs should be replaced with
spaces.
David Nalesnik [Wed, 18 Feb 2015 17:33:51 +0000 (11:33 -0600)]
Issue 4294: Functions to display rhythmic information of a grob
Convenient ways to return the musical position of a grob within
a score will be very helpful in debugging, among other uses.
This patch creates two Scheme functions which return the location
of a grob based on the associated paper column. In the case of
spanners, this is the column of the left bound.
(1) grob::rhythmic-location returns a pair consisting of measure-number
and measure-position;
(2) grob::when returns a moment representing the global timestep.
David Nalesnik [Sun, 15 Feb 2015 19:47:46 +0000 (13:47 -0600)]
Scheme function to return a grob's name
Users of Scheme would benefit from a convenient way to access a
grob's name. This patch creates the function grob::name, which
takes a grob as argument and returns its name as a symbol.
David Nalesnik [Sat, 14 Feb 2015 20:45:07 +0000 (14:45 -0600)]
Add Scheme function to return column associated with Item.
The C++ function Paper_column::get_column is used frequently,
and it makes sense to have a Scheme function which performs
the same task. An example of a practical application
is the request by users to return the location of a particular
grob in a score: this is done by examining the PaperColumn
or NonMusicalPaperColumn associated with the grob.
David Kastrup [Wed, 18 Feb 2015 15:40:49 +0000 (16:40 +0100)]
Issue 4293/3: smobs.tcc: robustify {mark,print}_trampoline in connection with free_smob
Guilev2 has little qualms calling mark/print even after freeing a smob.
So we clean out the pointer to smob data when freeing/unregistering it,
and let the mark/print trampolines detect this condition and punt.
David Nalesnik [Wed, 4 Feb 2015 20:07:01 +0000 (14:07 -0600)]
Allow independent adjustment of minimum length for spanner siblings
The property minimum-length does not allow independent adjustment
of the siblings of broken spanners. This patch adds a property,
minimum-length-after-break, which, if set, behaves similarly to minimum-length,
but only affects siblings starting a line. If minimum-length-after-break is
unset, minimum-length still controls all lengths.
A regtest demonstrates usage of the new property with a number of spanners.
Another regtest demonstrates usage and compatibility of minimum-distance
and minimum-distance-after-break.
David Nalesnik [Mon, 26 Jan 2015 14:13:22 +0000 (08:13 -0600)]
Issue 2535: Staccato on stem side alignment when other articulations are present
The default positioning of staccato dots in combination with other articulations
is poor, because the dot is positioned midway between the center of the note head
and the stem, while all other scripts are centered on the note head.
A mechanism is needed to allow a staccato dot to be positioned differently when alone
and when in combination with other articulations. This patch introduces a new property,
called 'toward-stem-shift-in-column, which works alongside 'toward-stem-shift to control
a script's position relative to the stem. If set for a script appearing within a column,
the new property overrides any setting in 'toward-stem-shift. The new property has
been set only for staccato and staccatissimo.
The previous default of 0.5 for staccato has been changed to 1.0, in accordance with
Gould's recommendation that a staccato dot be centered on the stem.
In order to allow a script to recognize the column organizing it, a pointer to
ScriptColumn, called 'script-column, has been added to script-interface.
Other changes:
--The regtest script-shift.ly has been modified to use scripts other than
staccato.
--A new regtest, script-shift-staccato.ly, illustrates the idiosyncratic
behavior of staccato dots.
--Documentation of the property 'toward-stem-shift has been made more
accurate.
Knut Petersen [Thu, 8 Jan 2015 18:00:44 +0000 (18:00 +0000)]
Reduce size of PDF files when inc. in *TeX docs
Issue 4251
This changes the way lilypond uses fonts to draw glyphs.
It avoids to used glyphshow for all emmentaler glyphs and
adds encoding vectors to the emmentaler fonts before they
are used. It also changes the ghostscript parameters used
to generate pdfs from postscript code.
These changes help to reduce pdf file sizes if you include
lilypond snippets in *TeX documents. The pdfs generated by
a patched lilypond and *tex themselves are _much_ bigger,
but if you run ghostscript and pdfsizeopt.py on those
files they implode.
Doc additions to the Usage Manual included:
Added a command line option
--bigpdf / -b, and documented that option in the german
and english versions of usage.pdf .
Internal hyperlinks are fully preserved with current
ghostscript git master.
External hyperlinks (GoToR) _to_ a file processed this
way are broken. Fixing this would require major changes
to ghostscript.
External hyperlinks _from_ a file processed this way to
other pdfs are preserved if the reader program isn't
broken (acroread is not broken in this respect, evince is).
For more details see Ghostscript bug #695747
<http://bugs.ghostscript.com/show_bug.cgi?id=695747#c22>
Peter Chubb [Tue, 20 Jan 2015 21:18:19 +0000 (08:18 +1100)]
Fix trill-span errors
The last change introduced a bug: ac:twiddletime returns a moment, and it
was changed to return a duration. This causes a lilypond error when
using trillspan and articulate.