Re: [abcusers] New Software Development

2002-02-28 Thread Laurie Griffiths

Good luck.  Remember to have fun.
Laurie

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



Re: [abcusers] New Software Development

2002-02-27 Thread Jack Campin

 I'm in a software engineering course this semester, and we've decided we'd
 like to go at adding another product to realm of available 'abc' tools.
[...]
 Right now, the idea is based mostly on writing new file format which will
 implement the current standard of ABC.  We want to write our program
 to implement fully, and not expand at all on or deviate at all from the
 specifications of the current standard.  However, we wish to develop a
 new file format which will contain standard abc notation _plus_ layout
 information generated by our program.  Speculatively, we would call it
 something like abl (abc with layout), but we've not gone far as of yet
 to discover what registered existing filetypes are out there.

Why do you need any new format?  ABC already has comment lines, and some
programs use special-purpose comment lines like BarFly's %%Bfly lines
to encode application-specific data.  So why not just put your extra
stuff in %%ABL lines scattered through the source? - that way your
files will just be standard ABC files and any ABC application will be
able to use them.

The effect of adopting a new format would be to limit the use of your
software.  To some extent this already happens: Muse uses a similar
approach to the one you're suggesting, and nobody uses Muse files as an
interchange medium - if the Muse-specific information had been done via
comment lines, other ABC users would be able to use Muse files as is,
and pehaps transmit them onwards to other Muse users.  BarFly has a
similar problem: certain information can be encoded in resource forks,
but as that's totally Mac-specific, nobody ever uses it in a publicly
available ABC file, and there is no easy way for it to be transmitted
from one Mac user to another via a non-Mac system.  (The only thing
I ever do with it is drop my files onto the Res Fork Killer utility
to get rid of it).


 We anticipate using a base 16bit unicode file format

Why?  The only benefit I can see from that would be in extending ABC to
cover non-ASCII character sets, which would be no bad thing but methinks
would need to be done with a bit more consultation.  (Also, it doesn't
make a lot of sense to allow for Arabic or Devanagari script when ABC
isn't yet capable of encoding Arabic or Indian music).


A final point.  One of the core advantages of ABC is concision.  People
who use ASCII-based file formats don't like bloat.  If your software leads
to people being emailed things as pointlessly humungous as Microsoft Word
files or Outlook-generated HTML-tagged text when a few K of plaintext
would do, you're not going to make any more friends than Microsoft have
done.

So you need to keep extra layout data to the bare minimum, and extract
as much formatting information as possible from the ABC itself - e.g.
instead of encoding stem direction for each note individually, use a
heuristic to cover most cases with necessary exceptions marked locally.
BarFly's stemming heuristic (which doesn't let you do anything about
the exceptions :-( ) is correct about 95% of the time, so such a policy
could cut the amount of stem-direction data you need to store by a factor
of 20.

=== http://www.purr.demon.co.uk/jack/ ===


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