Skip to content

Commit

Permalink
Fix GH#17891: Instrument names follow largest stave spatium in part
Browse files Browse the repository at this point in the history
Backport of musescore#19161
  • Loading branch information
miiizen authored and Jojo-Schmitz committed Oct 26, 2023
1 parent 9b2c8c9 commit 02224ef
Show file tree
Hide file tree
Showing 6 changed files with 189 additions and 4 deletions.
2 changes: 1 addition & 1 deletion libmscore/element.h
Original file line number Diff line number Diff line change
Expand Up @@ -209,7 +209,7 @@ class Element : public ScoreElement {

virtual bool isElement() const override { return true; }

qreal spatium() const;
virtual qreal spatium() const;
std::pair<int, float>barbeat() const;
QString accessibleBarbeat() const;

Expand Down
21 changes: 20 additions & 1 deletion libmscore/iname.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,26 @@ void InstrumentName::setInstrumentNameType(const QString& s)
qDebug("InstrumentName::setSubtype: unknown <%s>", qPrintable(s));
}

//---------------------------------------------------------
qreal InstrumentName::spatium() const
{
if (systemFlag() || (parent() && parent()->systemFlag()))
return Element::spatium();

// Get spatium for instrument names from largest staff of part,
// instead of staff it is attached to
Part* p = part();
if (!part())
return Element::spatium();
qreal largestSpatium = 0;
for (Staff* s: *p->staves()) {
double sp = s->spatium(tick());
if (sp > largestSpatium)
largestSpatium = sp;
}
return largestSpatium;
}

//---------------------------------------------------------
// setInstrumentNameType
//---------------------------------------------------------

Expand Down
2 changes: 2 additions & 0 deletions libmscore/iname.h
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,8 @@ class InstrumentName final : public TextBase {

System* system() const { return toSystem(parent()); }

qreal spatium() const override;

Fraction playTick() const override;
bool isEditable() const override { return false; }
QVariant getProperty(Pid propertyId) const override;
Expand Down
2 changes: 1 addition & 1 deletion vtest/gen
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ else
emmentaler-text-2 gonville-text-2 bravura-text-2 musejazz-text-2\
emmentaler-text-3 gonville-text-3 bravura-text-3 musejazz-text-3\
flag flag-straight ledger-lines-2 ledger-lines-3 frame frametext ottava bend-1 \
barline-1 barline-2 instrument-1 symbol-1 \
barline-1 barline-2 instrument-1 intrument-names-1 symbol-1 \
slurs-1 slurs-2 slurs-3 slurs-4 slurs-5 slurs-6 slurs-7 slurs-8 slurs-9 slurs-10 \
hairpins-1 pedal-1 line-1 line-2 line-3 line-4 line-5 line-6 line-7 line-colored line-dashed gliss-1 gliss-2 gliss-3 \
chord-layout-1 chord-layout-2 chord-layout-3 chord-layout-4 chord-layout-5\
Expand Down
2 changes: 1 addition & 1 deletion vtest/gen.bat
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ set SRC=bravura-mmrest,gonville-mmrest, ^
emmentaler-text-2,gonville-text-2,bravura-text-2,musejazz-text-2, ^
emmentaler-text-3,gonville-text-3,bravura-text-3,musejazz-text-3, ^
flag, flag-straight, ledger-lines-2, ledger-lines-3, frame,frametext,ottava,bend-1, ^
barline-1,barline-2,instrument-1,symbol-1, ^
barline-1,barline-2,instrument-1,instrument-names-1,symbol-1, ^
slurs-1,slurs-2,slurs-3,slurs-4,hairpins-1,pedal-1,line-1,line-2,line-3,line-4,line-5,line-6,line-7,line-colored,line-dashed,gliss-1,gliss-2,gliss-3, ^
chord-layout-1,chord-layout-2,chord-layout-3,chord-layout-4,chord-layout-5, ^
chord-layout-6,chord-layout-7,chord-layout-8,chord-layout-9,chord-layout-10, ^
Expand Down
164 changes: 164 additions & 0 deletions vtest/instrument-names-1.mscx
Original file line number Diff line number Diff line change
@@ -0,0 +1,164 @@
<?xml version="1.0" encoding="UTF-8"?>
<museScore version="3.02">
<programVersion>3.6.3</programVersion>
<programRevision></programRevision>
<Score>
<LayerTag id="0" tag="default"></LayerTag>
<currentLayer>0</currentLayer>
<Division>480</Division>
<Style>
<pageWidth>3.93701</pageWidth>
<pageHeight>1.9685</pageHeight>
<pagePrintableWidth>3.93701</pagePrintableWidth>
<pageEvenLeftMargin>0</pageEvenLeftMargin>
<pageOddLeftMargin>0</pageOddLeftMargin>
<pageEvenTopMargin>0</pageEvenTopMargin>
<pageEvenBottomMargin>0</pageEvenBottomMargin>
<pageOddTopMargin>0</pageOddTopMargin>
<pageOddBottomMargin>0</pageOddBottomMargin>
<enableVerticalSpread>1</enableVerticalSpread>
<lyricsMinBottomDistance>1.5</lyricsMinBottomDistance>
<propertyDistanceHead>0.4</propertyDistanceHead>
<propertyDistanceStem>0.4</propertyDistanceStem>
<propertyDistance>0.4</propertyDistance>
<articulationAnchorLuteFingering>1</articulationAnchorLuteFingering>
<hideInstrumentNameIfOneInstrument>0</hideInstrumentNameIfOneInstrument>
<evenFooterC>$C</evenFooterC>
<oddFooterC>$C</oddFooterC>
<ottavaLineStyle>0</ottavaLineStyle>
<dynamicsFontSize>10</dynamicsFontSize>
<headerAlign>center,top</headerAlign>
<footerAlign>center,bottom</footerAlign>
<Spatium>1.74978</Spatium>
</Style>
<showInvisible>1</showInvisible>
<showUnprintable>1</showUnprintable>
<showFrames>1</showFrames>
<showMargins>0</showMargins>
<metaTag name="arranger"></metaTag>
<metaTag name="composer">Composer / arranger</metaTag>
<metaTag name="copyright"></metaTag>
<metaTag name="creationDate">2023-08-22</metaTag>
<metaTag name="lyricist"></metaTag>
<metaTag name="movementNumber"></metaTag>
<metaTag name="movementTitle"></metaTag>
<metaTag name="mscVersion">3.02</metaTag>
<metaTag name="platform">Microsoft Windows</metaTag>
<metaTag name="poet"></metaTag>
<metaTag name="source"></metaTag>
<metaTag name="sourceRevisionId"></metaTag>
<metaTag name="subtitle">Subtitle</metaTag>
<metaTag name="translator"></metaTag>
<metaTag name="workNumber"></metaTag>
<metaTag name="workTitle">Untitled score</metaTag>
<Order id="orchestral" customized="1">
<name>Orchestral</name>
<instrument id="piano">
<family id="keyboards">Tasteninstrumente</family>
</instrument>
<section id="woodwind" brackets="true" showSystemMarkings="true" barLineSpan="true" thinBrackets="true">
<family>flutes</family>
<family>oboes</family>
<family>clarinets</family>
<family>saxophones</family>
<family>bassoons</family>
<unsorted group="woodwinds"/>
</section>
<section id="brass" brackets="true" showSystemMarkings="false" barLineSpan="true" thinBrackets="true">
<family>horns</family>
<family>trumpets</family>
<family>cornets</family>
<family>flugelhorns</family>
<family>trombones</family>
<family>baritone-horns</family>
<family>euphoniums</family>
<family>tubas</family>
</section>
<section id="timpani" brackets="true" showSystemMarkings="false" barLineSpan="true" thinBrackets="true">
<family>timpani</family>
</section>
<section id="percussion" brackets="true" showSystemMarkings="false" barLineSpan="true" thinBrackets="true">
<family>keyboard-percussion</family>
<family>drums</family>
<family>unpitched-metal-percussion</family>
<family>unpitched-wooden-percussion</family>
<family>other-percussion</family>
</section>
<family>keyboards</family>
<family>harps</family>
<family>organs</family>
<family>synths</family>
<section id="plucked-strings" brackets="true" showSystemMarkings="false" barLineSpan="true" thinBrackets="true">
<family>plucked-strings</family>
</section>
<soloists/>
<section id="voices" brackets="true" showSystemMarkings="false" barLineSpan="false" thinBrackets="true">
<family>voices</family>
</section>
<section id="strings" brackets="true" showSystemMarkings="true" barLineSpan="true" thinBrackets="true">
<family>orchestral-strings</family>
</section>
<unsorted/>
</Order>
<Part>
<Staff id="1">
<StaffType group="pitched">
<name>stdNormal</name>
<small>1</small>
</StaffType>
<bracket type="1" span="2" col="0"/>
<barLineSpan>1</barLineSpan>
</Staff>
<Staff id="2">
<StaffType group="pitched">
<name>stdNormal</name>
</StaffType>
<defaultClef>F</defaultClef>
</Staff>
<trackName>Piano</trackName>
<Instrument id="piano">
<longName>Piano</longName>
<shortName>Pno.</shortName>
<trackName>Piano</trackName>
<minPitchP>21</minPitchP>
<maxPitchP>108</maxPitchP>
<minPitchA>21</minPitchA>
<maxPitchA>108</maxPitchA>
<instrumentId>keyboard.piano</instrumentId>
<clef staff="2">F</clef>
<Channel>
<program value="0"/>
<synti>Fluid</synti>
</Channel>
</Instrument>
</Part>
<Staff id="1">
<Measure>
<voice>
<TimeSig>
<sigN>4</sigN>
<sigD>4</sigD>
</TimeSig>
<Rest>
<durationType>measure</durationType>
<duration>4/4</duration>
</Rest>
</voice>
</Measure>
</Staff>
<Staff id="2">
<Measure>
<voice>
<TimeSig>
<sigN>4</sigN>
<sigD>4</sigD>
</TimeSig>
<Rest>
<durationType>measure</durationType>
<duration>4/4</duration>
</Rest>
</voice>
</Measure>
</Staff>
</Score>
</museScore>

0 comments on commit 02224ef

Please sign in to comment.