Native Guitar Pro Import
Native Guitar Pro Import
Guitar Prometheus reads three Guitar Pro source formats directly:
| Extension | Origin | Container |
|---|---|---|
.musicxml | Guitar Pro 8 export | Plain XML |
.gp | Guitar Pro 7 / 8 native | ZIP archive with GPIF XML |
.gpx | Guitar Pro 6 native | BCFZ-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.
| Technique | MusicXML | .gp | .gpx | Notes |
|---|---|---|---|---|
| Palm mute | ✓ | ✓ | ✓ | |
| Let ring | ✓ | ✓ | ✓ | |
| Hammer-on / pull-off | ✓ | ✓ | ✓ | Direction inferred from pitch |
| Slide (shift / legato) | ✓ | ✓ | ✓ | Span technique |
| Slide in / out | ✓ | ✓ | ✓ | Per-note variants |
| AutoSlide | ✓ | ✓ | GP-only “host-decides-direction” slide-in | |
| Bend | ✓ | ✓ | ✓ | Single-note tag (curve not yet modelled) |
| Vibrato | ✓ | ✓ | ✓ | |
| Tremolo pick | ✓ | ✓ | ✓ | |
| Tap (RH / LH) | ✓ | ✓ | ✓ | |
| Natural harmonic | ✓ | ✓ | ✓ | |
| Pinch / artificial harmonic | ✓ | ✓ | ✓ | |
| Pick scrape | ✓ | ✓ | ✓ | GP encodes via slide flag 0x40 / 0x80 |
| Thumb slap / pop | ✓ | ✓ | ✓ | Beat-level for bass parts |
| Dead note / finger pluck | ✓ | ✓ | ✓ | Suppressed 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:
- Decompresses BCFZ. Declared decompressed length is capped at 256 MB — any forged file claiming more is rejected before allocation.
- Walks the BCFS sector table (4 KB sectors) to find
score.gpif. - 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.