2004-01-16 Han-Wen Nienhuys <hanwen@xs4all.nl>
+ * lily/lexer.ll: add empty markup signature.
+
+ * scm/new-markup.scm (markup-functions-and-signatures): reinstate
+ strut markup
+
+ * lily/parser.yy (markup): MARKUP_HEAD_EMPTY
+
+ * scm/define-translator-properties.scm: update melismata property
+ doco.
+
* lily/system.cc (output_lines): revert uniquify_list() patch,
strange side effects seen.
\notes\relative c''' \notes {
a2 b
#(set-octavation 1)
- a2 b \break c a
+ a2 b \break c''1 \break
+ a
#(set-octavation 0)
- a b c a
+ g,,2 b c a
}
}
SCM tag = gh_cdr(s);
if (tag == ly_symbol2scm("markup0"))
return MARKUP_HEAD_MARKUP0;
+ if (tag == ly_symbol2scm("empty"))
+ return MARKUP_HEAD_EMPTY;
else if (tag == ly_symbol2scm ("markup0-markup1"))
return MARKUP_HEAD_MARKUP0_MARKUP1;
else if (tag == ly_symbol2scm ("markup-list0"))
%token MARKUP
%token <scm> MARKUP_HEAD_MARKUP0
+%token <scm> MARKUP_HEAD_EMPTY
%token <scm> MARKUP_HEAD_MARKUP0_MARKUP1
%token <scm> MARKUP_HEAD_SCM0
%token <scm> MARKUP_HEAD_SCM0_MARKUP1
STRING {
$$ = make_simple_markup ($1);
}
+ | MARKUP_HEAD_EMPTY {
+ $$ = scm_list_n ($1, SCM_UNDEFINED);
+ }
| MARKUP_HEAD_MARKUP0 markup {
$$ = scm_list_n ($1, $2, SCM_UNDEFINED);
}
(text-repeat-if-broken . #t)
(shorten-pair . (0.0 . -0.6))
(staff-padding . 1.0)
+ (padding . 1.0)
(enclose-bounds . #t)
(width-correct . 0.0)
(style . dashed-line)
using barchecks in polyphonic music.")
(translator-property-description 'barNumberVisibility procedure? "Procedure that takes an int and returns whether the corresponding bar number should be printed")
(translator-property-description 'bassFigureFormatFunction procedure? "DOCME")
-(translator-property-description 'beamMelismaBusy boolean? "Signal if a beam is set when automaticMelismata is set")
+(translator-property-description 'beamMelismaBusy boolean? "Signal if a beam is present.")
(translator-property-description 'beatLength ly:moment? "The length of one beat in this time signature.")
(translator-property-description 'beatGrouping list?
"List of beatgroups. Eg. in 5/8 time #(list 2 3).")
whether a melisma is active. This can be used to signal melismas on
top of those automatically detected. ")
(translator-property-description 'melismaBusyProperties list?
- "List of properties (symbols) to
-determine whether a melisma is playing.")
+ "List of properties (symbols) to
+determine whether a melisma is playing. Setting this property will
+influence how lyrics are aligned to notes. For example, if set to
+@code{#'(melismaBusy beamMelismaBusy)}, only manual melismata
+(i.e. setting @code{melismaBusy} to @code{#t}) and manual beams are
+considered. Possible values include @code{melismaBusy},
+@code{slurMelismaBusy}, @code{tieMelismaBusy}, and
+@code{beamMelismaBusy}")
(translator-property-description 'metronomeMarkFormatter procedure?
"When true, all no typesetting is done at
this moment, causing the interpretation phase to go a lot faster. This can
help with debugging large scores.")
-(translator-property-description 'slurMelismaBusy boolean? "Signal a slur if automaticMelismata is set.")
+(translator-property-description 'slurMelismaBusy boolean? "Signal if a slur is present.")
(translator-property-description 'solo boolean? "set if solo is detected by the part combiner.")
(translator-property-description 'soloADue boolean? "set Solo/A due texts in the part combiner?.")
(translator-property-description 'soloIIText string? "text for begin of solo for voice ``two'' when part-combining.")
"Function formatting a tab notehead; it takes
a string number, a list of string tunings and Pitch object. It returns the text as a string.")
-(translator-property-description 'tieMelismaBusy boolean? "Signal ties when automaticMelismata is set.")
-(translator-property-description 'timeSignatureFraction number-pair? "
-pair of numbers, signifying the time signature. For example #'(4 . 4) is a 4/4time signature.")
+(translator-property-description 'tieMelismaBusy boolean? "Signal whether a tie is present.")
+(translator-property-description 'timeSignatureFraction number-pair?
+"pair of numbers, signifying the time signature. For example #'(4 . 4)
+is a 4/4 time signature.")
+
(translator-property-description 'timing boolean? " Keep administration of measure length, position, bar number, etc?
Switch off for cadenzas.")
(translator-property-description 'tonic ly:pitch?
))
-;; TODO: fix this .
(define-public (strut-markup paper props . rest)
"Syntax: \\strut
(let*
((m (Text_item::interpret_markup paper props " ")))
- (ly:molecule-set-extent! m 0 '(1000 . -1000))
+ (ly:molecule-set-extent! m X '(1000 . -1000))
m))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define (markup-signature-to-keyword sig)
" (A B C) -> a0-b1-c2 "
-
- (let* ((count 0))
- (string->symbol (string-join
-
- (map
- (lambda (func)
- (set! count (+ count 1))
- (string-append
-
- ;; for reasons I don't get,
- ;; (case func ((markup?) .. )
- ;; doesn't work.
- (cond
- ((eq? func markup?) "markup")
- ((eq? func markup-list?) "markup-list")
- (else "scheme")
- )
- (number->string (- count 1))
- ))
-
- sig)
- "-"))
-
- ))
+ (if (equal? sig '())
+ 'empty
+ (let* ((count 0))
+ (string->symbol (string-join
+
+ (map
+ (lambda (func)
+ (set! count (+ count 1))
+ (string-append
+
+ ;; for reasons I don't get,
+ ;; (case func ((markup?) .. )
+ ;; doesn't work.
+ (cond
+ ((eq? func markup?) "markup")
+ ((eq? func markup-list?) "markup-list")
+ (else "scheme")
+ )
+ (number->string (- count 1))
+ ))
+
+ sig)
+ "-"))
+ )))
(define (markup-function? x)
- (object-property x 'markup-signature)
- )
+ (object-property x 'markup-signature) )
(define (markup-list? arg)
(define (markup-list-inner? l)
(if (null? l)
#t
- (and (markup? (car l)) (markup-list-inner? (cdr l)))
- )
- )
+ (and (markup? (car l)) (markup-list-inner? (cdr l))) ) )
(and (list? arg) (markup-list-inner? arg)))
(define (markup-argument-list? signature arguments)
(cons fontsize-markup (list number? markup?))
(cons box-markup (list markup?))
+ (cons strut-markup '())
))