fix string values of gp import in new version
This commit is contained in:
parent
776e41311b
commit
b331933335
2 changed files with 15 additions and 8 deletions
|
@ -675,6 +675,11 @@ void GPConverter::setUpTrack(const std::unique_ptr<GPTrack>& tR)
|
|||
tunning = standartTuning;
|
||||
}
|
||||
|
||||
int transpose = tR->transponce();
|
||||
for (auto& t : tunning) {
|
||||
t -= transpose;
|
||||
}
|
||||
|
||||
StringData stringData = StringData(fretCount, static_cast<int>(tunning.size()), tunning.data());
|
||||
|
||||
part->instrument()->setStringData(stringData);
|
||||
|
@ -1366,7 +1371,9 @@ void GPConverter::setPitch(Note* note, const GPNote::MidiPitch& midiPitch)
|
|||
// instead.
|
||||
pitch = note->part()->instrument()->channel(0)->program();
|
||||
} else {
|
||||
pitch = note->part()->instrument()->stringData()->getPitch(musescoreString, midiPitch.fret, nullptr);
|
||||
pitch
|
||||
= note->part()->instrument()->stringData()->getPitch(musescoreString, midiPitch.fret,
|
||||
nullptr) + note->part()->instrument()->transpose().chromatic;
|
||||
}
|
||||
|
||||
if (musescoreString == -1) {
|
||||
|
|
|
@ -1216,21 +1216,21 @@ Fraction GuitarPro6::readBeats(QString beats, GPPartInfo* partInfo, Measure* mea
|
|||
}
|
||||
currentProperty = currentProperty.nextSibling();
|
||||
}
|
||||
|
||||
if (midi != "") {
|
||||
note->setPitch(midi.toInt());
|
||||
} else if (element != "") {
|
||||
if (midi == "" && element != "") {
|
||||
readDrumNote(note, element.toInt(), variation.toInt());
|
||||
} else if (stringNum != "" && stringNum.toInt() >= 0 && note->headGroup() != NoteHeadGroup::HEAD_DIAMOND) {
|
||||
Staff* staff = note->staff();
|
||||
int fretNumber = fretNum.toInt();
|
||||
int musescoreString = staff->part()->instrument()->stringData()->strings() - 1 - stringNum.toInt();
|
||||
auto pitch = staff->part()->instrument()->stringData()->getPitch(musescoreString, fretNumber,
|
||||
nullptr);
|
||||
if (midi != "") {
|
||||
note->setPitch(midi.toInt());
|
||||
} else {
|
||||
auto pitch = staff->part()->instrument()->stringData()->getPitch(musescoreString, fretNumber, nullptr);
|
||||
note->setPitch(pitch);
|
||||
}
|
||||
note->setFret(fretNumber);
|
||||
// we need to turn this string number for GP to the correct string number for musescore
|
||||
note->setString(musescoreString);
|
||||
note->setPitch(pitch);
|
||||
} else if (tone != "") {
|
||||
note->setPitch((octave.toInt() * 12) + tone.toInt()); // multiply octaves by 12 as 12 semitones in octave
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue