Crash when adjusting Absolute Velocity in piano roll editor
- Place some notes on the score
- Open the Piano Roll editor
- Switch the bottom panel to Velocity Absolute
- Select some notes
- Click on the yellow lines to adjust the velocity (click around a lot!)
- Eventually app will crash
---- Partial stack trace:
Crashed Thread: 0 CrBrowserMain Dispatch queue: com.apple.main-thread
Exception Type: EXC_ARITHMETIC (SIGFPE)
Exception Codes: EXC_I386_DIV (divide by zero)
Exception Note: EXC_CORPSE_NOTIFY
Termination Signal: Floating point exception: 8
Termination Reason: Namespace SIGNAL, Code 0x8
Terminating Process: exc handler [12344]
Thread 0 Crashed:: CrBrowserMain Dispatch queue: com.apple.main-thread
0 org.musescore.MuseScore 0x0000000100eb1718 Ms::PianoLevels::adjustLevelLerp(int, int, int, int, bool) + 872
1 org.musescore.MuseScore 0x0000000100eb1fbd Ms::PianoLevels::mouseMoveEvent(QMouseEvent) + 1261
2 org.qt-project.QtWidgets 0x00000001025ce000 QWidget::event(QEvent) + 544
3 org.qt-project.QtWidgets 0x0000000102593eb2 QApplicationPrivate::notify_helper(QObject*, QEvent) + 306
4 org.qt-project.QtWidgets 0x0000000102596c4d QApplication::notify(QObject, QEvent) + 7165
5 org.qt-project.QtCore 0x0000000103b32edf QCoreApplication::notifyInternal2(QObject, QEvent) + 159
6 org.qt-project.QtWidgets 0x00000001025947e0 QApplicationPrivate::sendMouseEvent(QWidget, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer&, bool) + 896
7 org.qt-project.QtWidgets 0x00000001025ee31c 0x102582000 + 443164
8 org.qt-project.QtWidgets 0x00000001025ecf79 0x102582000 + 438137
9 org.qt-project.QtWidgets 0x0000000102593eb2 QApplicationPrivate::notify_helper(QObject*, QEvent) + 306
10 org.qt-project.QtWidgets 0x00000001025951cf QApplication::notify(QObject, QEvent) + 383
11 org.qt-project.QtCore 0x0000000103b32edf QCoreApplication::notifyInternal2(QObject, QEvent) + 159
12 org.qt-project.QtGui 0x0000000102f1f0a2 QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent) + 2962
13 org.qt-project.QtGui 0x0000000102f051db QWindowSystemInterface::sendWindowSystemEvents(QFlags) + 155
Comments
I have not been able to reproduce the crash, but thanks to your stack trace, I believe I know what the problem is and how to fix it. The cause of the crash is a divide-by-zero exception in Ms::PianoLevels::adjustLevelLerp(int, int, int, int, bool). Presumably, this occurs on line 419 in the case where tick0 is equal to tick1. On lines 408 and 409 a similar calculation is made, but only if tick0 is not equal to tick1. Line 419 should probably be modified to match lines 408 and 409. See https://github.com/musescore/MuseScore/pull/5233 for a pull request that does just that.
Fixed in branch master, commit 105f81e6b6
fix #292310: Crash when adjusting Absolute Velocity in piano roll editor
Fixed in branch master, commit 4573dffd20
_Merge pull request #5233 from mattmcclinch/292310-adjust-level
fix #292310: Crash when adjusting Absolute Velocity in piano roll editor_
Automatically closed -- issue fixed for 2 weeks with no activity.