📂 Supported Files

MidiEditor AI can natively open four file-format families: standard MIDI, Guitar Pro tablature, MusicXML scores, and MuseScore project files. Non-MIDI formats are converted to MIDI on-the-fly with tempo, time signature, key signature, and instrument mapping preserved - no external converter or third-party software required.

📂 Open via: File → Open (Ctrl+O). The file dialog accepts every format below. Format detection is header-based for Guitar Pro and content-based for MusicXML/MuseScore, so even misnamed extensions usually still work.

Format Overview

🎵 MIDI.mid · .midi 🎸 Guitar Pro.gp .gp3 .gp4 .gp5 .gpx .gtp 🎼 MusicXML.musicxml · .xml · .mxl 🎻 MuseScore.mscz · .mscx
Family Extensions Source Conversion Save back as
MIDI .mid, .midi Native - Standard MIDI File None (loaded directly) .mid
Guitar Pro .gp, .gp3, .gp4, .gp5, .gpx, .gtp Guitar Pro 1-8 Tab → MIDI on open .mid
MusicXML .musicxml, .xml, .mxl Finale, Sibelius, MuseScore, Dorico, etc. Score → MIDI on open .mid
MuseScore .mscz, .mscx MuseScore 3 / 4 Score → MIDI on open .mid

⚠️ One-way conversion: Imported files are converted to MIDI in memory. Saving keeps the result as a MIDI file - the original Guitar Pro / MusicXML / MuseScore document is not modified, and round-trip back to those formats is not supported.


🎵 MIDI

The native format. Loaded and saved directly without conversion.

Extensions.mid, .midi
TypeStandard MIDI File (SMF) format 0 and format 1
TracksUp to 32, mapped to 19 channels (16 standard + 3 meta)
EditingFull read/write - everything MidiEditor AI does ultimately works on MIDI in memory

🎸 Guitar Pro (GP1-GP8)

MidiEditor AI natively opens every Guitar Pro format released between 1993 and 2024. Files are converted to MIDI on-the-fly with tempo, time signature, key signature, tuning, and instrument mapping preserved.

Supported GP Formats

Format Extensions Version Range Parser Encoding
GP1 .gtp v1.0 - v1.04 Gp12Parser Binary (DOS, French header “GUITARE”)
GP2 .gtp v2.20 - v2.21 Gp12Parser Binary (DOS, adds triplet feel, repeats, capo)
GP3 .gp3 v3.00 Gp345Parser Binary
GP4 .gp4 v4.00 - v4.06 Gp345Parser Binary (adds lyrics, RSE, key signatures)
GP5 .gp5 v5.00 - v5.10 Gp345Parser Binary (adds RSE2, extended note effects)
GP6 / GPX .gpx v6.x Gp678Parser BCFZ-compressed GPIF XML
GP7 / GP8 .gp v7.x - v8.x Gp678Parser ZIP-packaged GPIF XML

A Brief History of Guitar Pro

1993 - GP1 released as a DOS application in France. Binary format with a French header (“FICHIER GUITARE”). Basic tablature storage for guitar tracks.
1997 - GP2 adds triplet feel, repeat markers, and capo support. Still a DOS binary format.
1999 - GP3 moves to Windows. New binary format (.gp3) with multi-track support, tempo changes, and text annotations.
2001 - GP4 adds lyrics, Realistic Sound Engine (RSE), and key signatures. Format mostly backward-compatible with GP3.
2005 - GP5 introduces RSE2 with real instrument samples, tablature for bass/banjo/drums, and extended note effects (slides, hammer-on, tremolo bar).
2010 - GP6 completely new format: GPIF XML compressed with the proprietary BCFZ algorithm (custom bit-level LZ77, not zlib). Extension changes to .gpx.
2017 - GP7 switches from BCFZ to standard ZIP packaging around the same GPIF XML. Extension becomes .gp.
2024 - GP8 continues the ZIP+XML format with minor schema additions. Same .gp extension.

Header-Based Format Detection

MidiEditor AI does not rely on the file extension to determine the GP format. Instead, it reads the magic bytes at the start of each file:

Family Detection Method
GP1 / GP2 Header string: FICHIER GUITAR PRO v1 or v2 (French)
GP3 / GP4 / GP5 Header string: FICHIER GUITAR PRO v3, v4, or v5
GP6 (BCFZ) Magic bytes: BCFZ at offset 0
GP7 / GP8 (ZIP) ZIP header PK\x03\x04 containing Content/score.gpif

What Gets Converted

🎵 Notes & Tabs

String/fret tablature is converted to MIDI note numbers using the track’s tuning. Note velocity, duration, and timing are preserved.

⏱️ Tempo

Tempo changes (BPM markers) are inserted as MIDI tempo meta events at the correct tick positions.

🎼 Time Signature

Time signature changes (e.g., 4/4 → 6/8) are extracted per measure and inserted as MIDI time signature meta events.

♭ Key Signature

Key signature markers (GP4+) are converted to MIDI key signature meta events with correct sharps/flats and major/minor mode.

🎸 Instruments

Guitar Pro instrument assignments are mapped to General MIDI program numbers. Track names are preserved. Each track gets its own MIDI channel.

🎤 Effects

Bends, slides, hammer-on/pull-off, vibrato, and harmonics are converted to MIDI pitch bend and controller events where possible.

Parser Architecture

Parser Formats Approach
Gp12Parser GP1, GP2 Sequential binary reading of DOS-era format. Ported from TuxGuitar’s Java reference implementation (GP1InputStream, GP2InputStream).
Gp345Parser GP3, GP4, GP5 Inheritance chain: Gp3ParserGp4ParserGp5Parser. Each subclass adds version-specific fields.
Gp678Parser GP6, GP7, GP8 First decompresses the container (BCFZ or ZIP), then parses the GPIF XML document. DOM-based XML traversal extracts scores, tracks, bars, voices, beats, and notes.

Guitar Pro Tips


🎼 MusicXML

MusicXML is the de-facto interchange format for music notation. MidiEditor AI imports plain XML scores (.musicxml, .xml) and the compressed container variant (.mxl) used by most notation programs to ship a score in a single file.

Extensions.musicxml, .xml, .mxl
SpecMusicXML 3.x and 4.0
Source appsFinale, Sibelius, MuseScore, Dorico, Notion, Capella, NoteFlight, Flat.io, ScoreCloud, …
Container.musicxml / .xml = plain XML · .mxl = ZIP container with embedded score
ParserMusicXmlImporterXmlScoreToMidi (shared SMF writer)

What Gets Imported

🎼 Parts & Voices

Each <part> becomes a MIDI track. Multiple voices inside a staff are merged onto the same channel with correct timing.

🎵 Notes & Chords

Pitch (step + alter + octave), duration, and chord groupings (<chord/> tag) are converted to simultaneous MIDI NoteOn events.

⏱️ Tempo

<sound tempo="..."> directives become MIDI tempo meta events at the correct tick.

🎼 Time / Key Sig

<time> and <key> elements become time-signature and key-signature meta events.

🎷 Instruments

<midi-program> and <midi-channel> assignments are honoured. Falls back to GM Piano when missing.

📝 Tuplets & Rests

<time-modification> ratios are applied to durations. Rests advance the cursor without emitting notes.

MusicXML Tips


🎻 MuseScore

MidiEditor AI reads MuseScore 3/4 project files directly, without going through MuseScore. .mscz is the standard zipped container; .mscx is the underlying plain XML.

Extensions.mscz, .mscx
MuseScore versions3.x and 4.x
Container.mscz = ZIP with the .mscx + assets · .mscx = plain XML
ParserMsczImporterXmlScoreToMidi (shared SMF writer)

What Gets Imported

🎼 Parts & Staves

Each MuseScore <Part> → one MIDI track. Multi-staff parts (e.g. piano grand staff) are merged.

🎵 Voices

All voices inside a staff are merged onto the part’s channel, preserving tick positions.

🎶 Chords & Rests

<Chord> elements with multiple <Note> children become simultaneous MIDI notes. <Rest> advances the cursor.

📐 Tuplets & Dotted Notes

Tuplet brackets and dotted-note durations are computed correctly using MuseScore’s <actualNotes> / <normalNotes> ratio.

⏱️ Tempo / Time / Key

<Tempo>, <TimeSig>, <KeySig> become MIDI meta events.

🎹 Grace Notes

Grace notes are inserted as short events immediately before the principal note.

MuseScore Tips


Workflow: Score → FFXIV Bard

A common use case is converting Guitar Pro / MusicXML / MuseScore source material into FFXIV Bard Performance MIDI files. The workflow is identical regardless of source format:

1️⃣ Open Source File

File → Open and select your .gp5, .musicxml, .mscz, or any other supported format. Tracks, notes, and tempo are imported automatically.

2️⃣ Review Tracks

Check imported tracks in the Track Editor. Rename, delete, or rearrange as needed. Source track names are preserved.

3️⃣ Fix Channels

Click Fix X|V Channels Fix X|V to set up the FFXIV channel mapping, program changes, and guitar variant switching automatically.

4️⃣ Save as MIDI

Save with File → Save As (.mid). The file is now ready for MidiBard2 or other FFXIV performance tools.

💡 Tip: You can also ask MidiPilot to help: “Convert this import for FFXIV 8-player ensemble, constrain range to C3-C6, make all tracks monophonic”


General Tips