TabXML Experiments

Frans Wiering, 8 July 2004, links updated 26 August 2011

Purpose

TabXML is an XML-ed form of Tim Crawford's Tabcode. Tabcode is used to encode lute tablatures, for example in the ECOLM project. The purpose of rendering Tabcode in XML is to be able to encode complex features of tablature, to extend Tabcode with textcritical markup, and to be able to add metadata.

Procedure

The examples below demonstrate the stepwise conversion of a Tabcode fragment into TabXML and then into Finale, so that the tablature notation can be viewed.

  1. Tabcode example from the ECOLM website: William Barley's setting of John Dowland's Lachrimae Pavan; the ECOLM website also contains a modern tablature version generated from this.
  2. TabXML phase 1, automatically generated from Tabcode by a Perl program.
  3. TabXML phase 2, partly generated by another Perl program. Textcritical markup (<sic> and <supplied>, borrowed from TEI) was manually added.
  4. MusicXML, automatically generated from TabXML phase 2. First, a PERL program does the necessary calculations and adds the result to the XML using DOM methods. Then, textcritical markup is processed with and XSLT sheet, and finally, another XSLT sheet does the actual conversion.
  5. Finale MUS file, generated by Finale + Dolet Plugin.
  6. Graphics and MIDI file, generated by Finale.