I have been following the "abcusers" group on yahoo and am waiting until the next set of standards are hashed out before changing it (unless it is a simple fix to a bug). In the meantime, characters the script can't interpret are inserted into a blue text message below the staff. As legal (or the stuff I can implement thus far) constructs are found and processed, they are removed from the front end of a long string. The script looks for anything implemented and, if it finds it somewhere other than at the front end of the string, that location is saved. If some other construct is found closer to the front, the saved location is replaced. If it's an error, the script will know how many characters to put in the error message and to skip before processing again. Note what happens when an e is replaced with joker in the following:
X:1
T:Speed the Plough
M:4/4
C:Trad.
Q: "Allegro" 1/4=132
K:G
|:GABc de(dB)|de(dB) djoker(dB)|c2ec B2(dB)|c2A2 A2(BA)|
GABc de(dB)|de(dB) de(dB)|c2(ec) B2(dB)|(A2F2) G4:|
|:g2(gf) gdBd|g2f2 (e2d2)|c2ec B2dB|c2A2iii (A2df)|
g2(gf) g2(Bd)|g2f2 (e2d2)|c2ec B2dB|A2F2 G4:|
The measure with the error is:
!NoteWorthyComposerClip(2.5,Single)
|Note|Dur:8th|Pos:2|Opts:Stem=Down,Beam=First
|Note|Dur:8th|Pos:3|Opts:Stem=Down,Beam
|Note|Dur:8th,Slur|Pos:2|Opts:Stem=Down,Beam
|Note|Dur:8th|Pos:0|Opts:Stem=Down,Beam=End
|Note|Dur:8th|Pos:2|Opts:Stem=Down,Beam=First
|Text|Text:"jok"|Font:StaffBold|Pos:-8|Wide:Y|Color:3
|Note|Dur:8th|Pos:3|Opts:Stem=Down,Beam
|Text|Text:"r"|Font:StaffBold|Pos:-8|Wide:Y|Color:3
|Note|Dur:8th,Slur|Pos:2|Opts:Stem=Down,Beam
|Note|Dur:8th|Pos:0|Opts:Stem=Down,Beam=End
!NoteWorthyComposerClip-End
The error message should help you find the problem (it's the first thing in the string) and tell you how long it is (last line) unless there are more than three errors.
Send me a copy of the file you are trying to read via PM and I'll see what I can do.