%% keep these two together
"instrument-definitions" = #'()
addInstrumentDefinition =
-#(define-music-function
+#(define-scheme-function
(parser location name lst) (string? list?)
(_i "Create instrument @var{name} with properties @var{list}.")
- (set! instrument-definitions (acons name lst instrument-definitions))
- (make-music 'SequentialMusic 'void #t))
+ (set! instrument-definitions (acons name lst instrument-definitions)))
addQuote =
-#(define-music-function (parser location name music) (string? ly:music?)
+#(define-scheme-function (parser location name music) (string? ly:music?)
(_i "Define @var{music} as a quotable music expression named
@var{name}")
- (add-quotable parser name music)
- (make-music 'SequentialMusic 'void #t))
+ (add-quotable parser name music))
%% keep these two together
afterGraceFraction = #(cons 6 8)
'elements (list (make-music 'PageTurnEvent
'break-permission 'allow))))
+appendToTag =
+#(define-music-function (parser location tag more music)
+ (symbol? ly:music? ly:music?)
+ (_i "Append @var{more} to the @code{elements} of all music
+expressions in @var{music} that are tagged with @var{tag}.")
+ (music-map (lambda (m)
+ (if (memq tag (ly:music-property m 'tags))
+ (set! (ly:music-property m 'elements)
+ (append (ly:music-property m 'elements)
+ (list more))))
+ m)
+ music))
+
applyContext =
#(define-music-function (parser location proc) (procedure?)
(_i "Modify context properties with Scheme procedure @var{proc}.")
'delta-step delta))
bookOutputName =
-#(define-music-function (parser location newfilename) (string?)
+#(define-scheme-function (parser location newfilename) (string?)
(_i "Direct output for the current book block to @var{newfilename}.")
- (set! book-filename newfilename)
- (make-music 'SequentialMusic 'void #t))
+ (set! book-filename newfilename))
bookOutputSuffix =
-#(define-music-function (parser location newsuffix) (string?)
+#(define-scheme-function (parser location newsuffix) (string?)
(_i "Set the output filename suffix for the current book block to
@var{newsuffix}.")
- (set! book-output-suffix newsuffix)
- (make-music 'SequentialMusic 'void #t))
+ (set! book-output-suffix newsuffix))
%% \breathe is defined as a music function rather than an event identifier to
%% ensure it gets useful input location information: as an event identifier,
(_i "Insert @var{music} as grace notes."))
harmonicByFret = #(define-music-function (parser location fret music) (number? ly:music?)
+ (_i "Convert @var{music} into harmonics; the resulting notes resemble
+harmonics played on a fretted instrument by touching the strings above @var{fret}.")
(let* ((fret (number->string fret))
(pitch (fret->pitch fret)))
(make-sequential-music
#}))))
harmonicByRatio = #(define-music-function (parser location ratio music) (number? ly:music?)
+ (_i "Convert @var{music} into harmonics; the resulting notes resemble
+harmonics played on a fretted instrument by touching the strings above the point
+given through @var{ratio}.")
(let ((pitch (ratio->pitch ratio))
(fret (ratio->fret ratio)))
(make-sequential-music
language =
-#(define-music-function (parser location language) (string?)
+#(define-scheme-function (parser location language) (string?)
(_i "Set note names for language @var{language}.")
- (note-names-language parser language)
- (make-music 'Music 'void #t))
+ (note-names-language parser language))
languageSaveAndChange =
-#(define-music-function (parser location language) (string?)
+#(define-scheme-function (parser location language) (string?)
(_i "Store the previous pitchnames alist, and set a new one.")
(set! previous-pitchnames pitchnames)
- (note-names-language parser language)
- (make-music 'Music 'void #t))
+ (note-names-language parser language))
languageRestore =
-#(define-music-function (parser location) ()
+#(define-scheme-function (parser location) ()
(_i "Restore a previously-saved pitchnames alist.")
(if previous-pitchnames
(begin
(set! pitchnames previous-pitchnames)
(ly:parser-set-note-names parser pitchnames))
- (ly:input-warning location (_ "No other language was defined previously. Ignoring.")))
- (make-music 'Music 'void #t))
+ (ly:input-warning location (_ "No other language was defined previously. Ignoring."))))
makeClusters =
'break-permission 'force))))
parallelMusic =
-#(define-music-function (parser location voice-ids music) (list? ly:music?)
+#(define-scheme-function (parser location voice-ids music) (list? ly:music?)
(_i "Define parallel music sequences, separated by '|' (bar check signs),
and assign them to the identifiers provided in @var{voice-ids}.
trill-events)))))
main-note))
+pushToTag =
+#(define-music-function (parser location tag more music)
+ (symbol? ly:music? ly:music?)
+ (_i "Add @var{more} to the front of @code{elements} of all music
+expressions in @var{music} that are tagged with @var{tag}.")
+ (music-map (lambda (m)
+ (if (memq tag (ly:music-property m 'tags))
+ (set! (ly:music-property m 'elements)
+ (cons more (ly:music-property m 'elements))))
+ m)
+ music))
+
quoteDuring =
#(define-music-function (parser location what main-music) (string? ly:music?)
(_i "Indicate a section of music to be quoted. @var{what} indicates the name
'element main-music
'quoted-music-name what))
+relative =
+#(define-music-function (parser location pitch music)
+ ((ly:pitch? (ly:make-pitch 0 0 0)) ly:music?)
+ (_i "Make @var{music} relative to @var{pitch} (default @code{c'}).")
+ (ly:make-music-relative! music pitch)
+ (make-music 'RelativeOctaveMusic
+ 'element music))
+
removeWithTag =
#(define-music-function (parser location tag music) (symbol? ly:music?)
(_i "Remove elements of @var{music} that are tagged with @var{tag}.")