[Guitar Pro] GTP scores with capo/transposition imported wrongly?

• Feb 18, 2015 - 11:02
Type
Functional
Severity
S4 - Minor
Status
closed
Project
Tags

Context: current github master self-compiled with Qt Lib 5.3 and Qt Creator 3.3.0 under Linux Mint 17 64-bit.

Description:

I do not have GTP, so it is difficult for me to be precise.

Background: The fret-diagram.gp4 and fret-diagram.gp5 import test files include either a transposition 6 semitones up or a capo 6 rendered with a transposition in the import.

Whatever the case, it seems to me that the transposition is not correctly implemented in the imported file, as the results with concert pitch ON and OFF seem inconsistent with the other info about the score.

Taking fret-diagram.gp4 as an example, the included fret diagram makes clear that the resulting top note of the corresponding chord should be an A# (empty string = D; D + 6 semitones = G#; G# fretted on 2nd fret = A#) with concert pitch ON and the E below with concert pitch OFF (and correspondingly for the other chord notes).

The actual result is E with concert pitch ON and the A# below (actually Bb, but this is secondary) with concert pitch OFF.

Note that the results are not simply swapped: the A# with concert pitch OFF is an octave too low. This corresponds with the fact that a 6-semitone transposition is exactly half an octave and applying it twice results in a shift by an octave.

Note also that the results are similar for fret-diagram.gp5, while for fret-diagram.gpx, which does not use any transposition, results seem correct.

The matter is complicated by the fact that the score seems to imply a non-default tuning (DADGAD) which is not implemented in the imported score; but even discounting for this additional complication, the result seems off by 6 semitones.

Thanks,

M.


Comments

I have been researching this issue and I believe I have discovered exactly what is happening here.

In the test file fret-diagram.gp4 which we are discussing here, the first thing which is very confusing is that the author of this file has written a guitar tuning in the title of the file and that this tuning is not actually specified in the file for that instrument. So one problem here is that the author has confused us all by writing that tuning where in fact it is not applied (I have verified this in two versions of Guitar Pro and in TuxGuitar). I know this isn't directly related to this issue but it's worth documenting that confusion here.

As for the problem with the capo, there actually is a problem here. In Musescore, we read the capo information and apply the transposition. In Guitar Pro, the user specifies the capo and that has no bearing whatsoever on the notes in the score, because the markings in the tab staff are absolute markings rather than one relative to the capo. This is a little painful.

We can see some of this from the attachment. The left shows the tuning of the guitar to be standard. By changing the tuning the score is edited appropriately (the tab staff has "priority", so the tab staff stays the same and the standard notation staff is edited), but when changing the capo fret number, nothing at all changes in the score. TuxGuitar faithfully implements what Guitar Pro does, stating a capo number and displaying what Guitar Pro displays. The reason why this is problematic can be shown from our test case. The files states we should apply the capo on fret 6, and we see that there are markings in the tab staff are numbered less than 6, which shouldn't be the case if the numbers are given in an absolute position, rather than relatively.

So the question becomes, what do we display in Musescore? My proposal is that if we remove the transposition currently applied on the capo so that we display the same as Guitar Pro and TuxGuitar. If we see however that any fret number is given which is strictly less than the fret number to which the capo is applied, we raise an error on import warning the user that the have an incorrect tab staff. Thoughts most welcome on this. :)

Attachment Size
gp6-display-fret-diagram.png 65.54 KB

First of all, I have no experience with GTP or TuxGuitar, so mine might just be hot air.

That said, these are my comments, for what they are worth.

1) From the picture you attach, I note that:

* First chord, top note: 2nd string is B, 3rd fret on B => D; standard staff has D indeed.

This implies that the "Capo. fret 6" string is purely decorative; it could have said "The brown fox jumps over the lazy dogs" and the result would have been the same.

As noted in the related (non-?)issue: #48056: [Guitar Pro] Non-default tuning in GTP scores ignored?, it would be useful to remove those meaningless texts from the test scores, to prevent future misinterpretations; but this is not a very high priority.

2b) If GTP / TG have no valid indication about capo and/or transposition (as different from special tuning), I would say they have no real concept of capo and this whole issue is void. Feel free to mark it as fixed, if you are confident the matters are so.

In this case, MS should import the note pitches, frets and strings as they are in the original, without any attempt to reconstruct an intention which in the source is not expressed.

(By "valid" indication, I mean some reliable number or value written in the score, not some generic, free-text string or footnote in the score).

2b) If, however, they do have some reliable indication of this kind, it is the case to be sure they are correctly imported (currently the only way to import a capo info is by setting the staff transposition) and, even better, add a relevant test case the the test suite.

Hoping it helps,

M.

I would definitely like to leave this issue open to fix the transposition that we do at the moment, which differs from what Guitar Pro and TuxGuitar do. The implementation aims to be as close to them as possible and I think this is definitely something we want to mimic so this buy still describes a real issue. I will undo the transposition in the next PR so that Musescore, Guitar Pro, and TuxGuitar, are all on the same page with respect to capo import.