Skip to content

Commit

Permalink
fix #232841: [GP6] Unexpected clefs after importing files for keyboards
Browse files Browse the repository at this point in the history
  • Loading branch information
lasconic committed Jul 18, 2017
1 parent 4e45d0f commit 91d8820
Show file tree
Hide file tree
Showing 54 changed files with 3,742 additions and 2,799 deletions.
100 changes: 83 additions & 17 deletions mscore/importgtp-gp6.cpp
Expand Up @@ -59,17 +59,55 @@
namespace Ms {

const static std::map<QString, QString> instrumentMapping = {
{"e-gtr6", "electric-guitar"},
{"tnr-s", "voice"},
{"s-gtr6", "guitar-steel"},
{"n-gtr6", "guitar-nylon"},
{"a-bass4", "acoustic-bass"},
{"a-bass5", "acoustic-bass"},
{"a-bass6", "acoustic-bass"},
{"alt-c", "alto"},
{"alt-s", "alto"},
{"a-piano-gs", "piano"},
{"a-piano-ss", "piano"},
{"bass-c", "bass"},
{"bass-flt-c", "bass-flute"},
{"bassn", "bassoon"},
{"bass-s", "bass"},
{"basstuba-bb", "bass-eb-tuba"},
{"basstuba-eb", "bb-tuba"}, //???
{"bnj4", "banjo"},
{"bnj5", "banjo"},
{"bnj6", "banjo"},
{"cello", "violoncello"},
{"drmkt", "drumset"},
{"e-bass4", "bass-guitar"},
{"e-bass5", "bass-guitar"},
{"e-bass6", "bass-guitar"},
{"e-gtr12", "electric-guitar-treble-clef"},
{"e-gtr6", "electric-guitar-treble-clef"},
{"e-gtr7", "electric-guitar-treble-clef"},
{"e-gtr8", "electric-guitar-treble-clef"},
{"em-organ-gs", "organ"},
{"em-organ-ss", "organ"},
{"en-horn", "english-horn"},
{"e-piano-gs", "electric-piano"},
{"e-piano-ss", "electric-piano"},
//{"f-bass5", "bass-guitar"}, /// ??? not in the list
{"hrpch-gs", "harpsichord"},
{"hrpch-ss", "harpsichord"},
{"mrcs", "maracas"},
{"mrcs", "oboe"},
{"mrcs", "oboe"},
{"n-gtr6", "guitar-nylon-treble-clef"},
{"n-gtr7", "guitar-nylon-treble-clef"},
{"n-gtr8", "guitar-nylon-treble-clef"},
{"s-gtr12", "guitar-steel-treble-clef"},
{"s-gtr6", "guitar-steel-treble-clef"},
{"s-gtr7", "guitar-steel-treble-clef"},
{"s-gtr8", "guitar-steel-treble-clef"},
{"snt-lead-ss", "poly-synth"},
{"f-bass5", "bass-guitar"},
{"tnr-s", "voice"},
{"snt-bass-ss", "metallic-synth"},
{"mrcs", "maracas"},
{"drmkt", "drumset"},
{"a-piano-gs", "piano"},
{"a-piano-ss", "piano"}
{"vla", "viola"},
{"vln", "violin"},
{"xlphn", "xylophone"}
};

//---------------------------------------------------------
Expand Down Expand Up @@ -208,7 +246,8 @@ void GuitarPro6::readGPX(QByteArray* buffer) {
*buffer = buffer->right(buffer->length()-sizeof(int));
int sectorSize = 0x1000;
int offset = 0;
while ((offset = (offset + sectorSize)) + 3 < buffer->length()) {
while (((offset = (offset + sectorSize)) + 3) < buffer->length()) {
qDebug() << offset << buffer->length();
int newInt = readInteger(buffer,offset);
if (newInt == 2) {
int indexFileName = (offset + 4);
Expand Down Expand Up @@ -1408,13 +1447,39 @@ void GuitarPro6::readBars(QDomNode* barList, Measure* measure, ClefType oldClefI
// get the clef of the bar and apply
if (!currentNode.nodeName().compare("Clef")) {
QString clefString = currentNode.toElement().text();
ClefType clefId = ClefType::G3;
if (!clefString.compare("F4"))
clefId = ClefType::F8;
else if (!clefString.compare("G2"))
clefId = ClefType::G3;
else if (!clefString.compare("Neutral"))
clefId = ClefType::PERC;
QDomNode nextNode = currentNode.nextSibling();
QString clefOctave;
if (!nextNode.nodeName().compare("Ottavia"))
clefOctave = nextNode.toElement().text();
ClefType clefId = ClefType::G;
if (!clefString.compare("F4")) {
clefId = ClefType::F;
if (clefOctave == "8va")
clefId = ClefType::F_8VA;
else if (clefOctave == "8vb")
clefId = ClefType::F8;
else if (clefOctave == "15ma")
clefId = ClefType::F_15MA;
else if (clefOctave == "15mb")
clefId = ClefType::F15;
}
else if (!clefString.compare("G2")) {
clefId = ClefType::G;
if (clefOctave == "8va")
clefId = ClefType::G1;
else if (clefOctave == "8vb")
clefId = ClefType::G3;
else if (clefOctave == "15ma")
clefId = ClefType::G2;
else if (clefOctave == "15mb") // fix me
clefId = ClefType::G3;
}
else if (!clefString.compare("C3"))
clefId = ClefType::C3;
else if (!clefString.compare("C4"))
clefId = ClefType::C4;
else if (!clefString.compare("Neutral"))
clefId = ClefType::PERC;
else
qDebug() << "WARNING: unhandled clef type: " << clefString;
Clef* newClef = new Clef(score);
Expand Down Expand Up @@ -1488,6 +1553,7 @@ void GuitarPro6::readBars(QDomNode* barList, Measure* measure, ClefType oldClefI
}
}
else if (!currentNode.nodeName().compare("XProperties")) {}
else { qDebug() << currentNode.nodeName(); }
// go to the next node in the tree
currentNode = currentNode.nextSibling();
}
Expand Down
76 changes: 41 additions & 35 deletions mtest/guitarpro/accent.gpx-ref.mscx
Expand Up @@ -53,15 +53,18 @@
</Staff>
<trackName>S-Gt</trackName>
<Instrument>
<longName>Acoustic Guitar</longName>
<longName>Guitar</longName>
<shortName>Guit.</shortName>
<trackName>Acoustic Guitar</trackName>
<trackName>Acoustic Guitar (Treble Clef)</trackName>
<minPitchP>40</minPitchP>
<maxPitchP>83</maxPitchP>
<minPitchA>40</minPitchA>
<maxPitchA>83</maxPitchA>
<transposeDiatonic>-7</transposeDiatonic>
<transposeChromatic>-12</transposeChromatic>
<instrumentId>pluck.guitar.acoustic</instrumentId>
<clef>G8vb</clef>
<concertClef>G8vb</concertClef>
<transposingClef>G</transposingClef>
<StringData>
<frets>21</frets>
<string>40</string>
Expand Down Expand Up @@ -111,8 +114,8 @@
</VBox>
<Measure number="1">
<Clef>
<concertClefType>G8vb</concertClefType>
<transposingClefType>G8vb</transposingClefType>
<concertClefType>G</concertClefType>
<transposingClefType>G</transposingClefType>
<lid>1</lid>
</Clef>
<KeySig>
Expand Down Expand Up @@ -142,8 +145,8 @@
<lid>7</lid>
<pitch>62</pitch>
<tpc>16</tpc>
<fret>7</fret>
<string>2</string>
<fret>10</fret>
<string>0</string>
</Note>
</Chord>
<Chord>
Expand All @@ -157,8 +160,8 @@
<lid>10</lid>
<pitch>53</pitch>
<tpc>13</tpc>
<fret>3</fret>
<string>3</string>
<fret>1</fret>
<string>0</string>
</Note>
</Chord>
<Chord>
Expand All @@ -168,8 +171,8 @@
<lid>12</lid>
<pitch>47</pitch>
<tpc>19</tpc>
<fret>2</fret>
<string>4</string>
<fret>0</fret>
<string>1</string>
</Note>
</Chord>
<Chord>
Expand All @@ -179,8 +182,8 @@
<lid>14</lid>
<pitch>55</pitch>
<tpc>15</tpc>
<fret>5</fret>
<string>3</string>
<fret>3</fret>
<string>0</string>
</Note>
</Chord>
<BarLine>
Expand Down Expand Up @@ -259,15 +262,18 @@
</Staff>
<trackName></trackName>
<Instrument>
<longName>Acoustic Guitar</longName>
<longName>Guitar</longName>
<shortName>Guit.</shortName>
<trackName>Acoustic Guitar</trackName>
<trackName>Acoustic Guitar (Treble Clef)</trackName>
<minPitchP>40</minPitchP>
<maxPitchP>83</maxPitchP>
<minPitchA>40</minPitchA>
<maxPitchA>83</maxPitchA>
<transposeDiatonic>-7</transposeDiatonic>
<transposeChromatic>-12</transposeChromatic>
<instrumentId>pluck.guitar.acoustic</instrumentId>
<clef>G8vb</clef>
<concertClef>G8vb</concertClef>
<transposingClef>G</transposingClef>
<StringData>
<frets>21</frets>
<string>40</string>
Expand Down Expand Up @@ -316,13 +322,13 @@
<lid>0</lid>
<Text>
<style>Instrument Name (Part)</style>
<text>Acoustic Guitar</text>
<text>Guitar</text>
</Text>
</VBox>
<Measure number="1">
<Clef>
<concertClefType>G8vb</concertClefType>
<transposingClefType>G8vb</transposingClefType>
<concertClefType>G</concertClefType>
<transposingClefType>G</transposingClefType>
<lid>1</lid>
</Clef>
<KeySig>
Expand Down Expand Up @@ -352,8 +358,8 @@
<lid>7</lid>
<pitch>62</pitch>
<tpc>16</tpc>
<fret>7</fret>
<string>2</string>
<fret>10</fret>
<string>0</string>
</Note>
</Chord>
<Chord>
Expand All @@ -367,8 +373,8 @@
<lid>10</lid>
<pitch>53</pitch>
<tpc>13</tpc>
<fret>3</fret>
<string>3</string>
<fret>1</fret>
<string>0</string>
</Note>
</Chord>
<Chord>
Expand All @@ -378,8 +384,8 @@
<lid>12</lid>
<pitch>47</pitch>
<tpc>19</tpc>
<fret>2</fret>
<string>4</string>
<fret>0</fret>
<string>1</string>
</Note>
</Chord>
<Chord>
Expand All @@ -389,8 +395,8 @@
<lid>14</lid>
<pitch>55</pitch>
<tpc>15</tpc>
<fret>5</fret>
<string>3</string>
<fret>3</fret>
<string>0</string>
</Note>
</Chord>
<BarLine>
Expand All @@ -412,8 +418,8 @@
<lid>7</lid>
<pitch>62</pitch>
<tpc>16</tpc>
<fret>7</fret>
<string>2</string>
<fret>10</fret>
<string>0</string>
</Note>
</Chord>
<Chord>
Expand All @@ -427,8 +433,8 @@
<lid>10</lid>
<pitch>53</pitch>
<tpc>13</tpc>
<fret>3</fret>
<string>3</string>
<fret>1</fret>
<string>0</string>
</Note>
</Chord>
<Chord>
Expand All @@ -438,8 +444,8 @@
<lid>12</lid>
<pitch>47</pitch>
<tpc>19</tpc>
<fret>2</fret>
<string>4</string>
<fret>0</fret>
<string>1</string>
</Note>
</Chord>
<Chord>
Expand All @@ -449,8 +455,8 @@
<lid>14</lid>
<pitch>55</pitch>
<tpc>15</tpc>
<fret>5</fret>
<string>3</string>
<fret>3</fret>
<string>0</string>
</Note>
</Chord>
<BarLine>
Expand Down

0 comments on commit 91d8820

Please sign in to comment.