1.3 score using Pedal line with a middle symbol displays empty in 3.x, crashes in master
Reported version
3.6
Type
Functional
Frequency
Once
Severity
S2 - Critical
Reproducibility
Always
Status
closed
Regression
Yes
Workaround
Yes
Project
- Open attached score (produced in 1.3).
Result: Displays empty.
Information: Displays in 2.3.2.
Using MuseScore 3.6.2 and 3.x nightly (2513676) - Mac 10.11.6.
Attachment | Size |
---|---|
1x score displays empty in 3x.mscz | 3.98 KB |
Fix version
4.0.0
Comments
And crashes in master builds
Surely a 3.x regression
I'm a tad rusty at issue filing, but yes. ;)
Workaround: open score in MuseScire 2(.3.2) and save it. After that it opens fine in MuseScore 3(.6.2)
Debug messages in a 3.x build:
Debug: tag in line 204 col 39: continueSymbolOffset (...\libmscore\xmlreader.cpp:208, void Ms::XmlReader::unknown())
Debug: empty score (...\libmscore\layout.cpp:5029, void Ms::Score::doLayoutRange(const Ms::Fraction&, const Ms::Fraction&))
Debug: empty score (...\libmscore\layout.cpp:5029, void Ms::Score::doLayoutRange(const Ms::Fraction&, const Ms::Fraction&))
Debug: tick2measureMM 0 (max -1) not found (...\libmscore\utils.cpp:93, Ms::Measure* Ms::Score::tick2measureMM(const Ms::Fraction&) const)
Debug: tick2measureMM 0 (max -1) not found (...\libmscore\utils.cpp:93, Ms::Measure* Ms::Score::tick2measureMM(const Ms::Fraction&) const)
mcsx at the place of that first message (the unknown tag):
A master build complains about that unknown tag too. Some code:
So that's not the real issue here, instead the messages that follow, reg. empty score and
tick2measureMM
(the score doesn't use any multimeasure rests though?).Some code:
and
Debug output from a master build:
Stack trace:
1 QListData::begin qlist.h 118 0x134119c
2 QList::begin qlist.h 339 0x1321c8c
3 Ms::Score::partById score.cpp 5206 0x4ac4be
4 mu::engraving::PlaybackModel::resolveTrackPlaybackData playbackmodel.cpp 141 0x7c6b18
5 mu::notation::NotationPlayback::trackPlaybackData notationplayback.cpp 106 0xa51b18
6 mu::playback::PlaybackController::addTrack playbackcontroller.cpp 503 0xb78d92
7 mu::playback::PlaybackController::setupSequenceTracks playbackcontroller.cpp 664 0xb7b7b1
8 mu::playback::PlaybackController::setupNewCurrentSequence playbackcontroller.cpp 607 0xb7aa56
9 mu::playback::PlaybackController::::::operator()(const mu::audio::TrackSequenceId &) const playbackcontroller.cpp 72 0xb72645
10 std::__invoke_impl::&, int>(std::__invoke_other, mu::playback::PlaybackController:::: &, int &&) invoke.h 60 0xb9461f
11 std::__invoke::&, int>(mu::playback::PlaybackController:::: &, int &&) invoke.h 95 0xb93b3e
12 std::__apply_impl::&, std::tuple, 0>(mu::playback::PlaybackController:::: &, std::tuple &&, std::index_sequence) tuple 1678 0xb9316c
13 std::apply::&, std::tuple>(mu::playback::PlaybackController:::: &, std::tuple &&) tuple 1687 0xb931ac
14 deto::async::Promise::ResolveCall::, int>::resolved(const deto::async::NotifyData &) promise.h 126 0xb931f0
15 deto::async::Promise::PromiseInvoker::doInvoke promise.h 172 0x114fdf8
16 deto::async::AbstractInvoker::invokeCallback abstractinvoker.cpp 62 0x40353f
17 deto::async::AbstractInvoker::QInvoker::invoke abstractinvoker.h 123 0x114133c
18 deto::async::AbstractInvoker::::operator()(void) const abstractinvoker.cpp 49 0x403173
19 std::_Function_handler>::_M_invoke(const std::_Any_data &) std_function.h 297 0x40de5f
20 std::function::operator()() const std_function.h 687 0x13b8092
...
Crash at
with
m_score
being0
. Changging that tofixes the crash, I'll submit a PR for that.
Debug output from a master build with that crash fixed (see above):
See https://github.com/musescore/MuseScore/pull/10793
Seems the
continueSymbolOffset
is relevant, sort of, removing the entire<Pedal>...</Pedal>
section make the score load!So another workaround: open the score in 1.3, remove the Pedal line.
Probelm seems to be pedal lines that use a middle symbol
So another workaround is not to do that (resp. to remove that in 1.3)
(and 1.x apparently has a bug there, it does show the Start Symbol on the last segment of such a line, not the Middle Symbol, the import into 2.x fixes that 'on the fly')
Removing just these 2 lines from the mscx and the score loads
From read114.cpp:
The 1st is for Ottave lines (in
readOttava114()
), the 2nd for text lines (inreadTextLine114()
)The
is also for text lines (in
readTextLine114()
). Marked obsolete but does get read.However, it doesn't seem to get read in, else the 'unknown tag' message wouldn't show?
Hmm, there's also a
readPedalLine114()
, that does callreadTextLineProperties114()
, that in turn doesn't read any of the {begin,continue,end}Symbol* stuff though?On reading a 1.x Pedal line apparently
beginSymbol
,beginSymbolOffset
,endSymbol
andendSymbolOffset
(and alsosubtype
) are ingnored already, so I guess the fix would be to just ignorecontinueSymbol
andContinueSymbolOffset
too?Or to just read them...
Added that to https://github.com/musescore/MuseScore/pull/10793
Backport to https://github.com/musescore/MuseScore/pull/9000 (for 3.x) done too...
Fixed in branch master, commit 5bb2cf3c31
_Partial fix #330270: Crash on importing a 1.x score using a Pedal line with a
continueSymbol
a score that that even 3.x imports as being entirely empty, but 1.x and 2.x just opens cleanly._
Fixed in branch master, commit 406532427f
_Fix #330270: 1.x score using Pedal line with a
continueSymbol
imports emptyAlso custom
beginSymbol
,endSymbol
and their offset got ignored, the former got hard coded instead._Automatically closed -- issue fixed for 2 weeks with no activity.