I'm struggling with how to access a function that is define-public'ed in an scm 
file. In particular, the file define-music-display-methods.scm defines the 
note-name->lily-string function to return a human-readable representation of 
the given pitch. Now, I want to call that from a custom function that I'm 
definin in my own .ly file. How can I call that note-name->lily-string function?

That function does not seem to be available by default (judging from the code, 
it is in the display-lily module...).


I tried inserting 
  #(use-module (scm display-lily))
in my .ly file, but that didn't work at all. Using
  #(ly:load "define-music-display-methods.scm")
makes note-name->lily-string available, but then $defaultlayout can no longer 
be found?!?

Example is attached (it uses my patch  http://codereview.appspot.com/112044)

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
\version "2.13.4"

% I tried the following for note-name->lily-string (which I changed to define-public):
% This does not work at all:
%   #(use-module (scm display-lily))
% This works, but then $defaultlayout is not available any more:
%  #(ly:load "define-music-display-methods.scm")

#(define add-one-note-score 
   (let ((pitch 0))
        (lambda (parser)
          (let* ((scmpitch (ly:make-pitch 0 pitch 0))
                 (music (make-music 'EventChord
                          'elements (list (make-music 'NoteEvent
                                            'duration (ly:make-duration 2 0 1 1)
                                            'pitch scmpitch))))
                 (score (scorify-music music parser))
                 (layout (ly:output-def-clone $defaultlayout))
                 (title (markup #:large #:line ((ly:format "Score with a ~a"
                                 "dummy pitch name"
;                                (note-name->lily-string scmpitch parser)
                                 )))))
            (ly:score-add-output-def! score layout)
            (add-text parser title)
            (add-score parser score))
            (set! pitch (modulo (1+ pitch) 7)))))

oneNoteScore =
#(define-music-function (parser location) ()
   (add-one-note-score parser)
   (make-music 'Music 'void #t))

%%%

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

Reply via email to