lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: calling a music variable using a Scheme function


From: Valentin Villenave
Subject: Re: calling a music variable using a Scheme function
Date: Thu, 3 Sep 2009 10:47:52 +0200

On Fri, Jul 24, 2009 at 10:51 AM, Nicolas Sceaux<address@hidden> wrote:
> %% UNTESTED!
> includeList =
> #(define-music-function (parser location variable-names) (list?)
>  (make-sequential-music
>   (map (lambda (variable-name)
>          (let ((music (ly:parser-lookup parser (string->symbol
> variable-name))))
>             (if (ly:music? music)
>                 music
>                 (make-music 'Music))))
>         variable-names)))

Hi Nicolas,

I've been trying to implement something based on your recent
discussion with Reinhold; I have a few questions though:
- why does scorify-music fail here?
- how can I add a \header block for each \score produced (I can't
figure out where to insert an add-text in this snippet)?

%%%%%

\include "italiano.ly"

Prologue = \relative {do re mi fa}
Ouverture = \relative {sol'1 }
Entracte = \relative {si''2 si}

#(define-public (add-score parser score)
   (ly:parser-define! parser 'toplevel-scores
                      (cons score (ly:parser-lookup parser 'toplevel-scores))))

#(define-public (add-text parser text)
  (add-score parser (list text)))

#(define-public (add-music parser music)
  (collect-music-aux (lambda (score)
                       (add-score parser score))
                     parser
                     music))

#(define (make-this-music name)
(let ((music (ly:parser-lookup parser (string->symbol name))))
    (if (ly:music? music)
        music
        (make-music 'Music 'void #t))))

includeList =
#(define-music-function (parser location variable-names) (list?)
  (map (lambda (variable-name)
         (let ((music (make-this-music variable-name))
               ; WTF???
               ;(score (scorify-music music parser))
               (layout (ly:output-def-clone $defaultlayout))
               (title (markup #:large "Score")))
             (add-music parser music)))
        variable-names)
         (make-music 'Music 'void #t))

#(define pieces
  (list
    "Prologue"
    "Ouverture"
    "Entracte"
    "Dummy"
    ))
{
  \includeList #pieces
}
%%%%%%

Thanks!
Valentin




reply via email to

[Prev in Thread] Current Thread [Next in Thread]