Richard Robinson writes: > >abc2mtex did something with it, didn't it ? But I forget the details. >
Yes, as a matter of fact, it did. I was just thinking that what goes around, comes around, since this is now appearing once again. (By the way, there's no worry about backward compatibility here---not that anyone is worrying about compatibility with abc2mtex anyway---for it was just a hack to make multistaff music possible at that time, and it was soon obsoleted by the V: field. If more than ten people in the world ever used it, I'd be surprised.) Phil Taylor writes: > I> see - it's a MusicTex function then, rather than part of abc2mtex? > Well...it is and it isn't. The "&" is part of musixtex, and the "&&" is part of abc2mtex, (which of course translates it into something different in musixtex.) It worked the following way: if one had three voices, say, then the command "&" would toggle the voices in turn, i.e. <notes1> & <notes 2> & <notes3> would give the notes in the first voice, the parallel notes in the second voice, and ditto in the third. (But an additional "&" would *not* send it back to the first voice---that might be ok for machines, but for humans it's a guaranteed disaster...it would take no time to get completely lost in the voices.) In fact, there was another mechanism for that, which was a start/stop operator, &&. With this, the above would actually be written && <notes1> & <notes 2> & <notes3>&& The second && resets it to the first voice. Admittedly, when we talk about voice overlay, we are talking about something slightly different from the above. In abc2mtex, the voices were pre-defined in the header, just as the V: field is now. I'll call such voices "globally defined." So abc2mtex used it for globally-defined voices. The & operator is now being suggested instead for what I might call "locally-defined voices," or even "implicitly-defined voices," voices which appear suddenly, then disappear after a couple of bars, without ever being defined by a V: field. [Of course it's probably used for other purposes, too...] I have used this machanism a couple of times with abc2mtex---but no more often than I absolutely had to. (Tried it, didn't like it.) The problem is that it is extremely difficult to proofread and correct. I could find a mistake in the staff output, but re-finding it in the abc was another problem. Like as not, I'd end up correcting the wrong notes. And this was with only two voices. Once you've used the & character a few times, it's difficult to sort thru all of them to find the spot that you're after. From the number of posts in this thread, it looks as if this is a good feature, and probably deserves some thought, so let me make a couple of observations. From my experience, I'd say that the operative thing here is ease of proofreading and correcting, even more than ease of either writing or reading. For instance, the 2.0 standard says that one should start the overlay at a barline. However, this might force one to extend the segment further than absolutely necessary, particularly if the barlines are sparse. The longer the segment, the harder the proofreading. I'd suggest adding a start/stop character, making it possible to start and end in the middle of a measure, and to continue across barlines. In abc2mtex, it's "&&"; abcm2ps suggests "(&" and "&)" for that, and uses "&&" for something else. I like that, since the pren tells you if it's the start or end of a segment, and that simplifies finding the critical place in the abc. A couple of questions. If I read the abcm2ps documentation correctly, it's possible to have two implicitly-defined voices on each staff (making three voices in all) one gotten with "&" and the other with "&&." (The limitation seems to come from the need to distinguish voices by note-staff directions.) Is there any need for more than this? The abcm2ps documentation mentions the problem of distinguishing "(&" from the beginning of a slur, but is that a real problem? Can't one just treat "(&" as a special case like "(3" for a triplet? If it should be absolutely necessary to have a slur just before an "&", then add a space between them: "( &". (Of course, there remains the question of whether that slur applies to one voice, or to all. Hey---that's someone else's problem.) Cheers, John Walsh To subscribe/unsubscribe, point your browser to: http://www.tullochgorm.com/lists.html