|
From: | Pierre Perol-Schneider |
Subject: | Re: Selected pieces in a book |
Date: | Sat, 10 Oct 2015 20:34:04 +0200 |
Hello Pierre,
On 10.10.2015 19:41, Pierre Perol-Schneider wrote:
Hi LilyPonders,
I'm trying to automagically select pieces within a library.
My first intention was to use 'tags' but it does not seem to work a that level.
\tag is a music function, so it can’t output scores.
Any idea how to achieve that ?
I’d use some Scheme code:
%%%%%%%%%%%%%%%%%%%%%%
\version "2.19.28"
my-first-piece = \relative c' {
\mark "Level 1"
c1 d e f g a b c
}
my-second-piece = \relative c' {
\mark "Level 1"
c2 d e f g a b c
}
my-third-piece = \relative c' {
\mark "Level 2"
c4 d e f g a b c
}
my-fourth-piece = \relative c' {
\mark "Level 2"
c8 d e f g a b c
}
%% define scheme lists of music expressions for each level
#(define level-one (list my-first-piece my-second-piece))
#(define level-two (list my-third-piece my-fourth-piece))
#(define (print-by-level lst)
;; wrap each music _expression_ into \score {}
;; and add each of the scores to the bookpart
(let ((print-piece (lambda (mus)
#{ \score { $mus } #})))
;; see ‘scm/lily-library.scm’ for add-score
;; (and many other useful procedures)
(map add-score (map print-piece lst))))
%% Select pieces by level:
\book {
\bookpart {
%% Select only 'level 1 pieces':
#(print-by-level level-one)
%}
\header {
title = "Level I"
}
}
\bookpart {
%% Select only 'level 2 pieces':
#(print-by-level level-two)
%}
\header {
title = "Level II"
}
}
}
%%%%%%%%%%%%%%%%%%%
It has been a personal breakthrough to discover the use of these functions from lily-library.scm…
I hope you can make sense and use of that :-)
Yours, Simon
[Prev in Thread] | Current Thread | [Next in Thread] |