slundi/guitarpro

Parse and write Guitar pro files with this rust library

Rust

48

196 commits

updated Aug 28, 2026

See the code

README

Guitar Pro Tools

A comprehensive suite of tools for parsing, manipulating, and visualizing Guitar Pro files in Rust.

Project Structure

This workspace is divided into several crates:

  • lib (guitarpro): The core library to read and write Guitar Pro files (GP3, GP4, GP5, GPX, GP7) and MuseScore files (MSCZ). It provides a unified data model for musical scores.
  • cli (score_tool): A command-line interface to inspect files, view metadata, and generate ASCII tablatures.
  • web_server: (Experimental) A web server to search and browse music scores through an API.

Supported formats

FormatReadWriteNotes
.gp3 / .gp4 / .gp5High-fidelity legacy binary
.gpx (GP6)BCFZ/BCFS container
.gp (GP7+)ZIP container with GPIF XML
.mscz (MuseScore 4.x)ZIP container with MSCX XML — see docs/Roadmap-mscz.md
MusicXML (.xml / .musicxml)Score-partwise and timewise

Features

  • Multi-format support: GP3/GP4/GP5, GP6 (.gpx), GP7+ (.gp), MuseScore (.mscz), MusicXML.
  • Rich Data Model: Exhaustive representation of tracks, measures, beats, notes, and musical effects.
  • ASCII Visualization: Generate text-based tablatures directly from the CLI.
  • Extensible Architecture: Module-based design with traits for easy extension.

Usage

To get started with the CLI, run:

cargo run -p cli -- --input path/to/song.gp5 --tab

Inspect a MuseScore file:

cargo run -p cli -- info -i path/to/song.mscz
cargo run -p cli -- mscz list -i path/to/song.mscz

Roadmap

Library

  • Refactor core into model, io, and audio modules.
  • Comprehensive trait-based API for Song operations.
  • High-fidelity GP5 parsing.
  • Initial support for GP6/7 (.gp/.gpx) formats.
  • MuseScore (.mscz) read / write / conversion — see docs/Roadmap-mscz.md.
  • Full RSE (Realistic Sound Engine) data parsing.
  • Export to MIDI/Audio.

CLI

  • Basic metadata inspection.
  • ASCII Tablature generation.
  • Batch conversion (score_tool convert).
  • MSCZ archive tooling (score_tool mscz list / extract / thumbnail).
  • Advanced search and filtering.

Documentation

License

This project is licensed under the MIT License.

guitar
guitar-pro
library
rust
tablature
tabs

Contributors

slundi

176 commits

AlexandreCrevel

17 commits

EricSolshkov

3 commits

slundi/guitarpro

Parse and write Guitar pro files with this rust library

Rust

48

196 commits

updated Aug 28, 2026

See the code

README

Guitar Pro Tools

A comprehensive suite of tools for parsing, manipulating, and visualizing Guitar Pro files in Rust.

Project Structure

This workspace is divided into several crates:

  • lib (guitarpro): The core library to read and write Guitar Pro files (GP3, GP4, GP5, GPX, GP7) and MuseScore files (MSCZ). It provides a unified data model for musical scores.
  • cli (score_tool): A command-line interface to inspect files, view metadata, and generate ASCII tablatures.
  • web_server: (Experimental) A web server to search and browse music scores through an API.

Supported formats

FormatReadWriteNotes
.gp3 / .gp4 / .gp5High-fidelity legacy binary
.gpx (GP6)BCFZ/BCFS container
.gp (GP7+)ZIP container with GPIF XML
.mscz (MuseScore 4.x)ZIP container with MSCX XML — see docs/Roadmap-mscz.md
MusicXML (.xml / .musicxml)Score-partwise and timewise

Features

  • Multi-format support: GP3/GP4/GP5, GP6 (.gpx), GP7+ (.gp), MuseScore (.mscz), MusicXML.
  • Rich Data Model: Exhaustive representation of tracks, measures, beats, notes, and musical effects.
  • ASCII Visualization: Generate text-based tablatures directly from the CLI.
  • Extensible Architecture: Module-based design with traits for easy extension.

Usage

To get started with the CLI, run:

cargo run -p cli -- --input path/to/song.gp5 --tab

Inspect a MuseScore file:

cargo run -p cli -- info -i path/to/song.mscz
cargo run -p cli -- mscz list -i path/to/song.mscz

Roadmap

Library

  • Refactor core into model, io, and audio modules.
  • Comprehensive trait-based API for Song operations.
  • High-fidelity GP5 parsing.
  • Initial support for GP6/7 (.gp/.gpx) formats.
  • MuseScore (.mscz) read / write / conversion — see docs/Roadmap-mscz.md.
  • Full RSE (Realistic Sound Engine) data parsing.
  • Export to MIDI/Audio.

CLI

  • Basic metadata inspection.
  • ASCII Tablature generation.
  • Batch conversion (score_tool convert).
  • MSCZ archive tooling (score_tool mscz list / extract / thumbnail).
  • Advanced search and filtering.

Documentation

License

This project is licensed under the MIT License.

guitar
guitar-pro
library
rust
tablature
tabs

Contributors

slundi

176 commits

AlexandreCrevel

17 commits

EricSolshkov

3 commits

Languages

Rust

92.1%

TypeScript

5.0%

HTML

2.2%