> >>> I was thinking that the output would be a C struct, which should be
> >>> readable by any language. I'd like some input about limitations in
> >>> your favorite language. Linkage is an issue, too. I'm most familar
> >>> with C++ and Windows, so I need to avoid my natural instinct here.
> > <<
> >
> > I'd be against that. The output should be a structured ascii file with
> > keywords and in this case it is simplicity itself to add features and
> > create readers which will still read future versions of the program
> > output.
> >
> > I've given examples in a previous contribution.
>
> The trouble with ascii output is that it's slow to generate, takes up a
> lot of disk space or memory, and slow to read as it has to be parsed
> again.  Also if you're going to use an ascii file you might as well use
> MusicXML, which can express everything in abc (apart from the Hp key
> sig).

There are two possible uses for the output: one is to convert ABC to another
form and save that new form. The other is to convert ABC to the most
convenient form for processing in another module.

Converting ABC to other formats is definitely a useful thing. I think that
we would not want to invent our own format in this case, but convert ABC to
other formats that already have some great programs supporting them. One of
those formats appears to be MusicXML.

The other use for the output is to feed into a module that creates either a
MIDI file or sheet music (or one of a number of different uses). I'm trying
to figure out what format is most convenient in those cases. A linked list
of variable length records appears to be the solution that is most popular.
I also would like to be sure that the widest variety of programming
languages and operating systems can make use of this. That puts constraints
on the structure. If it were only a matter of C++, I'd return a class with a
container for the header, and a container for the elements. Instead, I'll
return some type of flat chunk of memory. I will also write a helper
function in C++ that turns that memory into a container. A VB programmer can
write a similar helper function to read the output as conveniently as
possible.


Paul Rosen
--- Life is a musical, every once in a while
      the plot stops and you start singing and dancing ---
http://home.earthlink.net/~catharsis.music/
http://home.earthlink.net/~theplums/



To subscribe/unsubscribe, point your browser to: http://www.tullochgorm.com/lists.html

Reply via email to