Skip to content

ahopk127/eecs2311-tab2xml

Repository files navigation

About TAB2XML Release 1.0.0

This is an application that converts text tablature to MusicXML, created as a project for EECS 2311 at York University in 2021 Winter.

It is fairly easy to use, but a full user manual can be found at ./Documentation/manual.pdf.

System Requirements

  • Works on all major operating systems
  • Java version 11-15

Tools Used

  • antlr4 version 4.9.1
  • FlatLaF Look and Feel for Swing

Basic Usage

For full instructions as well as installation instructions, please see the user manual.

  1. Input your text tab into the text box or press “Load From File” to load a text tab to a file.
  2. Press “Convert and Save” to convert the tab to MusicXML and save the output to a file.

Screenshots

The main interface
./Screenshots/main-interface-tabbedview-1.0.0.png

Entering a text tab
./Screenshots/sample-inputs-tabbedview-1.0.0.png

Text tab converted (as of 2021-03-17)
./Screenshots/converted-20210413-tabbedview.png

The above MusicXML rendered in MuseScore 3.6.2
./Screenshots/converted-20210413-musescore.png

Supported Features

You can find a sample of supported tabs here.

General

  • Conversion of tabs
  • Input and output to file (including saving the input)
  • Ability to edit input
  • Ability to narrow down input to one or more measures (for editing)
  • Ability to set metadata such as title and time signature (the latter is on a per-measure basis)
  • Ability to view the converted output XML before saving

Guitar/Bass Tabs

supported features

  1. hammer-on notations
  2. pull-off notations
  3. grace notes
  4. repeated measures
  5. hammer-on/pull-off combination sequences
  6. chords
  7. in-line comments
  8. multiline comments

Drum Tabs

supported drum types notation

  1. BD - Bass Drum 1
  2. Bd - Bass Drum 2
  3. SS - Side Stick
  4. SD - Snare
  5. ES - Electric Snare
  6. FT - Low Floor Tom
  7. HH - Closed Hi-Hat
  8. Ft - High Floor Tom
  9. PH - Pedal Hi-Hat
  10. LT - Low Tom
  11. OH - Open Hi-Hat
  12. LM - Low-Mid Tom
  13. MT - Hi-Mid Tom
  14. CC - Crash Cymbal 1
  15. HT - High Tom
  16. RD - Ride Cymbal 1
  17. Ch - Chinese Cymbal
  18. RB - Ride Bell
  19. TA - Tambourine
  20. SC - Splash Cymbal
  21. CB - Cowbell
  22. Cc - Crash Cymbal 2
  23. Rd - Ride Cymbal 2
  24. HC - Open Hi Conga
  25. LC - Low Conga

Sample Tabs

  • chords:
e|-----2--------|-----2--------|--0-----3--0--|--------------|--2--------0--|
B|--------------|--------1-----|--0-----0--3--|--------------|--------1-----|
G|--------------|-----------0--|-----------2--|-----2--2--4--|--------------|
D|-----------2--|-----0--------|--2--2--------|-----0--4-----|-----2--------|
A|--3--------2--|--0--------2--|--------------|--0-----2-----|--2--------0--|
E|--0--0--------|--------------|--------------|--------------|--------------|

e|--------2--3--|--------------|-----------3--|-----2--------|--2-----------|
B|--3-----3-----|--3--0--3--0--|--------1--0--|--------------|--------1-----|
G|-----------2--|--------4-----|-----------0--|--2-----2-----|--------------|
D|-----------2--|--4--------0--|--------------|-----------2--|--4-----------|
A|--------------|--0-----------|--------------|-----------0--|--------------|
E|--------3--0--|-----3--2-----|--0-----------|--------3-----|-----------3--|
  • binary actions: hammer-on/pull-off/slides:
E|--8h10p8---6---5---3---6h5-10p9-12s10-13p12-|-15p12-10p9-12s10-6p5-8p6---0---------|
B|-----------8-------5------------------------|--------------------------8---3---2---|
G|-------0-------3--------------10s11---------|--------------------------------3---2-|
D|--------------------------------------------|--------------------------------------|
A|-----------------------0--------------------|--0-------------------------------0---|
D|--------------------------------------------|--------------------------------------|

Corresponding rendered XML (via OpenSheetMusicDisplay)

Sample Output Chords ./Screenshots/sample-output-chords.png

Sample Output Binary Actions ./Screenshots/sample-output-binary.png

Discrepancies

  • There are some ambiguities with token recognition and the GUI will reflect this.
  • The program currently only supports using one text tab at a time.

Copyright

Copyright (C) 2021 Adrien Hopkins, Amir Mohamad, Edward Hickman, and Sayed Mohammed.

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.