Musescore crashes while Playback

• Nov 10, 2021 - 12:24

OS: Manjaro Linux, Arch.: x86_64, MuseScore version (64-bit): 3.6.2, revision: github-musescore-musescore-
Qt Version 5.15.2.

When I'm starting the playbackk, Musescore crashes. Unfortunately I don't understnand the error message from the terminal. Can somebody help me?


unknown:unknown: AlsaDriver::write: snd_pcm_avail_update() (Datenübergabe unterbrochen (broken pipe))
unknown:unknown: AlsaDriver: recover: stat = 00, xrun of at least 3313.228 ms
unknown:unknown: changeState NORMAL -> PLAY
/build/musescore/src/MuseScore/libmscore/rendermidi.cpp:unknown: ASSERT: "!graceNotesMerged(chord)" in file /build/musescore/src/MuseScore/libmscore/rendermidi.cpp, line 317
Abgebrochen (Speicherabzug geschrieben)


Comments

So this got to be a selfbuilt version and compiled in Debug mode, right?
Only version build in Debung mode rather then in Release mode would crash on an assert.

It does not crash in the released version of 3.6.2 (and uses Qt 5.9.9 there) on Windows 10

In reply to by tubajoe

Than, once again, the communits packeg has not been build properly. No git SHA on the version string and in Debug mode.

And yes, the only official version (officialy from the musescore developers) is the AppImage.
And yes, another option is to build it yourself. Or to get the maintainer of the community build to do it right.

I can confirm the crash (due to a failed assertion) in the latest 3.x development version (build in Debug mode). The code here is:

      if (chord->isGrace()) {
            Q_ASSERT( !graceNotesMerged(chord)); // this function should not be called on a grace note if grace notes are merged
            chord = toChord(chord->parent());
            }
...
// In the case that graceNotesBefore or graceNotesAfter are attached to a note
// with an articulation such as a trill, then the grace notes are/will-be/have-been
// already merged into the articulation.
// So this predicate, graceNotesMerged, checks for this condition to avoid calling
// functions which would re-emit the grace notes by a different algorithm.
 
bool graceNotesMerged(Chord* chord)
      {
      if (findFirstTrill(chord))
            return true;
      for (Articulation* a : chord->articulations())
            for (auto& oe : excursions)
                  if ( oe.atype == a->symId() )
                        return true;
      return false;
      }

that Q_ASSERT()is in the code since more than 5 years (so ever since MuseScire 3.0), since 10ecb8bb, to fix #111346: "Grace note after" doesn't sound during playback.

Do you still have an unanswered question? Please log in first to post your question.