TAB2XML
Converts text-based music tablature to playable sheet music. Made in a group project at York University using Java.
Image Gallery
Click on an image to read more about it.
Converting Tablature with TAB2XML
This shows how a user would input music tablature (by copying and pasting plain text) and viewing the output sheet music.
TAB2XML Tablature Input
This is the window where the text-based tablature is entered. Clicking the "Preview Sheet Music" button in the bottom-right will open the sheet music preview window. The specific tablature in this image produces the guitar sheet music that is shown earlier in this image gallery.
Previewing Guitar Sheet Music
This is a complex example of the type of guitar tablature than can be parsed and previewed by TAB2XML.
Previewing Drums Sheet Music
This is a complex example of the type of drum tablature than can be parsed and previewed by TAB2XML.
Previewing Bass Sheet Music
This is an example of the type of bass tablature than can be parsed and previewed by TAB2XML.
Project Overview
TAB2XML was a project for a software development course at York University. The previous semester's class wrote a program to convert text-based music tablature to MusicXML format. My team and I (five students including myself) were tasked with extending this program to dynamically display the result as sheet music and to play it.
This project is written in Java with the JavaFX library for the GUI. We also used Gradle for managing dependencies. The size of the project required my team and I to effectively use Git to manage our contributions and branches.
Features
My team and I were able to mostly complete all of the tasks set out. Our program dynamically generates sheet music from tablature for guitar, bass, and drums. It even handles complex music concepts like changing time signatures, tied notes, grouping notes with beams, and more.
We were also able to add playing functionality for all the instruments; whenever the sheet music is generated, it can play it too. However, It is lacking more complex control over the playing, like starting at a certain location in the score. It also has some bugs with the separate threads used for playing and viewing.
TEST