Hi there!

I'm quiely working on the "generic parser" for ABC, the lack of news is caused by my very short spare time!

I accepted the suggestion about adding another level of parsing. After recognizing, say, a L: field, the a function parses the field and extract the numerator and denominator of the length.

The information are stored in a binary packed format and functions (will) exist to access the parsed data more easily (for example: abcKeyTonic(x) or abcVoiceName(x)).

This extra step is only performed if needed (i.e. only if one of the above mentioned funcionts are called).

Adding the capability of recognizing a new field, a new decoration or a new extrafield should be very simple, most of the time is a matter of adding a string somewhere and recompile.

As for speed I've used two techniques: scanners written using re2c (that is reported to be much faster than lex and almost as fast as an hand written scanner) and a perfect hash function that speeds up searching for a specific string (for example "pizzicato" or "tenor").

So far the parser can recognize

- All the fields (both in the form "Y:.." and "[Y:...]")
- All the extended fields listed by the 2.0 draft plus others like "deco" or "postscript"
- Optional accidents (for example: (^)F)
- Microtones a la abcm2ps: ^3/4F
- slurs and ties direction (as abcm2ps again)
- Text before or between tunes
- extended clefs support: "tenor", "mezzo", "Doh", "bass4" and others are recognized
- all decorations in the draft plus others like "ped" , "8va(" and "8va)", ...


In general I've read CMN, Lylypond and MUP manuals to try to incorporate some of their features.

Don't be fooled by the descriptions above! Much work is still to be carried out and I really need to throughly test everything before releasing it.

I would appreciate if someone could share with me a set of abc file to be used as test suite. I remember someone mentioned the fact he was working on something similar.

  R.D.

P.S. Please, can someone acknowledge this message? I fear the list is still not working properly!

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

Reply via email to