Hey all, in case you hadn't noticed: last year at the Waltrop meeting Julien Lerouge started to work on a LilyPond to MusicXML converter using LilyPond-engravers (based on Jan Nieuwenhuizen's to-xml.scm script and some of John Mandereau's ideas (see http://lists.gnu.org/archive/html/lilypond-devel/2012-08/msg00651.html). It's still a stub but it's a start: https://github.com/Philomelos/lilypond-ly2musicxml.
FWIW it might also be an option to think about a music21-LilyPond interface. http://mit.edu/music21/ (Python toolkit for computer-aided musicology) can already import quite a few musical data formats and exports MusicXML (and LilyPond)… hth patrick On 27.04.2013, at 01:30, Paul Morris <p...@paulwmorris.com> wrote: > On Apr 26, 2013, at 4:31 PM, Curt <accou...@museworld.com> wrote: > >> My own sense after reviewing the discussions I've been able to find: >> >> I suspect that focusing on music-stream export first is too "half-a-loaf" >> and would require major rework once we add positioning. And, that >> re-parsing the input file for positioning information is not as good an >> option as figuring out how to hook export logic into the lilypond >> positioning logic itself. It seems the right way is to make the positioning >> logic maintain knowledge of music-stream. > > I hear your concern, but as I understand it the music stream is the closest > that the music data in LilyPond gets to the structure and level of > abstraction of a MusicXML file. (MusicXML 1.0 included no positioning/layout > info, which was then added at 2.0, so in a sense we could follow that > progression as well, targeting 1.0 first.) So that is why people who know > the internals of LilyPond are recommending this approach. > > Especially, Han-Wen: "you would probably have to use some sort of dual > approach, where > you store the stream, label each event, and then you trace back the grobs > during output stage to their originating events. You can use the ordering > from the stream to output the XML elements in the correct order." > > I take it that the music stream has the order that is needed for the XML > file, and that order is no longer present once the stream is converted to > grobs and their positioning is determined. So use the stream's order as the > framework, and then trace the grobs to their originating events in the stream > in order to add positioning after it is determined.[1] > > This approach has the big advantage that you can do a first iteration without > the positioning info and get a lot more benefit for a lot less effort. And > one of the biggest constraints here is the volunteer labor force when there > are a lot of other areas that are being worked on by only a few people. > > One of the key variables is how important is having the positioning data? In > my mind it is not really that important relative to having an export of the > basic musical data. Positioning is icing on the cake. In some cases it may > not be used at all, as with a publisher who will do their own custom > positioning anyway, or in Braille notation. > > That's my understanding at least, but I'm no expert. At any rate, I imagine > that your insights in organizing, identifying dependencies, tasks, etc, might > help. > > Cheers, > -Paul > > [1] After the music stream data goes to the various engravers and is > converted into graphics (grobs). So a note from the input file that has a > pitch and duration is converted into separate grobs of a notehead, a stem, a > flag, etc, and only at that point is the positioning determined in relation > to other grobs. Hence as Mike Solomon said: "there is not a one-to-one > correspondence between events in the music stream and musical objects > created." > > > > > > _______________________________________________ > lilypond-user mailing list > lilypond-user@gnu.org > https://lists.gnu.org/mailman/listinfo/lilypond-user
_______________________________________________ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user