Tablature Formats and Conversion (Slightly Techie Article)
Writing guitar tablature and notation is hard work. To start with, you need
to sit at a computer while holding a guitar and lean over to type stuff. With a
dodgy back and neck, this is no fun. It seems a very error prone form of data
entry and I typically do 4-5 revisions on each song before calling it finished.
It takes a long time.
For ease of entering and editing tablature,
Tabledit is a clear winner for me. The
price is very low and they have been accommodating in adding new features. The
finer points of laying out the final published result are available if you take
the time to read the help manual closely.
Finale software has become a standard in publishing circles. Finale is
designed as a general music engraving software product and provides an extremely rich
description of musical information. The trade-off is that Finale may require a lot
of work in order to learn the many features on offer.
A common question on the internet is how to convert one tablature format to
another. I went through this process myself and saved a great deal of time and
effort with the MusicXML file format. The format is relatively new and in time
software support for it will grow. Until then, there are some complications in
using it to get from one format to another. For this entry I'll spare the
details of it all, but just open a thread about this for further chat if people
are interested.
I have notated about 20 tunes using Tabledit and have then had to
convert them to Finale format. Without much in the way of Finale skills, I
wanted to find a way to do most of the data entry automatically. This led me to MusicXML,
a file format developed by Michael Good from
Recordare Music.
Tabledit has the ability to write MusicXML and Finale has the ability to read
MusicXML so in theory everything should be great... but not quite. The problem
is that the different software products have varying underlying ways of
representing music, and focus on their own interpretation of it. There is no
right or wrong about this as sheet music packs so much information into a small space,
with a lot of ambiguous rules about how it should look.
The MusicXML format has been very well designed, to cover just about any
musical expression you might want to put down. Furthermore, as the name suggests
it is based upon a standard data format called XML which is widely used in
software circles now. For the technically minded, there are some links on the
left to learn more about XML and MusicXML.
In my case, I wanted to convert from Tabledit to Finale. Tabledit writes
MusicXML files and you can verify that it reads the music back in correctly.
However, in Finale it is important to separate your music into separate voices,
or "layers" as they call it. For fingerstyle guitar, this usually means one
melody voice with the stems up, and a bass voice with the stems down. Imagine it
from a piano player's point of view, with each layer being a separate hand of
the piano player. Unfortunately, with tunings like DADGAD it is difficult to
separate melody and bass and it becomes a bit of a black art.
The great thing about Tabledit is the freedom of editing, especially the
ability to place notes wherever you like in a measure, without interfering with
any other notes. Tabledit will indicate where errors occur in the timing with
the use of color, and it's perfect when you need to try lots of ways to make a
measure work. Furthermore you can separate the bass and melody parts by forcing
the stem directions up or down for each note. This stem information is present
in the MusicXML file, but is not how Finale interprets the file for deciding
which layer to put notes into. Again, just a different interpretation of the
information.
To cut a long story short, an intermediate process is needed, to read in a
Tabledit MusicXML file, and for each note look at which way the stem is
pointing. Using this, you then write out a new MusicXML file that specifies
which Finale layer each note should appear in. This is done by setting the
<voice> tag in the MusicXML. But there's still a complication here...
When Finale reads in the MusicXML file, it will use the <voice> tag where
possible to assign a note into its correct layer. But it must also consider
timing issues, and as such it will move to the next layer every time the XML
specifies a <back> command. This command is used to keep count of whereabouts a
note lands inside its measure (eg. at 1.5 beats out of 4...). The trick is to
re-organise the MusicXML so that for each measure, there is always exactly one
<back> command. This means the first run of notes goes into layer 1, and the
second run goes into layer 2. All the up-stems go into the first run, then the
down-stems go into the second. There are some problems at the boundaries between
measures, and chords complicate things also. More on that next time.
The great thing about MusicXML is that it is just a text file and the format
is open for anyone to read and understand. If people express interest in this
topic I'll go into more detail about the conversion process. It's a bit of a
geeky topic, apologies to those guitarists who just want an answer. Maybe some
time down the track this will be possible.
Back to the scrapbook page...
|