David Kastrup [Fri, 26 Oct 2012 04:36:35 +0000 (06:36 +0200)]
Merge branch 'symbol_list_simple' into master
The following commits lead to uncompilable states before convert-ly is
being run, so they are combined into one merge commit for the sake of
bisection:
63a426b Run scripts/auxiliar/update-with-convert-ly.sh 5801d8b Change \footnote user interface and behavior to match \hide/\omit etc. 7dfbfb4 Let \overrideProperty accept nested properties 5ec4720 Change \tweak syntax to symbol syntax a3d7090 convert-ly rule for \alterbroken, \accidentalStyle, \overrideProperty 15cae1f Change \accidentalStyle to get a symbol list as argument 53e6d49 Make \alterBroken, \hide, \omit, \overrideProperty, \shape take unquoted Context.Grob specs
David Kastrup [Mon, 8 Oct 2012 21:54:19 +0000 (23:54 +0200)]
convert-ly rule for \alterbroken, \accidentalStyle, \overrideProperty
This is required since not all of the old call forms can be
automatically recognized anymore, in particular not when the
Scheme-only form #"Context.GrobName" is being used.
David Kastrup [Tue, 9 Oct 2012 11:26:52 +0000 (13:26 +0200)]
Replace the rather fuzzy list-or-symbol? with symbol-list-or-symbol?
list-or-symbol? was previously used in the meaning of
symbol-list-or-symbol? only, and there is no point in not checking the
list members for actually being symbols, in order to avoid ugly
surprises later.
David Kastrup [Mon, 8 Oct 2012 17:43:35 +0000 (19:43 +0200)]
Add symbol-list-or-music? predicate
This is of interest for commands like \hide which accept either music
(to see an override) or a grob specification like Accidental or
Voice.Accidental.
David Kastrup [Mon, 8 Oct 2012 15:52:36 +0000 (17:52 +0200)]
Allow property and grob paths to be constructed from strings
This allows use of either
\override Accidental color = #red
or
\override Accidental.color = #red
(in addition to existing forms), both for context modifications or for
property overrides in music, the latter with optional leading context
spec defaulting to Bottom. . The same holds for reverts.
David Kastrup [Sun, 7 Oct 2012 08:22:55 +0000 (10:22 +0200)]
Let \accidentalStyle detect its optional context argument by looking at its letter case
This is a fishy stopgap measure to let \accidentalStyle able to
distinguish #'Voice "default" from "default" alone while we generate
symbols from from #'Voice as well as "default". If the first letter
is uppercase, the symbol is considered to be a context specification.
David Kastrup [Sat, 6 Oct 2012 14:15:28 +0000 (16:15 +0200)]
Factor SCM_IDENTIFIER out from embedded_scm_arg*
SCM_IDENTIFIER indicates "active Scheme" introduced with $ that is
subject to copying and reinterpretation. While the parser had its own
*_IDENTIFIER category for everything interpreted specially, the
fallback SCM_IDENTIFIER itself never needed special or different
treatment from material generated with # (SCM_TOKEN). As the various
*_IDENTIFIER types are faded out, this is changing. As a consequence,
SCM_IDENTIFIER no longer shares the non-terminals with other
Scheme-type definitions.
David Kastrup [Thu, 4 Oct 2012 15:11:25 +0000 (17:11 +0200)]
parser.yy: make is_regular_identifier match the lexer definition
is_regular_identifier checks now for valid identifiers employing the
definition of words that is also used in the lexer: letters, and
characters outside of the ASCII range, interspersed with single - and
_ characters.
David Kastrup [Tue, 2 Oct 2012 14:45:44 +0000 (16:45 +0200)]
parser.yy: FRACTION does not require a closed expression before it
FRACTION items can't trail any other valid expression without
separating '*' or similar, so the argument list before them does not
need to be of "closed" type.
David Kastrup [Tue, 2 Oct 2012 14:43:11 +0000 (16:43 +0200)]
Assignments can't contain literal lyric music (wrong lexer mode)
Since assignments can't happen in lyrics mode (only in INITIAL mode or
the initial music mode), there is no point in supporting
non-mode-switching items on the right side of assignments that can
only occur in lyrics mode.
David Kastrup [Tue, 23 Oct 2012 05:52:45 +0000 (07:52 +0200)]
Create \temporary for doing overrides without pop-first set
Normal overrides change the top of the current property stack rather
than pushing to it, by having the pop-first property set in the music.
\temporary will remove this property from its argument's overrides.
For property-changing music that is not an override, a warning will be
generated.
Calling \temporary \override and \revert in succession on the same
property will have a net effect of zero. Similarly, pairing
\temporary and \undo on the same music containing overrides will have
a net effect of zero.
In more complex arrangements, \revert will revert to the state before
the last (matching) \temporary override of the same property.
Properties are maintained conceptually using one stack per property
per grob per context. Using \push/\pop instead of \temporary/\undo
was deemed unsuitable for a musician-accessible user interface.
David Kastrup [Mon, 22 Oct 2012 13:39:47 +0000 (15:39 +0200)]
Merge branch 'translation' into staging
Conflicts have been resolved generally by taking the version in
master, with the exception of Documentation/fr/notation/ancient.itely
requiring a more elaborate merge.
Benkő Pál [Fri, 7 Sep 2012 18:51:51 +0000 (20:51 +0200)]
redesign dot placement of repeat sign
refines6239ab9f01fcb31fbd6d5f7e81a98a7f58e663bf in that allow both
dots in the same space only as last resort (for two-line staves or for
exotic staves where all outer spaces are too narrow or asymmetric);
put no lower limit on the space required between dot and staffline.
an important example is TabStaff, which, for the present purposes, is
equivalent to a Staff with line-count 6 and staff-space 1.5.
Benkő Pál [Fri, 7 Sep 2012 17:39:21 +0000 (19:39 +0200)]
new regtests for dots of a repeat sign
- test default tablature
- test set-global-staff-size and layout-set-staff-size combinations
in default and extreme circumstances to make sure that real world
usage is not hindered
David Kastrup [Mon, 24 Sep 2012 09:59:42 +0000 (11:59 +0200)]
Issue 2856: Get along with use of grob-property instead of grob-property-path in overrides
LilyPond uses a willy-nilly mixture of grob-property and
grob-property-path when generating overrides programmatically (the
parser only uses grob-property-path). Several override-reinterpreting
commands and functionalities were not prepared to deal with this.
Add examples of
- connecting notes across staves
- connecting notes in chords
- adding timing marks and expressions to long glissandi
- making glissandi breakable
(Based on original work by
Tiresia GIUNO <tiresiag@googlemail.com>,
a patch by Werner LEMBERG <wl@gnu.org> and
advice from Benkő Pál <benko.pal@gmail.com>)
Trevor Daniels [Wed, 29 Aug 2012 10:13:44 +0000 (11:13 +0100)]
Doc: NR 3.2.1: clarify titles and \header blocks (2652)
- drop use of "title blocks"
- make headings consistent
- explain the two titling areas
- explain the four positions for \header blocks and their
hierarchy
- clarify text in several places
Marc Hohl [Wed, 1 Aug 2012 19:15:46 +0000 (21:15 +0200)]
New bar line interface
* the input string of a bar line called by \bar "<bar string>" resembles the output one-by-one; a repeat sign is called by ":|."
* (define-bar-line ...) or \defineBarLine allows for new definitions. These functions have four arguments, namely
the bar line itself, the bar line used at the end of line, the bar line used at the begin of a new line and the span bar line.
* Annotations for barlines can be added to distinguish between two identical barlines with different break
apperance or span bar lines.
* To align span bars properly, the space character " " has a
special meaning. When it occurs, the width of the resembling glyph in the bar line definition is used.
* New glyphs can be added easily.
* Volta brackets take the bar line dimensions into account.