Before we get down to business, here is a quick video demo of what our applicaiton can do.
https://www.youtube.com/watch?v=QMvCKka3bOA
1.1 Product Name and Intended Use
TAB2XML is a tool designed to convert musical tablature in a text format into MusicXML, a popular open-source file format used for exchanging digital sheet music. TAB2XML is a java-based application that is currently actively supported, with more features being added every week.
1.2 Features of Product
This product is able to convert tablature of following instruments: Guitar, Drum, Bass.
Note: Since the product has not been implemented fully, instruments that the product can convert are limited, as of now. Reference How to Use.
Available Disk Space | 50 MB |
RAM | 256 MB |
Java version | Java 15 |
Operating System | Windows, MacOS, any platform with gradle |
TAB2XML is built as a Gradle project and thus should work on any IDE of your choice. However, we will only go over how to run the program using the IntelliJ and Eclipse IDE.
3.1 IntelliJ
-
We first need to clone the project from the online GitHub repository onto our local device. To do that, first open IntelliJ. At the top right, select File > New > Project from Version Control.
-
This will direct you to a window which prompts you to enter a repository URL. Enter the link https://github.com/Stan15/TAB2XML as the URL, and select a directory where the project should be saved.
-
Once the project opens, click the Gradle toolbar on the right side of your screen.
-
When the toolbar opens, click Tasks > build, and then right click “build” and the following dialog should pop up. Click “Run TAB2XML [build]”.
-
Finally select Tasks > application, and then right click the run task and select Run ‘TAB2XML [run]’. The program will now launch.
3.2 Eclipse
Watch this short video on how to run the program using eclipse. The video is more up to date. The outdated instructions will be updated soon.
-
Like with IntelliJ, we want to clone the project from the GitHub repository. To do this, we select File > Import.
-
This will take you to a new window like the one below. Under the Git folder, click Projects from Git (with smart import).
-
This will take you to a window where you are prompted to input a URI. Paste in the link https://github.com/Stan15/TAB2XML and click proceed with the steps (clicking next) until you see the finish button. Click on that.
-
Now we have imported the project onto our local device, we want import it again as a Gradle project. Repeat step 1. When you get to the view shown in step 2, instead of clicking projects from Git, click Existing Gradle project. Proceed till you come to this page.
-
Specify the path of the Git project you cloned in the previous steps and click finish.
-
Click on the “Gradle tasks” icon on the right of your screen
-
Double click on the Gradle “build” task at TAB2XML > build > build.
-
Finally, click on the run task on TAB2XML > application > run.
-
When you run the program, you will be able to see a text field at the center of screen (Figure1). This is where you paste in your tablature txt file.
-
To put your input, click file-open and choose your file, or copy and paste your text file in text field.
-
Once you put your text input, the system identifies errors in your input if any exists, and it notates them using a color-coded highlighting system.
There are 4 levels of highlighting:
i. Red highlight: This is used to identify errors which may critically affect the output of the conversion.
ii. Yellow highlight: Errors with this highlight are less critical, but we do not guarantee an accurate output with these errors.
iii. Grey highlight: This highlight is used to identify content which may have little to no effect on the output.
Detailed below are a few examples of different error highlighting scenarios:
-
Grey highlight: “This text can’t be understood.” (Figure 2). This is used to identify text which were not identified to be a score object (i.e measure, note, repeat instruction, e.t.c.)
-
Yellow highlight: “A guitar measure should have 6 lines.” (Figure 3). As a warning, if you get such an error on a measure which seems to be accurate, make sure no text is written on the side of the measure as this makes the system identify it as two different measures. Reference the Input Requirements section of this manual for more information regarding this.
-
Red highlight: “This annotation is either unsupported or invalid” This is used to identify elements which are either not supported or not identified as valid measure annotations.
Note: There are more error scenarios which may occur, but they are all categorized into the three groups identified above.
- For a more accurate output, be sure to resolve any errors highlighted red or yellow. The grey errors can usually be ignored without consequence.
How to resolve errors:
- Be sure the number of lines of instrument is right.
- Remove all unrecognizable notations in tablature and replace with dash ‘-’.
- Remove all text placed around measures, except for measure instructions (time signature and repeats)
How to resolve errors: instructional video: https://drive.google.com/file/d/174oWzswHkvnTvyask_AUpYKRjKmuz3_m/view?usp=sharing
- Be sure the number of lines of instrument is right.
- Remove all unrecognizable notations in tablature and replace with dash ‘-’.
- Remove all texts which is placed around score bars except for key notation.
- (How to fix instruction video: https://drive.google.com/file/d/174oWzswHkvnTvyask_AUpYKRjKmuz3_m/view?usp=sharing
Note: If you removed all yellow and red highlights, the score is ready to be converted. However, if there are no yellow or red highlights in the score, you can skip this step.
Title – You can set the title of song.
Artist – You can set the artist name.
File Name – You can name your file.
Note: Not all functions have been implemented. Updates will roll out gradually.
If you set all of them, click save button.
- If you set all of them, click save button. Navigate to the location where you want to save your converted file and save it. You can also change file name (Figure 6).
This program allows for the application of repeats and time signatures to individual measures. Here, we will go over the input restrictions governing these features.
For instructions in general, the following requirements are outlined:
- For a line to be interpreted as having instructions, it must only be composed of valid instructions separated by spaces and nothing else.
- The ‘tab’ button should not be used in your instruction lines as this might result in the system not applying the instructions to the correct measure.
- For your instructions to be recognized, the line directly below the instruction line must be a measure line or another instruction line (instruction chaining is allowed).
- Lines of instructions are chained by connecting the lines by one new line.
- The order of priority for applying instructions is left to right, up to down.
Repeats: For repeats, the following input requirements must be followed for repeats to be correctly applied
-
Repeats must start and end with a vertical bar, and can have any combination of spaces or dashes “-“ in-between, as seen below.
-
Repeats can be notated in any one of the three below stated ways.
Time Signatures:
- The list of possible time signatures has been artificially restricted to the following generally accepted time signatures: 2/4, 2/2, 3/8, 3/4, 4/8, 4/4, 4/2, 6/8, 6/4, 9/8, 9/4, 12/8, and 12/4.
- If an invalid time signature is provided, the following error is received:
- The default time signature is 4/4 if no time signature instruction is provided.
- Time signatures with a beat or beat count consisting of three or more values are not recognized as instructions and will make the line of instructions invalid.
Note Player:
You can also select measures and play them through our note player:
|
5.2 Guitar
Some sample tablature text files that meet the below requirements can be found in the project folder in the directory TAB2XML/src/test/resources/test_tab_files. The tablature file input into the program must meet the following requirements:
- A measure must start with a vertical line after the string name.
- you may not have text by the side of a measure which itself is not a measure.
Note: System does not guarantee an accurate output if measure collections do not contain blank line dividing’s, and if they do not have clear line names specified. (i.e string names/drum names).
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.