| Commit message (Expand) | Author | Age | Files | Lines |
* | Don't depend on features removed in Guile 2.1. (issue 3972)...* Replace scm_listify with scm_list_*. (It's been deprecated for a long time.)
* Use scm_protects only when available (Guile versions <2.1).
| Devon Schudy | 2014-07-15 | 2 | -3/+8 |
* | Issue 3996: Clarify 'thickness and 'line-thickness property docstrings. | Mark Polesky | 2014-07-10 | 1 | -4/+7 |
* | 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
\layout {
ragged-right = ##f
}
\relative f' { \repeat unfold 8 a4 }
\addlyrics { \repeat unfold 4 la \repeat unfold 4 straight }
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.
| Janek Warchoł | 2014-07-11 | 1 | -1/+0 |
* | 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).
| Janek Warchoł | 2014-07-08 | 5 | -4/+32 |
* | Issue 3986: \displayScheme broken... \displayScheme \markup \null
failed because a markup following an omitted optional argument (here the
optional output port) was backed up erroneously with the token type
LYRIC_ELEMENT only to be used in lyrics mode.
The optional argument was introduced with issue 2067 in version 2.19.0.
The actual underlying parser error triggered by this, however, is quite
older and originates from
commit d4694123961690b173377b3c3a199d5a24c66a9d
Author: David Kastrup <dak@gnu.org>
Date: Thu Nov 1 15:16:52 2012 +0100
parser/lexer: eliminate LYRIC_MARKUP as a token separate from MARKUP (2996/2)
in version 2.17.9.
| David Kastrup | 2014-07-08 | 1 | -1/+1 |
* | Replace XY-offset closures with aligned_on_parent where possible...It doesn't make sense to specify placement using multiple added
callbacks or closures when we can use aligned_on_parent. What's
more, aligned_on_parent should expose more consistent interface
for the users - affected grobs should now behave similarly to
LyricTexts and DynamicTexts. For example, this
\relative c'' \context Voice {
\compressFullBarRests
\override MultiMeasureRestNumber.self-alignment-X = #RIGHT
R1*100
}
will result in right edge of the MultiMeasureRestNumber being
aligned on the right edge of the MultiMeasureRest.
Affected grobs:
- AccidentalSuggestion
- ClefModifier
- DoublePercentRepeatCounter
- Fingering
- GridLine
- MultiMeasureRestNumber
- MultiMeasureRestText
- PercentRepeatCounter
- StemTremolo
Expected changes in output: none.
| Janek Warchoł | 2014-07-05 | 4 | -18/+6 |
* | Clean up DynamicText horizontal alignment....Until now, DynamicText alignment was messy, as there were 3 different
callbacks involved - some of them interacting in a confusing way:
- in define-grobs.scm, X-offset property was initialized to
ly:self-alignment-interface::x-aligned-on-self,
- Dynamic_engraver called set_center_parent on every DynamicText
attached to a note, so that half a NoteHead width was always added
to its X-offset (producing confusing results for example when
user requested dynamics to be left-aligned),
- DynamicTexts living in a Dynamics context used a completely
different offset callback, which aligned them on NoteColumns.
Since aligned_on_parent is now able to correctly align grobs
with PaperColumn parents (issue 3254), we can use it for all
DynamicTexts and have a single interface for the job.
Expected changes in output: DynamicTexts in Dynamics context
aligned to suspended noteheads may be placed up to 1/4 NoteHead
width further to the right. This shouldn't be a problem.
| Janek Warchoł | 2014-07-05 | 3 | -26/+1 |
* | Rename argument to avoid preprocessor problems...Before this change, we were getting the following error with GUB:
/home/gub/gub/target/mingw/src/
lilypond-git.sv.gnu.org--lilypond.git-release-unstable/
lily/include/paper-column.hh:62:
error: expected identifier before ',' token
/home/gub/gub/target/mingw/src/
lilypond-git.sv.gnu.org--lilypond.git-release-unstable/
lily/include/paper-column.hh:62:
error: two or more data types in declaration of 'parameter'
David Kastrup suspects that the library/compiler used for bootstrapping
has a macro or reserved word defined for "interface" - changing the name
makes the problem go away.
| Janek Warchoł | 2014-07-02 | 2 | -3/+3 |
* | Issue 3966/2: Allows the user to override the text property of ChordName...This is a reimplementation of issue 2813.
| David Kastrup | 2014-06-30 | 1 | -49/+60 |
* | Issue 3966: Revert "Allows the user to override the text property of ChordName"...This reverts commit 0d4c79ec0f5d728ac7fe58b87ccf51079ec33766.
Conflicts:
input/regression/chord-name-override-text.ly
lily/chord-name-engraver.cc
Reverts patch of issue 2813.
| David Kastrup | 2014-06-30 | 1 | -25/+15 |
* | use X-parents to align MMRNumbers, MMRTexts and PercentRepeatCounters...It makes more sense to use X-parents than Y-parents for horizontal
alignment. To be able to do this, we have to ensure that X-parents of
MultiMeasureRestNumber, MultiMeasureRestText and PercentRepeatCounter
won't be overwritten by set_bound (these grobs are spanners). We can
do this because parents of these grobs are spanners as well.
Expected changes in output: none.
| Janek Warchoł | 2014-06-28 | 5 | -9/+14 |
* | Issue 3254: align unassociated lyrics using NoteColumn extent....This makes unassociated lyrics behave consistently with
associated lyrics. Until now, "standalone" lyrics
were left-aligned (more precisely: their X-offset was 0);
changing self-alignment-X didn't have any effect on them.
Now it's possible to specify their alignment, like with
associated lyrics.
Also, this changes how issue 104 was resolved (see 0b14e8b2e122d) -
alignment of syllables that are associated to a context without
noteheads is no longer aborted - and solves issue 247.
Later on, these changes should allow using aligned_on_parent for
other grobs (such as DynamicTexts).
Expected changes in output: all lyrics should be centered by default.
| Janek Warchoł | 2014-06-26 | 4 | -8/+31 |
* | Document 'details props for LaissezVibrerTie and RepeatTie. | Mark Polesky | 2014-06-13 | 1 | -1/+13 |
* | Issue 3937: Support \once\unset | David Kastrup | 2014-06-05 | 1 | -5/+24 |
* | Issue 3936: ly:music-list? should return #f for non-lists | David Kastrup | 2014-05-30 | 1 | -7/+9 |
* | Issue 3923: Use apply instead of eval for timestep finalizations | David Kastrup | 2014-05-24 | 2 | -7/+5 |
* | keySignature-> keyAlterations...to avoid confusion with the grob KeySignature
| Keith OHara | 2014-05-20 | 4 | -25/+25 |
* | Fix calculation of X-extent of AccidentalPlacement....Previously, the offsets used for staggered placement of accidentals
were not included in the calculation of the width of AccidentalPlacement
grobs.
| David Nalesnik | 2014-05-13 | 1 | -1/+1 |
* | Issue 3913: KeyCancellation grobs should ignore cue clefs like KeySignature g......For
{
\key f \major R1 \cueClef bass \key g \major R1 \cueClefUnset
R1 \cueClef alto \key bes \major R1
}
the cancellation signs for the key changes were erroneously placed in
reference to the current cue clef rather than the main clef while the
key signature itself was properly unimpressed.
| David Kastrup | 2014-05-09 | 1 | -1/+1 |
* | Tuplet brackets should reliably not follow kneed beams, regardless of whether......This affects input/regression/tuplet-number-kneed-beam-horizontal-fit,
and the following:
{
\override TupletBracket.bracket-visibility = ##t
\times 1/2 { c8 c''' c c''' }
}
Is it safe to call Beam::is_knee in Tuplet_bracket::calc_position_and_height?
| Devon Schudy | 2014-04-14 | 1 | -1/+1 |
* | Issue 3898: parser.yy: move figure_list to chord_body...Figures failed to get recognized as music function arguments and possibly
in some other contexts. Moving them together with chords in < > style
gets rid of that problem.
| David Kastrup | 2014-04-13 | 1 | -24/+7 |
* | Fix namespace issue with clang....Signed-off-by: Thomas Klausner <wiz@NetBSD.org>
| Thomas Klausner | 2014-04-12 | 1 | -1/+1 |
* | Bad positioning of tuplet numbers on kneed beams with Beam.positions override....Previously, when Beam.positions was overridden, tuplet numbers on kneed beams
would automatically be placed according to the bracket instead of against
the beam. This happened because the check for whether the beam was kneed
or not returned false in such cases. This patch replaces that check.
It also:
--adds a regtest demonstrating behavior with Beam.position overrides
--removes some redundant code
| David Nalesnik | 2014-04-05 | 1 | -5/+2 |
* | \partial now only makes measurePosition negative at the beginning of a score....This is more consistent, and means it doesn't disrupt bar numbers when used
at the beginning of a measure or after \time. (issue 3888)
This changes the semantics for issue 3645 in commit
2d34420eaf1ffdb620739e4640af42c0b3f812c1.
| Devon Schudy | 2014-04-04 | 1 | -1/+1 |
* | Fix infinite loop in Completion_heads_engraver at invalid measure position (i......* Completion_heads_engraver now gives a programming_error instead of trying to make negative-duration notes.
* intlog2 with a nonpositive argument now gives an error instead of an infinite loop.
| Devon Schudy | 2014-04-04 | 2 | -1/+8 |
* | Count MIDI ticks from the beginning of the score, not each staff independently....This keeps MIDI output aligned for:
* Lyrics (issue 3878)
* Staves without Dynamic_performer (issue 3871)
* Staves that start late
* Scores that start with grace notes (issue 1412).
| Devon Schudy | 2014-04-04 | 5 | -7/+17 |
* | Issue 3892/2: Allow scheme expressions for scores, output defs, music in scores | David Kastrup | 2014-04-04 | 1 | -69/+81 |
* | Issue 3892/1: Allow output defs as scheme expressions in toplevel, book, book... | David Kastrup | 2014-04-04 | 1 | -0/+33 |
* | lily/parser.yy: whitespace fixes | David Kastrup | 2014-04-04 | 1 | -11/+8 |
* | Issue 3878: Revert "Fix spurious error playing initial grace notes (issue 1412)"...This reverts commit 6cec57bf0989098fce173703b894f7718bf9c10d.
| David Kastrup | 2014-03-24 | 1 | -3/+1 |
* | Fix issue 3868: line-breaking makes short lines...Two simple fixes:
1) Always have some stretchability between notes
2) If there _is_ a completely unstretchable line, shorter than the line-width,
score it as a bad fit, not as a perfect fit (report large forces for stiff lines).
Either one would fix the problem; both seem to be good to have in the code.
| Keith OHara | 2014-03-08 | 2 | -2/+2 |
* | Improve positioning of tuplet numbers for kneed beams....In the past LilyPond always placed tuplet numbers according to the
position of a bracket, though this bracket may or may not have actually
been drawn. This system led at times to tuplet numbers which appeared
stranded when there was a kneed beam and no visible bracket.
This patch positions the tuplet number independently of brackets and
close to the beam when the the bracket is not drawn, the beam is kneed, and
there is an appropriate beam segment to place the number against.
The side of the beam on which the number is placed is chosen by principles
derived from Gould. The number is centered horizontally on the beam.
Collision detection is also introduced. The number will be offset
horizontally if it is too close to an adjoining note column. All shifts
preserve the number's vertical distance from the beam. If the number is
too large to fit in the available horizontal space (between note columns
to either side), we use the old bracket-based positioning system. In the
event of a collision with an accidental, the tuplet number is moved
vertically, away from the beam.
The older behavior is always available through an override of the property
`knee-to-beam' which is introduced by this patch, and set by default to true.
This patch also adds a header file, `tuplet-number.hh', and provides
a number of regression tests illustrating various features.
| David Nalesnik | 2014-02-14 | 2 | -14/+459 |
* | Issue 3827: remove the necessity to have a \layout block in a \markup \score ......It turns out that this is not really fixable in the backend since what
is called "layout" in the markup function definitions does not
actually correspond to \layout but rather to \paper. Very funny.
So this is solved in the parser itself when reading a \score or
\score-lines to be used in a markup or markup list by cloning
$defaultlayout as necessary (which simulates \layout {}) whenever the
score is without an output definition.
| David Kastrup | 2014-02-14 | 1 | -2/+14 |
* | Let Chord_name_engraver record lastChord in internal context property...Using a context property instead of an engraver-internal variable
allows for more flexible behavior of identical chord suppression.
| David Kastrup | 2014-02-08 | 1 | -13/+6 |
* | More consistent performance of breath marks. (issue 3821)...After tied notes, breaths take time only from the last note of the tie, so
e.g. { c4 ~ c8 \breathe } performs as { c4 ~ c16 r }, not { c4 r8 }.
This is consistent with articulations, and with how humans interpret
breaths after ties. This makes it possible to align simultaneous
breaths in multiple parts with different note lengths.
Ignore grace time when calculating the length of the note before a breath —
subsequent grace notes take time from the breath, not the previous note.
| Devon Schudy | 2014-02-08 | 1 | -4/+8 |
* | Issue 3814: Allow context definitions to be provided by scheme functions...Also obliterates CONTEXT_DEF_IDENTIFIER
| David Kastrup | 2014-01-24 | 1 | -41/+58 |
* | Issue 3815: Parser: harmonize \lyricsto and \addlyrics arguments...Previously, they allowed arbitrary music but since that required looking
at lookahead tokens in the wrong mode, it led to strange errors like with
lyr=\lyricsto A { }
mus={c}
when mus= was parsed as a single token in lyrics mode. Now both \addlyrics
and \lyricsto accept merely the same kind of delimited argument list
that \lyrics or \chords accept. Additionally, to preserve compatibility
to a lot of examples, music identifiers like \mus are permitted as the
argument to \lyricsto and \addlyrics.
Since this requires a change in existing uses, this includes a
convert-ly rule that removes redundant uses of \lyricmode and
rearranges the combination with context starters such that \lyricsto
in general is applied last, like \lyricmode would be.
| David Kastrup | 2014-01-21 | 1 | -18/+23 |
* | Issue 3792: \time change under last \alternative does not persist | David Kastrup | 2014-01-18 | 1 | -6/+8 |
* | Issue 3797: Music_wrapper_iterator does not follow original context setting o......We do this by making Music_iterator::get_handle and
Music_iterator::set_context virtual and letting Music_wrapper_iterator
redirect them to the child iterator.
\score {
<<
{ { a4 a b b } a a b b }
{ \absolute { a4 a b b } a a b b }
>>
}
splits off a new Staff after \absolute { a4 a b b }.
| David Kastrup | 2014-01-18 | 4 | -4/+25 |
* | Remove tremoloFlags property (issue 3783) | David Kastrup | 2014-01-15 | 1 | -12/+1 |
* | Issue 3783: track default tremolo type in the parser | David Kastrup | 2014-01-15 | 3 | -5/+11 |
* | Parser: remove unused member function declarations and definitions. | David Kastrup | 2014-01-15 | 2 | -14/+0 |
* | Eliminate OUTPUT_DEF_IDENTIFIER as separate token | David Kastrup | 2014-01-15 | 1 | -14/+2 |
* | Issue 3793: Allow scheme functions and identifiers to function as output defi... | David Kastrup | 2014-01-15 | 1 | -6/+47 |
* | Issue 3794: Fix doc string for ly:context-def-lookup | David Kastrup | 2014-01-15 | 1 | -3/+6 |
* | Issue 3780: Allow use of Scheme expressions as chord constituents...That's actually rather desirable for using #{ ... #} in connection with the
make-relative macro.
| David Kastrup | 2014-01-12 | 1 | -0/+1 |
* | Tremolo cleanup. (issue 3745)...Scale durations when iterating, not in make-repeat. This means the original
repeat body is intact, so unfold-repeats and display methods no longer need
to undo the scaling.
Build tremolo spanners in Scheme, not C++.
Calculate tremolo-type in tremolo::get-music-list rather than storing it as a property.
shift-duration-log now clears the cached length, since it changes the length.
\shiftDurations no longer duplicates shift-duration-log.
Merge make-repeated-music with make-repeat.
| Devon Schudy | 2014-01-09 | 2 | -36/+3 |
* | Issue 3770: Use value->lily-string for -ddebug-parser | David Kastrup | 2014-01-06 | 1 | -11/+11 |
* | Issue 3769: Lexer/Parser: Don't package location data in SCM_TOKEN semantic v......As the location data is available as the location value in the parser
anyway, there is no point in packaging it into the semantic value.
Among other things, this leads to a cleaner display when using
-ddebug-parser, and to better understandable code.
| David Kastrup | 2014-01-06 | 5 | -66/+64 |
* | Run grand-replace (issue 3765)...Run make grand-replace to update all coopyright statements
| Carl Sorensen | 2014-01-05 | 640 | -644/+644 |