DemoTabViewer is web platform that can render, store and play Guitar Pro tabulatures in the browser. Built using libraries from the open source TuxGuitar project for reading Guitar Pro files, VexFlow libraries for tablature rendering, Spring Boot for implementing the server part, Postgresql for data storage and MinIo for storing tab files.
- Guitar Pro is the de facto standard for storing guitar tab music.
- VexFlow is widely used for rendering sheet music. It features an extensive library of musical elements, but each measure and symbol has to be created and positioned by hand in Javascript.
- TuxGuitar is a free and open-source tablature editor, which includes features such as tablature editing, score editing, and import and export of Guitar Pro gp3, gp4, and gp5 files.
DemoTabViewer offers an open source solution for digital guitar music viewing, storing and rendering.
- Displays Guitar pro tabs in a browser
- Uses Vexflow for rendering and layout
- Parses most Guitar Pro note effects (Band, Natural/Artificial Harmonics, Palm Mute etc)
- Written with React.js and Vexflow
- Supports only Guitar Pro files below v.5
- Slides / hammer-ons between bars are not supported
- Web version on mobile doesn't renders properly
- To build the project you must have Docker Engine installed
- You can build and run all containers with this command:
docker compose up --build -d - Or build all containers separately:
- backend:
docker build -t server . - frontend:
docker build -t client font-end - postgres:
docker run --name postgres -p 5432:5432 -e POSTGRES_USER=admin -e POSTGRES_PASSWORD=admin -e POSTGRES_DB=tab_viewer_db -e PGDATA=/var/lib/postgresql/data/pgdata -d -v "$(pwd)":/var/lib/postgresql/data - minio:
docker run -p 9000:9000 p 9001:9001 --name minio -v ~/minio/data:/data -e "MINIO_ROOT_USER=minioadmin" -e "MINIO_ROOT_PASSWORD=minioadmin" quay.io/minio/minio server /data --console-address ":9001"
- backend:
