On Tuesday 01 July 2003 7:08 pm, Phil Taylor wrote:

> Sorry, I don't understand what you're trying to say here.
> Are you suggesting that a standard can be developed
> without giving any consideration to what it's going to
> be used for?

Essentially yes.  That's what W3C try to do with their web standards; they are 
trying to create data description systems that are totally device and usage 
independant, so that well written pages can be used in a device independent 
manner (speech readers and so forth are just the beginning).

I think the point is that ABC can be put to more uses than standards writers 
can think of, and if the standards writers are just active software 
developers, then a truly flexible and multi-purpose standard may not be 
attained.  WItness how HTML almost lost its semantic purpose in the face of 
the extension wars between Netscape and Explorer, because the people who were 
approving the standards at Netscape and Microsoft weren't interested in any 
of that; they just wanted to win a features war.

Which leads me nicely onto my thoughts on the subject...

It seems to me that their are several different competing uses for ABC as it 
stands.

There are the simple folk tune-swapping uses, where people even jot down ABC 
on scraps of paper (anyone else seen this practice, incidentally?); there are 
folk like Guido, who are trying to develop ABC into something that can take 
on Lilypond.  Us pipers could reel off (no pun intended) a dozen ideas that 
would make ABC easier for us, the early music people have their enhancements, 
and the microtonalists have been shoving their foot in the door as well.  
>From beginnings as a symbolic representation for diatonic music, ABC is 
becoming a tool for many diverse kinds of musician.

When you try and incorporate all these enhancements and not break backwards 
compatability, you end up creating a Frankenstein's monster (those who saw my 
attempt at typesetting piobaireachd will be nodding their heads here).

What I think is needed is a core language, (perhaps; this is an example only!) 
essentially ABC+ as implemented by abcm2ps.  On top of that, build some kind 
of scripting and pre-processing system with vast power.  Then take over the 
world.  Buahahaha.

Here's a sort of psuedoexample, in a kind of CSS(ish) notation, for the 
microtonal stuff that was discussed earlier:

"!#\n" { // Insert !#nn where nn is 1-6 for a range of pitch bend symbols
switch n
case n=1
  {
  draw
    {
    //draw routine
    }
  sound
    {
    post_associate; //associate symbol with note after it
    pitch_bend(10 cents)
    }
case n=2
    {
    blah blah.  OK, perhaps a switch isn't the best way to do this, but never 
    mind
    }
  }

This isn't too far away from what some of us do with abcm2ps, adding lots of 
PostScript to create whatever it is our twisted needs demand.  The difference 
is this is designed to be extensible and comprehensible by different 
software.  The idea is that MagicABCPlayer doesn't pay any attention to the 
drawing instructions, and abcm2ps couldn't care less about what the pitch 
bend for the !#3 symbol is.

There could be a standard library of routines for different users; I'm 
thinking:

#include<bagpipe>

and then instead of the standard ABC notation, we have a slightly simplified 
notation for pipers, where we use nine unique letters, and have capitals 
represent gracenotes:

a2 GDGEa>b HCDcEa

where we use H, I for high G and high A.  There could be a 
#include<bagpipe_BMW> for refugees from that hideous pipe-music typesetting 
software.  It would be *really* cool to have an #include<binneas> mode (three 
line staff in multiple colours)

There might be an #include<microtones>.  #include<bowings>, for fiddlers.  
#include<guitar_tab> would let music renderers like abcm2ps draw tab 
directly.  Got any ideas of your own?

This is thinking out loud sort of stuff, but I would suggest it offers a 
powerful way forward.

Some questions:

What is the purpose of ABC?  If the standard is too broad or too narrow, 
either ignoring V:,w:, or breaking existing implementations badly, then it is 
hardly any standard at all, as authors in HTML 3.2 might recall.  

Is it a description language, simply designed to describe monophonic melody 
lines, or maybe polyphony, if we push it?  Or is it a typesetting language, 
needing powerful customisation facilities?  Should we give up and say; this 
is silly.  You microtonalists should go and develop your own system, our's 
wasn't designed for the likes of you?  It's an option, though not one I think 
we need take too seriously.

If ABC is to be a serious attempt and contender at a come-all-ye, I think it 
needs some kind of ability to build powerfully beyond:

X:0
T:A Traditional Reel
agfa f2 ec | dcBd A2 Ac...

I know the quickfire response to this is "Well then, get writing!"  I'm no 
coder (Dilbert fans can call me the ideas rat), nor do I have a clear idea of 
exactly how what I'm driving at should work, though the above is a starting 
point.  There are better minds than mine on this list, and they can probably 
see better ways of doing something like this.

Hoo boy, that's a lot of waffle.  I'll sign off there.

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

Reply via email to