Steven Bennett wrote: >ABC is *both* a musical notation format, and a computer standard. At least >according to the docs, and the history of this thing, it developed as a >means of writing tunes in a format that could be understood and printed by a >computer, and that appears to be it's primary purpose. If you want to write >something that's readable primarily by humans, there are already plenty of >non-computer notations to do it in.
Well, no. Actually Chris Walshaw invented abc when he was on holiday in France, encountered some French musicians with interesting tunes, and lacked manuscript paper to write them down. So he just wrote the names of the notes along with a multiplier for the length as necessary, and a bit of header information required to read the rest. Later, faced with a pile of scraps of paper with tunes written in text he wrote the first version of abc2mtex as a way of converting this material to conventional musical notation. So it definitely started life as a musical notation, and computer considerations came later. To return to the original suggestion in the title of this thread, it has been suggested many, many times before. One of the first postings I ever made to this list (or was it the developer's list?), made exactly the same suggestion - for goodness sake lets write the version of abc used in this file at the start so programs know what they have to deal with. It's a great idea, but it won't work because: (1) The fundamental unit of abc data is not the file, it's the tune. Tunes get pulled from their original files and added to new files all the time. There are large and important collections on the web which are archives of various mailing lists, thousands of tunes coming from hundreds of contributors. Frank Nordberg has an archive of tunes posted to this list (are you going to add your transcription of Guitar Boogie, Frank?). John's Tune Finder pulls tunes from their original files (although I believe it will get the whole file on request). So the identifier would have to be added to individual tunes to be useful, rather than go in the file header. (2) A surprisingly large proportion of users type their abc directly in a text editor. There's no way you can make these people include the identifier. They mostly won't bother, and if their software enforces it they'll prefer to use a program which doesn't. If you really want to write an abc parser, you will have to get your head round the idea that abc is not a computer language, it's a natural language (albeit a very simple and regular one, with very few dialects). It makes writing a parser a much more interesting task. If you want an easy (to the point of being boring) job, write a MusicXML parser. Phil Taylor To subscribe/unsubscribe, point your browser to: http://www.tullochgorm.com/lists.html
