Skip to content

Native Guitar Pro Import

Native Guitar Pro Import

Guitar Prometheus reads three Guitar Pro source formats directly:

ExtensionOriginContainer
.musicxmlGuitar Pro 8 exportPlain XML
.gpGuitar Pro 7 / 8 nativeZIP archive with GPIF XML
.gpxGuitar Pro 6 nativeBCFZ-compressed BCFS

You can drag any of these into the app or open them via File → New Project…. The dispatcher picks the right importer based on the file extension.

What carries over

The native importers share the same GPIF reader as Guitar Pro 8’s MusicXML export — so the recognised technique vocabulary is the same regardless of source.

TechniqueMusicXML.gp.gpxNotes
Palm mute
Let ring
Hammer-on / pull-offDirection inferred from pitch
Slide (shift / legato)Span technique
Slide in / outPer-note variants
AutoSlideGP-only “host-decides-direction” slide-in
BendSingle-note tag (curve not yet modelled)
Vibrato
Tremolo pick
Tap (RH / LH)
Natural harmonic
Pinch / artificial harmonic
Pick scrapeGP encodes via slide flag 0x40 / 0x80
Thumb slap / popBeat-level for bass parts
Dead note / finger pluckSuppressed on pick-scrape notes (GP quirk)

Format-specific notes

.gp (Guitar Pro 7 / 8)

A .gp is a standard ZIP archive. The importer extracts Content/score.gpif (XML) and feeds it to the shared GPIF reader.

.gpx (Guitar Pro 6)

A .gpx uses Guitar Pro’s BCFZ-compressed BCFS sector filesystem (ported from alphaTab’s reference implementation, MPL-2.0 attribution preserved). The importer:

  1. Decompresses BCFZ. Declared decompressed length is capped at 256 MB — any forged file claiming more is rejected before allocation.
  2. Walks the BCFS sector table (4 KB sectors) to find score.gpif.
  3. Hands the XML payload to the shared GPIF reader.

Tuning

For tab parts, Guitar Pro emits <Tuning> properties under each <Track>. GP7 / 8 places this under <Track><Staves><Staff><Properties>; GP6 places it under <Track><Properties>. Both are accepted; first hit wins.

The captured tuning lives on Part::tuningMidiPitches (low-string-first MIDI pitches). Per-string capture means later passes can do string-aware octave correction.

When something doesn’t import

The parser surfaces warnings via the UnknownTechniquesBanner at the top of the app. If a Guitar Pro extension shows up that the importer doesn’t recognise, the banner shows the unknown element name (e.g. “unknown GP processing-instruction element: invented-articulation: 3×”).

The score still imports; only the unknown technique drops. You can:

  • File a feature request with the technique name (the banner’s text is enough).
  • Add a manual technique override via the profile editor — the per-part override flow lets you map an arbitrary keyswitch onto a note.

Round-tripping through a .gpproj

When you save a .gpproj, the source payload is embedded along with a SourceFormat tag (MusicXml / Gp / Gpx). All three formats round-trip cleanly through save / reopen — opening a project re-runs the appropriate parser against the embedded bytes via ScoreImporter::importMemory. Your track bindings, tempo overrides, and export config travel with the project regardless of source format.