Is there an existing issue for this?
I have read the contribution rules
AI authorship
Written by a human, no AI assistance
Current Behavior
alphaTab does not hold any string+fret information for staves like for piano in its data model. This worked well until Guitar Pro 6 and with MusicXML. Unfortunately Guitar Pro 7 (in some inbetween version) changed again to an approach where all staves hold stringed information, and GP simply spreads notes across available strings. Same applies in Guitar Pro 8.
With these changes in software, the Guitar Pro 7+ exporter is broken. We do not write tuning, string and fret information for such staves. That leads to very strange Guitar Pro behavior: the tuning shows C- and if you edit it, it crashes.
If you play the song, you only hear weird noises.
If you show tabs, you will see -2147483648 (int32.minvalue) for all notes.
While the pitched notes are shown correctly, playback in Guitar Pro is broken for such tracks/staves
Expected Behavior
alphaTab must export the data model in a way that allows Guitar Pro to fully load , display and play the song.
Steps To Reproduce
- Take a song with purely pitched notes e.g.
C4 * 4 alphatex. or take musicxml inputs
- export it to a Guitar Pro file
- open it in Guitar Pro 8
- optional: change playback to RSE
- play the song -> notice strange pitched notes
- show the tab staff -> notice the int32.minvalue frets.
Link to jsFiddle, CodePen, Project
No response
Version and Environment
Interaction to Next Paint (INP)
0 ms
Your local INP value of 0 ms is good.
INP interaction
keyboard
Learn more about local and field metrics
Interactions
Layout shifts
keyboard INP
body
0 ms
Next steps
Environment settings
Use the device toolbar and configure throttling to simulate real user environments and identify more performance issues.
CPU: No throttling
Network: No throttling
Disable network cache
Record
Ctrl + E
Record and reload
Ctrl + Shift + E
alphaTab.Environment.printEnvironmentInfo()
Logger.ts:24 [AlphaTab][VersionInfo] alphaTab 1.9.0
Logger.ts:24 [AlphaTab][VersionInfo] commit: e45a2153e94f68028e0ea0e66af7daf6b7715d78
Logger.ts:24 [AlphaTab][VersionInfo] build date: 2026-08-01T18:23:18.402Z
Logger.ts:24 [AlphaTab][VersionInfo] High DPI: 2.1500000953674316
Logger.ts:24 [AlphaTab][VersionInfo] Platform: BrowserModule
Logger.ts:24 [AlphaTab][VersionInfo] WebPack: false
Logger.ts:24 [AlphaTab][VersionInfo] Vite: false
Logger.ts:24 [AlphaTab][VersionInfo] Browser: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36
Logger.ts:24 [AlphaTab][VersionInfo] Window Size: 1778x952
Logger.ts:24 [AlphaTab][VersionInfo] Screen Size: 1920x1080
Platform
Web
Anything else?
#2822 is slightly related regarding the pitched vs. stringed note handling.
I think we need some bigger overhaul of the stringed vs. pitched notes handling. how we handle stringed and pitched notes on the model, display, and playback have to be aligned better.
The GP approach is interesting: simply infer string+fret for notes if missing. That enables some additional use-cases. Like we could allow alphaTex like C4 3.3 where we mix stringed and pitched notes.
The alternative is to simply infer string+fret during GP export to satisfy guitar pro and keep the alphaTab model contract that one staff must contain only one kind of notes (pitched, stringed or percussion).
In this fix/refactor we should make things explicit and validate appropriately to avoid errors in future.
Is there an existing issue for this?
I have read the contribution rules
AI authorship
Written by a human, no AI assistance
Current Behavior
alphaTab does not hold any string+fret information for staves like for piano in its data model. This worked well until Guitar Pro 6 and with MusicXML. Unfortunately Guitar Pro 7 (in some inbetween version) changed again to an approach where all staves hold stringed information, and GP simply spreads notes across available strings. Same applies in Guitar Pro 8.
With these changes in software, the Guitar Pro 7+ exporter is broken. We do not write tuning, string and fret information for such staves. That leads to very strange Guitar Pro behavior: the tuning shows C- and if you edit it, it crashes.
If you play the song, you only hear weird noises.
If you show tabs, you will see -2147483648 (int32.minvalue) for all notes.
While the pitched notes are shown correctly, playback in Guitar Pro is broken for such tracks/staves
Expected Behavior
alphaTab must export the data model in a way that allows Guitar Pro to fully load , display and play the song.
Steps To Reproduce
C4 * 4alphatex. or take musicxml inputsLink to jsFiddle, CodePen, Project
No response
Version and Environment
Platform
Web
Anything else?
#2822 is slightly related regarding the pitched vs. stringed note handling.
I think we need some bigger overhaul of the stringed vs. pitched notes handling. how we handle stringed and pitched notes on the model, display, and playback have to be aligned better.
The GP approach is interesting: simply infer string+fret for notes if missing. That enables some additional use-cases. Like we could allow alphaTex like
C4 3.3where we mix stringed and pitched notes.The alternative is to simply infer string+fret during GP export to satisfy guitar pro and keep the alphaTab model contract that one staff must contain only one kind of notes (pitched, stringed or percussion).
In this fix/refactor we should make things explicit and validate appropriately to avoid errors in future.