[Top][All Lists]

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

Re: Lilypond midi to stdout?

From: Bertalan Fodor (LilyPondTool)
Subject: Re: Lilypond midi to stdout?
Date: Tue, 14 Oct 2008 16:05:47 +0200
User-agent: Thunderbird (Windows/20080914)

I think LilyPond must have the full score to create the MIDI, it doesn't happen measure by measure.

John O'Hagan wrote:
Why is it important to play the midi file during generation?

I'm glad you asked! The program is intended to have a performance mode: you 
enter a set of requirements and restrictions on the command-line (this is the 
creative part!) and then see what it produces.

The program then does some combinatorial number-crunching, which can take a 
long time to complete - in some cases unrealistically long. However, it uses 
Python generators, so that each small unit of output (i.e., bar) is yielded 
immediately and then forgotten about, and we begin to see output straight 
away. Without this feature, some of the larger operations would simply fill 
the memory and never complete. This way, it can begin to "perform" 

Of course, it is possible to play midi files (or scores) produced by Lilypond 
at the end of the process, but that may be much later, or never.

To date, I've been using the sox synth to play the results, but that's pretty 
limited; and then by triggering some piano samples, but I realized I was 
re-inventing midi; and since my program already includes a function to 
convert my numerical representation of music into Lilypond-friendly strings, 
the midi data is already being produced. 

If only I could get my hands on it!

John O'Hagan wrote:

I'm using Lilypond to print the results of an algorithmic music program
written in Python.

I'm looking for a way to play the results as they are produced (i.e bar
by bar), and it occurred to me that simply playing Lilypond midi files
with a midi player would do the trick.

However, I can't figure out how to get Lilypond's midi data sent to
stdout, where it could then be read from stdin by a player. Whatever I
try (including python pipes and even plain shell pipes) it just writes
the file to my home directory.

Is there any way around this?


John O'Hagan

lilypond-user mailing list


reply via email to

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