X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Documentation%2Fextending%2Fscheme-tutorial.itely;h=7503306b1fa56f3e8c16b0f6d25b5f5e8d8f28a6;hb=058370efc7e9710f149d0f444328bb1fcd7bdec1;hp=bad8d261b214cd4e6fc1aff56dafbed1af3b6938;hpb=e6e64de1da49ff8c6005daa5fd81adc8387b2668;p=lilypond.git diff --git a/Documentation/extending/scheme-tutorial.itely b/Documentation/extending/scheme-tutorial.itely index bad8d261b2..7503306b1f 100644 --- a/Documentation/extending/scheme-tutorial.itely +++ b/Documentation/extending/scheme-tutorial.itely @@ -1134,23 +1134,30 @@ will display By default, LilyPond will print these messages to the console along with all the other messages. To split up these messages and save -the results of @code{\display@{STUFF@}}, redirect the output to -a file. +the results of @code{\display@{STUFF@}}, you can specify an optional +output port to use: @example -lilypond file.ly >display.txt +@{ + \displayMusic #(open-output-file "display.txt") @{ c'4\f @} +@} @end example -With a combined bit of Lilypond and Scheme magic, you can actually -let Lilypond direct just this output to a file of its own: - +This will overwrite a previous output file whenever it is called; if you +need to write more than one expression, you would use a variable for +your port and reuse it: @example @{ - #(with-output-to-file "display.txt" - (lambda () #@{ \displayMusic @{ c'4\f @} #@})) + port = #(open-output-file "display.txt") + \displayMusic \port @{ c'4\f @} + \displayMusic \port @{ d'4 @} + #(close-output-port port) @} @end example +Guile's manual describes ports in detail. Closing the port is actually +only necessary if you need to read the file before Lilypond finishes; in +the first example, we did not bother to do so. A bit of reformatting makes the above information easier to read: