This is absolutely useless, however, here is little music function that allows to group music per measure, instead of per voice: \splitMusic #2 { e' f' g' a' | \clef bass c d e f | % this is the two staves of bar 1 e' f' g' a' | c d e f | % and this is bar 2 }
<==> << \new Staff { e' f' g' a' | e' f' g' a' | } \new Staff { \clef bass c d e f | c d e f | } >>
#(use-modules (ice-9 optargs)) #(define (unique-scheme-context) "Return a (hopefully) unique context name." '()) #(let ((count 0)) (set! unique-scheme-context (lambda () (set! count (1+ count)) (format #f "uniqueSchemeContext~a" count)))) #(define (bar-check? expr) (eqv? (ly:music-property expr 'name) 'BarCheck)) #(define* (split-sequential-music number seq #:key (test bar-check?)) (let ((results (make-vector number (list))) (current 0)) (define (push expr) (vector-set! results current (cons expr (vector-ref results current)))) (define (inc) (set! current (modulo (1+ current) number))) (for-each (lambda (e) (push e) (if (test e) (inc))) (ly:music-property seq 'elements)) (map-in-order reverse! (vector->list results)))) splitMusic = #(def-music-function (location number sequential-music) (number? ly:music?) (make-music 'SequentialMusic 'elements (list (make-music 'SimultaneousMusic 'elements (map-in-order (lambda (seq) (make-music 'ContextSpeccedMusic 'context-id (unique-scheme-context) 'property-operations (list) 'context-type 'Staff 'element (make-music 'SequentialMusic 'elements seq))) (split-sequential-music number sequential-music)))))) \layout { raggedright = ##t } \new StaffGroup \splitMusic #3 { g' a' b' c'' | e' f' g' a' | \clef bass c d e f | g' a' b' c'' | e' f' g' a' | c d e f | g' a' b' c'' | e' f' g' a' | c d e f | }
nicolas
_______________________________________________ lilypond-user mailing list [EMAIL PROTECTED] http://lists.gnu.org/mailman/listinfo/lilypond-user