There is a complication here that I don't think anyone has addressed. By defining "Allegro" as 1/4=120, whether this is done in the playback software or in abc, you are assuming that "Allegro" is always based on a quarter note beat. Therefore, alla breve allegro, with a half note as the beat, would play back at 60 beats per minute. 6/8 allegro, with a dotted quarter as the beat, would play back at 80 beats per minute.
One possible solution: Allow a different "Allegro" to be defined for each meter. 1/4=120 in 4/4 would not conflict with 3/8=120 in 12/8. One problem with this is that the list of "Allegro" definitions could grow very large (and still would never be comprehensive). Another problem is that in some meters, particularly compound meters, the value of the beat is not always obvious. For instance, 3/8 time can be counted with three eighth-note beats to the measure, or with a single dotted-quarter beat. Another possible solution: Define "Allegro" as simply "120". Then each piece that uses "Allegro" must explicitly state what its "beat" is. It's probably not safe to rely on the L: field for this, but the M: field is a possible candidate, e.g. "M:6/8 beat=3/8". The problem with this is that there are some meters in which the beat is not necessarily constant (e.g. 7/8 or 5/8). There may be some cases in which neither 1/8=120, 1/4=120 nor 3/8=120 would be an appropriate "Allegro". Yet another possible solution: Limit the scope of any "Allegro" definition so that such conflicts would never occur. This would probably narrow the scope to the current meter in the current piece/movement, which would render symbolic tempo definitions all but useless. Which leads to the final option, which is to regard the idea of symbolic tempo definitions as hopelessly complex, and abandon it altogether. :-) John To subscribe/unsubscribe, point your browser to: http://www.tullochgorm.com/lists.html