%%%% This file is part of LilyPond, the GNU music typesetter.
%%%%
-%%%% Copyright (C) 2003--2010 Han-Wen Nienhuys <hanwen@xs4all.nl>
+%%%% Copyright (C) 2003--2011 Han-Wen Nienhuys <hanwen@xs4all.nl>
%%%% Jan Nieuwenhuizen <janneke@gnu.org>
%%%%
%%%% LilyPond is free software: you can redistribute it and/or modify
(_i "Set the current clef to @var{type}.")
(make-clef-set type))
+
+compoundMeter =
+#(define-music-function (parser location args) (pair?)
+ (_i "Create compound time signatures. The argument is a Scheme list of
+lists. Each list describes one fraction, with the last entry being the
+denominator, while the first entries describe the summands in the
+enumerator. If the time signature consists of just one fraction,
+the list can be given directly, i.e. not as a list containing a single list.
+For example, a time signature of (3+1)/8 + 2/4 would be created as
+@code{\\compoundMeter #'((3 1 8) (2 4))}, and a time signature of (3+2)/8
+as @code{\\compoundMeter #'((3 2 8))} or shorter
+@code{\\compoundMeter #'(3 2 8)}.")
+ (let* ((mlen (calculate-compound-measure-length args))
+ (beat (calculate-compound-base-beat args))
+ (beatGrouping (calculate-compound-beat-grouping args))
+ (timesig (cons (ly:moment-main-numerator mlen)
+ (ly:moment-main-denominator mlen))))
+ #{
+ \once \override Staff.TimeSignature #'stencil = #(lambda (grob)
+ (grob-interpret-markup grob (format-compound-time $args)))
+ \set Timing.timeSignatureFraction = $timesig
+ \set Timing.baseMoment = $beat
+ \set Timing.beatStructure = $beatGrouping
+ \set Timing.beamExceptions = #'()
+ \set Timing.measureLength = $mlen
+ #} ))
+
+
+cueClef =
+#(define-music-function (parser location type) (string?)
+ (_i "Set the current cue clef to @var{type}.")
+ (make-cue-clef-set type))
+cueClefUnset =
+#(define-music-function (parser location) ()
+ (_i "Unset the current cue clef.")
+ (make-cue-clef-unset))
+
cueDuring =
#(define-music-function
(parser location what dir main-music) (string? ly:dir? ly:music?)
'quoted-context-type 'Voice
'quoted-context-id "cue"
'quoted-music-name what
- 'quoted-voice-direction dir
- 'origin location))
+ 'quoted-voice-direction dir))
+
+cueDuringWithClef =
+#(define-music-function
+ (parser location what dir clef main-music) (string? ly:dir? string? ly:music?)
+ (_i "Insert contents of quote @var{what} corresponding to @var{main-music},
+in a CueVoice oriented by @var{dir}.")
+ (make-music 'QuoteMusic
+ 'element main-music
+ 'quoted-context-type 'Voice
+ 'quoted-context-id "cue"
+ 'quoted-music-name what
+ 'quoted-music-clef clef
+ 'quoted-voice-direction dir))
language =
-#(define-music-function (parser location str) (string?)
- (_i "Select note names language.")
- (let ((language (assoc-get (string->symbol str)
- language-pitch-names
- '())))
- (if (pair? language)
- (begin
- (if (ly:get-option 'verbose)
- (ly:message (_ "Using ~a note names...") str))
- (set! pitchnames language)
- (ly:parser-set-note-names parser language))
- (ly:warning (_ "Could not find language ~a. Ignoring.") str))
- (make-music 'Music 'void #t)))
+#(define-music-function (parser location language) (string?)
+ (_i "Set note names for language @var{language}.")
+ (note-names-language parser language)
+ (make-music 'Music 'void #t))
+
+languageSaveAndChange =
+#(define-music-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))
+
+languageRestore =
+#(define-music-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:warning (_ "No other language was defined previously. Ignoring.")))
+ (make-music 'Music 'void #t))
makeClusters =
overrideTimeSignatureSettings =
#(define-music-function
- (parser location context time-signature base-moment beat-structure beam-exceptions)
- (symbol? pair? pair? cheap-list? cheap-list?)
+ (parser location time-signature base-moment beat-structure beam-exceptions)
+ (pair? pair? cheap-list? cheap-list?)
- (_i "Override @code{timeSignatureSettings} in @var{context}
+ (_i "Override @code{timeSignatureSettings}
for time signatures of @var{time-signature} to have settings
of @var{base-moment}, @var{beat-structure}, and @var{beam-exceptions}.")
;; TODO -- add warning if largest value of grouping is
;; greater than time-signature.
(let ((setting (make-setting base-moment beat-structure beam-exceptions)))
- (override-time-signature-setting time-signature setting context)))
+ (override-time-signature-setting time-signature setting)))
overrideProperty =
#(define-music-function (parser location name property value)
revertTimeSignatureSettings =
#(define-music-function
- (parser location context time-signature)
- (symbol? pair?)
+ (parser location time-signature)
+ (pair?)
- (_i "Revert @code{timeSignatureSettings} in @var{context}
+ (_i "Revert @code{timeSignatureSettings}
for time signatures of @var{time-signature}.")
- (revert-time-signature-setting time-signature context))
+ (revert-time-signature-setting time-signature))
rightHandFinger =
#(define-music-function (parser location finger) (number-or-string?)