-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Am Sonntag, 16. August 2009 18:52:59 schrieb Nicolas Sceaux:
> Le 14 août 09 à 21:40, Reinhold Kainhofer a écrit :
> > Does anyone have any idea how I can insert a scheme score
> > into the current book using only scheme without the parser?
>
> I'm doing that with my own framework.
> <http://repo.or.cz/w/nenuvar.git> file common/includes.ily

Hmm, to me it seems that you are effectively calling the parser to interpret 
\include "file.ly". That is a nice way around my problem, where only the parser 
seems to have a pointer to the current book (so you are invoking the parser to 
insert the scores into the bookpart), but it can't be used in my case.

My problem is that I don't have the score in a file in lilypond syntax at all. 
I have only the notes of the individual instruments, but the whole score 
(containing part-combined staves, etc.) is really generated on-the-fly in 
scheme.

The code (stripped-down to the relevant parts) is basically (see 
orchestrallily.ily in the git repo http://repo.or.cz/w/orchestrallily.git):

% The helper function to build a score.
#(define (oly:createScoreHelper parser location piece children func)
  (let* (
         (music    (oly:staff_group_handler to create the list of staves))
         (score     '())
         (header    '())
        )
      ; No staves, print tacet
      ; we have staves, apply the piecename to the score and add layout/midi
      ; blocks if needed
        (set! score (scorify-music music parser))
        (oly:set_piece_header score piecename)
        (oly:apply_score_midi score)
        (oly:apply_score_layout score)
        ; Schedule the score for typesetting
        (oly:add-score parser score piecename)
      )
  ; This is a void function, the score has been schedulled for typesetting
  (make-music 'Music 'void #t)
)

createScore = #(define-music-function (parser location piece children) (string? 
list?)
  (oly:createScoreHelper parser location piece children identity)
)


So, the whole score object is really generated in scheme. The issue is that I 
don't know what function to call to insert that score into the current book, 
rather than the toplevel scores (i.e. what should I use instead of oly:add-
score? Currently, that function simply calls (toplevel-score-handler parser 
score) ). Or the other solution would be to have a way to get the current book 
object, so that I can pass this to the book-score-handler function.

Thanks a lot,
Reinhold
- -- 
- ------------------------------------------------------------------
Reinhold Kainhofer, reinh...@kainhofer.com, http://reinhold.kainhofer.com/
 * Financial & Actuarial Math., Vienna Univ. of Technology, Austria
 * http://www.fam.tuwien.ac.at/, DVR: 0005886
 * LilyPond, Music typesetting, http://www.lilypond.org
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)

iD8DBQFKiKdLTqjEwhXvPN0RAteSAJ9jZs1+TsPQpe0RSkgTJIfclSKDTQCdGu1H
efJt+xny+C7WWg74NpLRWb0=
=15lu
-----END PGP SIGNATURE-----


_______________________________________________
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel

Reply via email to