fix mtest, gp6 replace long if/else list by a map
This commit is contained in:
parent
b0138167fa
commit
1d7f1afecf
2 changed files with 95 additions and 24 deletions
|
@ -58,6 +58,18 @@
|
|||
|
||||
namespace Ms {
|
||||
|
||||
const static std::map<QString, QString> instrumentMapping = {
|
||||
{"e-gtr6", "electric-guitar"},
|
||||
{"tnr-s", "voice"},
|
||||
{"s-gtr6", "guitar-steel"},
|
||||
{"n-gtr6", "guitar-nylon"},
|
||||
{"snt-lead-ss", "poly-synth"},
|
||||
{"f-bass5", "bass-guitar"},
|
||||
{"snt-bass-ss", "metallic-synth"},
|
||||
{"mrcs", "maracas"},
|
||||
{"drmkt", "drumset"}
|
||||
};
|
||||
|
||||
//---------------------------------------------------------
|
||||
// readBit
|
||||
//---------------------------------------------------------
|
||||
|
@ -398,25 +410,12 @@ void GuitarPro6::readTracks(QDomNode* track)
|
|||
part->setPartName(currentNode.toElement().text());
|
||||
else if (nodeName == "Instrument") {
|
||||
QString ref = currentNode.attributes().namedItem("ref").toAttr().value();
|
||||
// use an array as a map instead?
|
||||
if (!ref.compare("e-gtr6"))
|
||||
part->setInstrument(Instrument::fromTemplate(Ms::searchTemplate("electric-guitar")));
|
||||
else if (!ref.compare("tnr-s"))
|
||||
part->setInstrument(Instrument::fromTemplate(Ms::searchTemplate("voice")));
|
||||
else if (!ref.compare("s-gtr6"))
|
||||
part->setInstrument(Instrument::fromTemplate(Ms::searchTemplate("guitar-steel")));
|
||||
else if (!ref.compare("n-gtr6"))
|
||||
part->setInstrument(Instrument::fromTemplate(Ms::searchTemplate("guitar-nylon")));
|
||||
else if (!ref.compare("snt-lead-ss"))
|
||||
part->setInstrument(Instrument::fromTemplate(Ms::searchTemplate("poly-synth")));
|
||||
else if (!ref.compare("f-bass5"))
|
||||
part->setInstrument(Instrument::fromTemplate(Ms::searchTemplate("bass-guitar")));
|
||||
else if (!ref.compare("snt-bass-ss"))
|
||||
part->setInstrument(Instrument::fromTemplate(Ms::searchTemplate("metallic-synth")));
|
||||
else if (!ref.compare("mrcs"))
|
||||
part->setInstrument(Instrument::fromTemplate(Ms::searchTemplate("maracas")));
|
||||
else if (!ref.compare("drmkt"))
|
||||
part->setInstrument(Instrument::fromTemplate(Ms::searchTemplate("drumset")));
|
||||
auto it = instrumentMapping.find(ref);
|
||||
if (it != instrumentMapping.end()) {
|
||||
part->setInstrument(Instrument::fromTemplate(Ms::searchTemplate(it->second)));
|
||||
}
|
||||
else
|
||||
qDebug() << "Unknown instrument: " << ref;
|
||||
if (ref.endsWith("-gs")) { // grand staff
|
||||
Staff* s2 = new Staff(score);
|
||||
s2->setPart(part);
|
||||
|
|
|
@ -53,8 +53,15 @@
|
|||
</Staff>
|
||||
<trackName>N-Gt</trackName>
|
||||
<Instrument>
|
||||
<longName>Nylon Guitar</longName>
|
||||
<trackName></trackName>
|
||||
<longName>Classical Guitar</longName>
|
||||
<shortName>Guit.</shortName>
|
||||
<trackName>Classical Guitar</trackName>
|
||||
<minPitchP>40</minPitchP>
|
||||
<maxPitchP>83</maxPitchP>
|
||||
<minPitchA>40</minPitchA>
|
||||
<maxPitchA>83</maxPitchA>
|
||||
<instrumentId>pluck.guitar.nylon-string</instrumentId>
|
||||
<clef>G8vb</clef>
|
||||
<StringData>
|
||||
<frets>21</frets>
|
||||
<string>40</string>
|
||||
|
@ -64,7 +71,36 @@
|
|||
<string>59</string>
|
||||
<string>64</string>
|
||||
</StringData>
|
||||
<Articulation>
|
||||
<velocity>100</velocity>
|
||||
<gateTime>100</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="staccatissimo">
|
||||
<velocity>100</velocity>
|
||||
<gateTime>33</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="staccato">
|
||||
<velocity>100</velocity>
|
||||
<gateTime>50</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="portato">
|
||||
<velocity>100</velocity>
|
||||
<gateTime>67</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="tenuto">
|
||||
<velocity>100</velocity>
|
||||
<gateTime>100</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="marcato">
|
||||
<velocity>120</velocity>
|
||||
<gateTime>67</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="sforzato">
|
||||
<velocity>120</velocity>
|
||||
<gateTime>100</gateTime>
|
||||
</Articulation>
|
||||
<Channel>
|
||||
<program value="24"/>
|
||||
</Channel>
|
||||
</Instrument>
|
||||
</Part>
|
||||
|
@ -427,8 +463,15 @@
|
|||
</Staff>
|
||||
<trackName></trackName>
|
||||
<Instrument>
|
||||
<longName>Nylon Guitar</longName>
|
||||
<trackName></trackName>
|
||||
<longName>Classical Guitar</longName>
|
||||
<shortName>Guit.</shortName>
|
||||
<trackName>Classical Guitar</trackName>
|
||||
<minPitchP>40</minPitchP>
|
||||
<maxPitchP>83</maxPitchP>
|
||||
<minPitchA>40</minPitchA>
|
||||
<maxPitchA>83</maxPitchA>
|
||||
<instrumentId>pluck.guitar.nylon-string</instrumentId>
|
||||
<clef>G8vb</clef>
|
||||
<StringData>
|
||||
<frets>21</frets>
|
||||
<string>40</string>
|
||||
|
@ -438,7 +481,36 @@
|
|||
<string>59</string>
|
||||
<string>64</string>
|
||||
</StringData>
|
||||
<Articulation>
|
||||
<velocity>100</velocity>
|
||||
<gateTime>100</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="staccatissimo">
|
||||
<velocity>100</velocity>
|
||||
<gateTime>33</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="staccato">
|
||||
<velocity>100</velocity>
|
||||
<gateTime>50</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="portato">
|
||||
<velocity>100</velocity>
|
||||
<gateTime>67</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="tenuto">
|
||||
<velocity>100</velocity>
|
||||
<gateTime>100</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="marcato">
|
||||
<velocity>120</velocity>
|
||||
<gateTime>67</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="sforzato">
|
||||
<velocity>120</velocity>
|
||||
<gateTime>100</gateTime>
|
||||
</Articulation>
|
||||
<Channel>
|
||||
<program value="24"/>
|
||||
</Channel>
|
||||
</Instrument>
|
||||
</Part>
|
||||
|
@ -448,7 +520,7 @@
|
|||
<lid>0</lid>
|
||||
<Text>
|
||||
<style>Instrument Name (Part)</style>
|
||||
<text>Nylon Guitar</text>
|
||||
<text>Classical Guitar</text>
|
||||
</Text>
|
||||
</VBox>
|
||||
<Measure number="1">
|
||||
|
|
Loading…
Reference in a new issue