Skip to content

Commit

Permalink
Merge pull request #13785 from alexpavlov96/gp_hairpin_import
Browse files Browse the repository at this point in the history
gp: fixed hairpin import
  • Loading branch information
alexpavlov96 authored Oct 17, 2022
2 parents f7801f1 + 50bfe3c commit 84ff847
Show file tree
Hide file tree
Showing 4 changed files with 66 additions and 60 deletions.
46 changes: 23 additions & 23 deletions src/importexport/guitarpro/internal/gtp/gpconverter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -213,6 +213,20 @@ static GPConverter::LineImportType ottavaToImportType(GPBeat::OttavaType t)
return GPConverter::LineImportType::NONE;
}

static GPConverter::LineImportType hairpinToImportType(GPBeat::Hairpin t)
{
static std::map<GPBeat::Hairpin, GPConverter::LineImportType> types {
{ GPBeat::Hairpin::Crescendo, GPConverter::LineImportType::CRESCENDO },
{ GPBeat::Hairpin::Decrescendo, GPConverter::LineImportType::DIMINUENDO }
};

if (types.find(t) != types.end()) {
return types[t];
}

return GPConverter::LineImportType::NONE;
}

GPConverter::GPConverter(Score* score, std::unique_ptr<GPDomModel>&& gpDom)
: _score(score), _gpDom(std::move(gpDom))
{
Expand Down Expand Up @@ -1552,7 +1566,7 @@ void GPConverter::addTrill(const GPNote* gpnote, Note* note)

void GPConverter::addTrill(const GPBeat* gpbeat, ChordRest* cr)
{
addLineElement(cr, _trillLines, ElementType::TRILL, LineImportType::TRILL, gpbeat->trill(), true);
addLineElement(cr, m_trillLines, ElementType::TRILL, LineImportType::TRILL, gpbeat->trill(), true);
}

void GPConverter::addOrnament(const GPNote* gpnote, Note* note)
Expand Down Expand Up @@ -2557,31 +2571,17 @@ void GPConverter::addFadding(const GPBeat* beat, ChordRest* cr)

void GPConverter::addHairPin(const GPBeat* beat, ChordRest* cr)
{
if (beat->hairpin() == GPBeat::Hairpin::None) {
_lastHairpin = nullptr;
return;
}
auto& hairpins = m_hairpins[beat->hairpin()];
addLineElement(cr, hairpins, ElementType::HAIRPIN, hairpinToImportType(
beat->hairpin()), beat->hairpin() != GPBeat::Hairpin::None);

auto scoreHairpin = [](const auto& h) {
if (h == GPBeat::Hairpin::Crescendo) {
return HairpinType::CRESC_HAIRPIN;
} else {
return HairpinType::DECRESC_HAIRPIN;
if (!hairpins.empty()) {
auto& elem = hairpins.back();
if (elem && elem->isHairpin()) {
toHairpin(elem)->setHairpinType(
beat->hairpin() == GPBeat::Hairpin::Crescendo ? HairpinType::CRESC_HAIRPIN : HairpinType::DECRESC_HAIRPIN);
}
};

if (!_lastHairpin) {
_lastHairpin = Factory::createHairpin(_score->dummy()->segment());
_lastHairpin->setTick(cr->tick());
_lastHairpin->setTick2(cr->tick());
_lastHairpin->setHairpinType(scoreHairpin(beat->hairpin()));
_lastHairpin->setTrack(cr->track());
_lastHairpin->setTrack2(cr->track());
_score->addSpanner(_lastHairpin);
}

_lastHairpin->setTick2(cr->tick());
_lastHairpin->setEndElement(cr);
}

void GPConverter::addPickStroke(const GPBeat* beat, ChordRest* cr)
Expand Down
12 changes: 7 additions & 5 deletions src/importexport/guitarpro/internal/gtp/gpconverter.h
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,11 @@ class GPConverter
OTTAVA_MB15,

/// trill
TRILL
TRILL,

/// hairpin
CRESCENDO,
DIMINUENDO,
};

private:
Expand Down Expand Up @@ -207,7 +211,8 @@ class GPConverter
std::vector<Vibrato*> _vibratos;
std::map<GPBeat::HarmonicMarkType, std::vector<SLine*> > m_harmonicMarks;
std::map<GPBeat::OttavaType, std::vector<SLine*> > m_ottavas;
std::vector<SLine*> _trillLines;
std::map<GPBeat::Hairpin, std::vector<SLine*> > m_hairpins;
std::vector<SLine*> m_trillLines;

std::map<uint16_t, uint16_t > _drumExtension;

Expand All @@ -225,9 +230,6 @@ class GPConverter
static constexpr int LOWEST_BASE = 1024;
} m_nextTupletInfo;

Hairpin* _lastHairpin = nullptr;
std::vector<Ottava*> m_lastOttavas;

#ifdef ENGRAVING_USE_STRETCHED_BENDS
std::vector<StretchedBend*> m_bends;
#else
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,8 @@
</HairPin>
<next>
<location>
<fractions>1/2</fractions>
<measures>1</measures>
<fractions>-1/4</fractions>
</location>
</next>
</Spanner>
Expand All @@ -95,13 +96,6 @@
<string>3</string>
</Note>
</Chord>
<Spanner type="HairPin">
<prev>
<location>
<fractions>-1/2</fractions>
</location>
</prev>
</Spanner>
<Chord>
<durationType>quarter</durationType>
<Note>
Expand All @@ -115,6 +109,14 @@
</Measure>
<Measure>
<voice>
<Spanner type="HairPin">
<prev>
<location>
<measures>-1</measures>
<fractions>1/4</fractions>
</location>
</prev>
</Spanner>
<Chord>
<durationType>quarter</durationType>
<Note>
Expand All @@ -130,7 +132,7 @@
</HairPin>
<next>
<location>
<fractions>1/2</fractions>
<fractions>3/4</fractions>
</location>
</next>
</Spanner>
Expand All @@ -143,13 +145,6 @@
<string>3</string>
</Note>
</Chord>
<Spanner type="HairPin">
<prev>
<location>
<fractions>-1/2</fractions>
</location>
</prev>
</Spanner>
<Chord>
<durationType>quarter</durationType>
<Note>
Expand All @@ -162,6 +157,13 @@
<BarLine>
<subtype>end</subtype>
</BarLine>
<Spanner type="HairPin">
<prev>
<location>
<fractions>-3/4</fractions>
</location>
</prev>
</Spanner>
</voice>
</Measure>
</Staff>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,8 @@
</HairPin>
<next>
<location>
<fractions>1/2</fractions>
<measures>1</measures>
<fractions>-1/4</fractions>
</location>
</next>
</Spanner>
Expand All @@ -95,13 +96,6 @@
<string>3</string>
</Note>
</Chord>
<Spanner type="HairPin">
<prev>
<location>
<fractions>-1/2</fractions>
</location>
</prev>
</Spanner>
<Chord>
<durationType>quarter</durationType>
<Note>
Expand All @@ -115,6 +109,14 @@
</Measure>
<Measure>
<voice>
<Spanner type="HairPin">
<prev>
<location>
<measures>-1</measures>
<fractions>1/4</fractions>
</location>
</prev>
</Spanner>
<Chord>
<durationType>quarter</durationType>
<Note>
Expand All @@ -130,7 +132,7 @@
</HairPin>
<next>
<location>
<fractions>1/2</fractions>
<fractions>3/4</fractions>
</location>
</next>
</Spanner>
Expand All @@ -143,13 +145,6 @@
<string>3</string>
</Note>
</Chord>
<Spanner type="HairPin">
<prev>
<location>
<fractions>-1/2</fractions>
</location>
</prev>
</Spanner>
<Chord>
<durationType>quarter</durationType>
<Note>
Expand All @@ -162,6 +157,13 @@
<BarLine>
<subtype>end</subtype>
</BarLine>
<Spanner type="HairPin">
<prev>
<location>
<fractions>-3/4</fractions>
</location>
</prev>
</Spanner>
</voice>
</Measure>
</Staff>
Expand Down

0 comments on commit 84ff847

Please sign in to comment.