Abraham Lee [Sat, 2 Aug 2014 16:17:01 +0000 (18:17 +0200)]
Allow changing of notation fonts
This commit changes the behaviour of make-pango-font-tree in the
following ways:
- Make all arguments optional key/value pairs
keeping the current default values (emmentaler/Century Schoolbook)
- Allow changing of music fonts too.
Currently alternative music fonts have to be present in the font
directory besides Emmentaler fonts, and they have to be manually installed.
But now there are a number of alternative and compatible fonts available.
David Kastrup [Sun, 27 Jul 2014 13:21:22 +0000 (15:21 +0200)]
Replace remaining uses of unsmob_xxx with Xxx::unsmob
This runs
sed -i 's/unsmob_\(engraver\|global_context\|input\|item\|music\|paper_score\|performance\|performer\|spanner\|stream_event\)\b/\u\1::unsmob/g' $(git grep -l unsmob_ lily)
as the mechanical part of the conversion. A separate commit provides
the required definitions.
David Kastrup [Fri, 25 Jul 2014 17:00:42 +0000 (19:00 +0200)]
unsmob_pitch -> Pitch::unsmob and related
This is part of moving away from implementing LilyPond infrastructure
via the C preprocessor rather than C++ features since C++ features tend
to be more transparent to IDEs, debuggers, editors, and newcomers.
David Kastrup [Sun, 27 Jul 2014 16:01:09 +0000 (18:01 +0200)]
Issue 4033: All subsequent clef transpositions are marked as optional
This removes a bug cover-up in scm/parser-clef.scm, implements the
necessary functionality in display-lily-music and adds some regtests
for that functionality.
James Lowe [Tue, 15 Jul 2014 21:21:10 +0000 (22:21 +0100)]
Doc: Appendix - Articulations and Ornamentation - part 2
Issue 1189
Create Texifo @multitable entries for the
List of Articulations appendix.
As there are a lot of separate scripts being
documented this Issue is going to be split
into multiple, smaller, parts to aid in the
review process. Part 1 was commit 8553021
This is part 2 and covers 'Fermata', 'Instrument
specific', 'Repeat signs' and 'Ancient' scripts.
Also, after more consideration, a third example
of each script has been added to show the
explicit differences between the up/down/neutral
positions. Not every script has a different
up/down glyph nor is positioned up/down when
placed on a note that is either top or bottom of
the Staff without explicit positioning. So this,
I hope just clarifies things (regardless whether
the position is musically 'correct' notation).
I have also sey the @code{} script examples into
the same column as the @lilypond examples; saving
a significant of wasted page space. Also I have
removed unnecessary lilypond-book variables making
the texinfo code less noisy.
Remove warning when there are no noteheads to attach lyrics to.
The warning was added to address issue 248, but it is now moot after
issue 3254 (c73b41b3e7be6d7): attaching lyrics to a note-less context
(like Devnull) is perfectly legal now.
As far as I can see, we don't want TextScript.cross-staff to be true
in any situation, because it would result in unwanted collisions.
Why it worked before: cross-staff property in this example evaluated to #f,
but only because of a bug in Script_interface::calc_cross_staff. That
function should have marked the TextScript as cross-staff if the stem
of the note to which TextScript was attached was cross-staff, but it
didn't work correctly because it expected the parent of the TextScript
to be a NoteColumn, while it actually was a PaperColumn. When I changed
the parent to be a NoteColumn, the function started working correctly
and marked the TextScript as cross-staff, so I had to change the default
value of the property.
Mark Polesky [Tue, 15 Jul 2014 19:34:15 +0000 (12:34 -0700)]
Issue 4015: Add \magnifyStaff.
* Add \magnifyStaff.
* Rewrite parts of the \magnifyMusic function so that it can share
some scheme code with the new \magnifyStaff function.
* Add regtests.
* Update documentation.
Mark Polesky [Wed, 9 Jul 2014 00:04:25 +0000 (17:04 -0700)]
Issue 3999: Make tablature half-note stem-spacing adjustable.
This adds a new property to the Stem grob called
'double-stem-separation (default=0.5), that allows users to adjust
the space between the double-stemmed half-notes in tablature:
David Kastrup [Tue, 8 Jul 2014 09:04:19 +0000 (11:04 +0200)]
Issue 3998: Let "Mars" example in pitch snippets use isolated durations
This is one example quite benefitting from issue 3648. One somewhat
incidental boon is that it would now work in relative mode without
requiring the make-relative macro.
David Kastrup [Wed, 9 Jul 2014 15:31:11 +0000 (17:31 +0200)]
Issue 2617: simple chord inversions take 2 octaves
With this change, chord inversions transpose all notes following the
inversion from the original chord down along with the inversion, as long
as the result ends up below the root note of the uninverted chord.
So with \chordmode { c:11 } => < c' e' g' bes' d'' f'' >
we get \chordmode { c:11/e } => < e g bes c' d'' f'' >
In order to have the Chord_name_engraver reconstruct the correct
uninverted chord, all the additionally octavated note events are given
an octavation property like the inversion event itself.
An "inversion" on the chord root just transposes the chord root one
octave down, leaving the rest in place.
David Kastrup [Sun, 13 Jul 2014 13:30:03 +0000 (15:30 +0200)]
Issue 4009: \retrograde fails on slurs
The section "Retrograde" in the Notation Reference is affected.
This became likely exposed with issue 2240; the corresponding
regtest does not cover it. The problem was existent previously
for slurs and other spans inside of chords.
Added two Clefs to notation-appendices.itely - Clef Styles
\clef "G2" and \clef moderntab
Removed excessive brackets in the @lilypond constructions and
updated the '\clef tab' entry so that it engraves correct out
put by adding a \new TabStaff block in the @lilypond example.
Mark Polesky [Fri, 11 Jul 2014 06:03:06 +0000 (23:03 -0700)]
Issue 3991: \magnifyMusic: surrender to issues 3987 and 3990.
Until issues 3987 and 3990 are fixed, automatic scaling
of horizontal spacing with \magnifyMusic is broken. This
patch turns the feature off, and adds a note in the docs.
Janek Warchoł [Mon, 30 Jun 2014 20:14:16 +0000 (22:14 +0200)]
Issue 2462: don't change ideal spacing when adding a rod
When objects like lyrics are added to the PaperColumns, LilyPond inserts
rods between these columns to ensure that the objects won't overlap.
However, the ideal distance should remain unchanged. For example, in
notes in 2nd measure have long lyrics attached to them - min_distance_
of the springs between these columns should be adjusted, but distance_
(the ideal distance) should not: it should be the same as for notes
with short lyrics. When the line is stretched so much that the minimum
distances are not involved, the springs between notes in both measures
should behave (almost) identical.
Note that there are more such problems in the springs code, for example
in merge_springs. The code should be rewritten, but that's not trivial.
Since this one-liner fixes some instances of the problem without any bad
side-effects, it makes sense to include it separately.
doc: update make-simple-closure example in Extending (Issue 3993)
After improvements in Self_alignment_interface::aligned_on_parent
(in particular after fixing issue 3254) it was possible to simplify
default X-offset values for several grobs, so that they didn't have
to use make-simple-closure (see e.g. commit 1d765020f8679958). This
made an example in Extending 2.7 obsolete, so I'm replacing it with
one that still uses make-simple-closure.
Janek Warchoł [Wed, 27 Mar 2013 16:20:03 +0000 (17:20 +0100)]
Issue 2245: always align dynamics and lyrics on "main" notehead
Until now, LyricTexts and DynamicTexts had their X-parents set to
the first NoteHead in the NoteColumn. This resulted in inconsistent
alignment - placement of lyrics and dynamics depended on the order
of notes in the input:
% this was aligned differently
{ <f' g'>1\p <g' f'>\p }
\addlyrics { la la }
By using NoteColumns themselves as the X-parents, we make sure that
the input order won't matter. Since the NoteColumn contains all NoteHeads
(including suspended ones, which usually should be ignored when aligning),
as well as Flags and some other objects, we cannot use its X-extent directly -
instead, we add a function for calculating X-extent of the "main" part of the
NoteColumn, i.e. X-extent of the non-suspended NoteHeads (represented by the
NoteHead furthest away from the stem).
James Lowe [Tue, 1 Jul 2014 20:32:09 +0000 (21:32 +0100)]
Doc: NR 4.5.4 Change Node name from 'Line length' to 'Line width'
Issue 3982
Change Node name from 'Line length' to 'Line width'.
In the Notation Reference, this page is called
"Line length" but the property that it covers
(among others) is called "line-width." Seems like
it would be better if the title of the page was
renamed "Line width" for greater consistency.