Debian Patches

Status for musescore3/3.2.3+dfsg2-16

Patch Description Author Forwarded Bugs Origin Last update
backports/31-ui-enter-slur.diff fix #166116: Slurs terminate in wrong spot in voices other than 1 Matt McClinch <> no upstream, commit:d173093c407e96dbebb0b8684f7c0fa5c38e6904
debian-specific/debundle-fonts.diff Don’t bundle fonts-freefont-ttf in the executable, use the system copy (even if this means rendering will differ
from other places and, the local user will get
the bugfixes applied to the Debian packaging of said fonts)
This was discussed around the Campania debate; basically, both
embedding and depending have upsides and downsides… ☹
Considering MuseScore is GPLv2 and the font is GPLv3+FE though
it’s safer to not embed it into the binary at all.
mirabilos <> not-needed
backports/05-layout-hairpin-dynamic.diff fix #292960: hairpin with dynamics at the end is too short James Thistlewood <> no upstream, commit:922e514e4922338741bb75edafc555523f76d35c
debian-specific/dfsg-exclusions.diff Remove excluded paths from build mirabilos <> not-needed
experiments/no-sql.diff drop libqt5sql5, which MuseScore does not, in fact, need mirabilos <> invalid 2020-07-12
debian-specific/debundle-openssl.diff Remove OpenSSL references from kQOAuth The code will happily build without OpenSSL. James Cowgill <> not-needed
debian-specific/kfreebsd-oss-salsa.diff Add function missing in OSS-sALSA to fix non-Linux compile; fixup int vs. ssize_t issue in related code to ensure it will work. mirabilos <> not-needed debian
debian-specific/version-dialogue.diff show Debian/derivative versioning (helps in support) mirabilos <> not-needed
debian-specific/local-docs.diff Also link to the local/offline copy of the documentation, which we generate at build time, instead of relying on upstream’s online
version (which they seem to like), in order to have exactly corresponding
docs for plugin writers / for debugging plugins with the running version
Also, set the UTF-8 charset so latin1 is not used…
mirabilos <> not-needed
debian-specific/fixup-AppData.diff Exclude undesired AppData entries plus stuff they missed… again…
plus asv-description-has-plaintext-url (Debian QA warning) fix
mirabilos <> not-needed
upstream/file-dialogues.diff fix #292912: use native file dialogues by default also on Linux mirabilos <> yes
upstream/untranslatable-error-msg.diff Fix #286666: Error message when no note selected untranslatable Also translate the string for the "Unknown error" case Joachim Schmitz <> no upstream, commit:855956e5087ed48b9588444f09a4d5da7ef79b17
upstream/fix-cli-audio.diff Fix single-note dynamics on rendering scores via a command line Dmitri Ovodok <> invalid upstream, commit:2b1377813e61cc5b8d7bf8574e38f45f1f59526d
upstream/fix-pluginless-build.diff Fix build with disabled plugins and remove the (not functional) Plugins menu from the menu bar mirabilos <> yes
upstream/undoable-spacer-drag-length.diff fix #291941: Changing spacer length with a mouse is not undoable Matt McClinch <> no upstream, commit:1ba9e83aa1959e8aa8e895bec616174b8615a832
upstream/workspace-crash.diff Fix a crash on reading a workspace with non-existing preferences Dmitri Ovodok <> no upstream, commit:b9bb0ceb8223866f5b60f4d821b5b3544ffa4788
backports/06-layout-volta.diff fix #287871: volta line not drawn before start repeat Marc Sabatella <> no upstream, commit:d2278d6742aebc41e488357f4ce892d06b65780a
backports/07-layout-clef-change.diff fix #290061: no space betwene header and clef change Marc Sabatella <> no upstream, commit:feffd0f5f7bd2462894031e216c31c60809167fa
backports/workspace-warning.diff Fix #305209: ticks_f warnings when loading a custom workspace Resolves:
When reading in XML data, the _pasteMode flag of the XmlReader should
match the _clipboardmode flag of the XmlWriter that wrote the data. In
each of the four places that an XmlWriter is constructed in
mscore/workspace.cpp, the _clipboardmode flag of the XmlWriter is set
to true. For this reason, in each of the four places that an XmlReader
is constructed in mscore/workspace.cpp, the _pasteMode flag of the
XmlReader should be set to true to ensure that the data is interpreted
For example, the XML for a Spanner object will include a "ticks_f" tag
if and only if the _clipboardmode flag of the XmlWriter is true. When
this XML is read back in, the XmlReader will not expect to find a
"ticks_f" tag if its _pasteMode flag is false.
Matt McClinch <> no upstream, commit:2c69a6dc1f302f4ca12903fc1788e7c96cbdaf13
backports/qt514-1.diff Description:fix build with Qt5.14
Specializes template routines.
Qt 5.14 introduces serialisation/deserialisation for enum classes,
this results in ambiguous templates between qdatastream.h and preferences.h.
we specialize everything to workaround this.
fix warnings: replace QString::null, with QString()
Jérôme Duval <> no upstream, commit:8b9a81e73c2500ead7ef5bfc5b84b0838c792e08
backports/boldfonts-1.diff fix #281601 and fix #284218 [workaround]: broken on-screen rendering of synthetically emboldened fonts AntonioBL <> no upstream, commit:d5e7249f9a0742d4b9220246b03a0c7868480225
backports/boldfonts-2.diff change default pdf dpi export to rendering value AntonioBL <> no upstream, commit:1cf3237fbcb6cdd9b53511fc2d7a57c16866da9a
backports/boldfonts-3.diff fix #307075 : Bold and underlined text is not displayed properly AntonioBL <> no upstream, commit:4276fb5a1d0a9f0b5f85149ca03441922b6cc00e
backports/01-playback-muted.diff fix #282165: Mute voice produces note that doesn't stop when overlap present Matt McClinch <> no upstream, commit:711b7ab72caa07318a7b086c4372e5a440ae2020
backports/02-playback-tied.diff fix #291146: Swing prevents midi rendering of tied notes Matt McClinch <> no upstream, commit:7c3fef8a55e434d40f08a04a03b074a3bcbb01d7
backports/03-playback-deleted.diff fix #292851: Note still played after having been deleted. Matt McClinch <> no upstream, commit:cc885c15ae9732fc576f92a382b2271edc649ee0
backports/04-paste-breath.diff fix #291932: Copy-paste breaths & pauses causes bad layout of the first note/rest in following measures Copying and pasting a breath mark on the last tick of a measure
resulted in an empty Breath segment being created in the next measure.
This is because the last tick of one measure is equal to the first tick
of the next measure, and Score::tick2measure() always returns the
second measure in this case. When the Breath mark actually gets added
to the score in Score::undoAddElement(), a new segment for it is
created in the previous measure. This is the measure in which we should
be adding the segment in the first place.
Matt McClinch <> no upstream, commit:a4a5173e03050bc9d93e30fecab9f170148be135
backports/09-layout-1st-system.diff fix #293531: clef&key appear on second system after layout with gen clef&key disabled In I added code
to better handle the detection of the end of the layout range.
Part of this was to re-establish the header in the first measure after the end of the range.
But my code mistakenly passed in lc.firstSystem as the firstSystem parameter.
Thus it treated the *second* system as if it was the first,
since lc.firstSystem was set based on the system we just completed,
not the system we are about to consider.
Fix is to calculate when this new system is actually the first system of a section or not.
I calculate this the same way lc.firstMeasure itself is calculated.
Marc Sabatella <> no upstream, commit:ccb8fe0e020b6772b4c5390e830975cd706cd580
backports/10-ui-undo-track.diff fix #292024: chord symbols attached to fret diagrams in other staves James Thistlewood <> no upstream, commit:a418fc96563e2ecc155402f321a61e6a47f1fb5f
backports/11-ui-keys-move.diff fix #290047: require Shift to adjust segment with cursor keys in edit mode Marc Sabatella <> no upstream, commit:3fa9fe4c950f59478753724f3df3b1821b97e475
backports/14-crash-segments.diff Fix #293460: Crash when loading file with orphan Segment tags correct broken files on the fly and don't create them anymore. Joachim Schmitz <> no upstream, commit:32cbcfe03499e05b09099e28c6b994fc53912c1c
backports/15-crash-mxml.diff fix #287475 - crash on open MusicXML file lacking time signature Leon Vinken <> no upstream, commit:4857c4117ae2bf0829ede78c3572801f5c4fee73
backports/16-crash-workspace.diff fix #291986: fix a crash on removing a custom workspace via menu A more accurate version of 6a5a7cbcab30c94d2fcb0801670ba4ea694eb9c7 Dmitri Ovodok <> no upstream, commit:91b4788037003b5fe2c2b99371af5f3049041d0e
backports/16a-crash-qt514.diff fix #299654: Crash on startup with Qt 5.14 due to a failed assertion deep in Qt code Joachim Schmitz <> no upstream, commit:28a48037911f25981e252b03dce65ba2ed0a49e6
backports/17-crash-tremolo.diff fix #291698: ensure consistent state of two-notes tremolo after file reading Dmitri Ovodok <> no upstream, commit:754ddfd30733a426e0132f833e8a508fa26ab08d
backports/18-crash-pianoroll.diff fix #292310: Crash when adjusting Absolute Velocity in piano roll editor Matt McClinch <> no upstream, commit:105f81e6b61b020a1e6eb49f2f019db60d9c5363
backports/19-synth-state.diff fix #290323: synthesizer state duplicated when changing score with saved state James Thistlewood <> no upstream, commit:c9f84a4f5c1b959326276e88d480a550d2f10b67
backports/30-playback-fermata.diff fix #283628: fermata "play" property does not work Resolves: Howard-C <> no upstream, commit:993d705a293f7805d69ad3618317e1a02a71b26e
backports/20-tour-loop.diff fix #291646 initiate inspector tour on mouse press Fixes bug that caused inability to finish the inspector tour if user
undocked and dragged the inspector widget before tour was initiated. If
the inspector was undocked, then it would interfere with clicking
"Next" or "Close" in the tour's popup mbox.
This solution is to start the tour on MouseButtonPress so the tour
happens before the main mscore window loses mouse focus.
Eric Fontaine <> no upstream, commit:936a74322288f31c7c7281ae8dbf5df5a2d880e4
upstream/synth-glitches.diff fix #291756 explicitly-signed char fluid pitchadj C standards say that "char" may either be a "signed char" or "unsigned
char" but that it is up to the compilers implementation or the platform
which is followed. Some non x86 platforms, including PowerPC and ARM,
treat unspecified chars as unsigned chars, so it is necessary to
explicitly declare them as "signed char" (or to compile with
This fix ensures that fluid synth's sample's pitchadj value are
correctly read as signed.
Eric Fontaine <> no upstream, commit:4253d779cf46b9a72e5b170b6f14dcc332c7d0d7
backports/22-crash-fermata.diff fix #294156: Incorrect segment type for fermata Matt McClinch <> no upstream, commit:5925ea19adf87b32ea6c4967df6de00ec2bfd23f
backports/24-element-size.diff fix #283319: Time Signature disappears Matt McClinch <> no upstream, commit:da507a5dc9839a39874801d348244f346dd5517a
backports/25-relayout-beams.diff fix #294866: The direction of beamed notes does not immediately change when the beam is broken Resolves:
When a ChordRest is removed from its beam during layout, we need to
relayout its old beam. This will cause a recalculation of the stem
direction, in case it needs to change.
Matt McClinch <> no upstream, commit:282386da9115b09cfc9682b2ec7105f3cd355084
backports/26-crash-repeats.diff Fix #295224: end-start-repeat crashes in timeline Joachim Schmitz <> no upstream, commit:a5a979a758bae239cfae82421e71cf8087ac708b
backports/27-font-style.diff fix #289908: cannot apply italic or underline to glissando text The font style property is being converted from `FontStyle` to `bool`
instead of `int`, so bold, italic and underline are all the same.
This commit fixes that.
Howard-C <> no upstream, commit:146f6cf6398192aaab2888e2ee283d12922ae188
backports/28-crash-del-stafftypechange.diff fix #295898: Deleting a StaffTypeChange causes a crash in macOS Matt McClinch <> no upstream, commit:c4f477603ae468d911cc56eed5ab7ea1da08c4b0
backports/29-layout-barno-break.diff fix #292343: measure numbers restart from 1 after section break even if the corresponding property got disabled Some calls of `sectionBreak()` should be changed to
`sectionBreakElement()` so the property can be accessed by
Howard-C <> no upstream, commit:9f1f5409172e8aa1538b19c755854f5a6bbe9625
backports/32-ui-enter-timesig.diff fix #297477: apply alla breve to 4/4 changes to 2/2 instead Resolves:
4/4 and alla breve have different `_sig` value, so `setSig()` is
called, but if it's called after `_timeSigType` is changed, `setSig()`
will make the type `NORMAL` again, because if it's called by
`setProperty()`, there isn't a `TimeSigType` parameter available
(making it available will cause further issues), so `setSig()` uses the
default `NORMAL` as the type, thus the new type is overwritten.
If `setSig()` is called before `_timeSigType` is changed, all will be fine.
Howard-C <> no upstream, commit:72c6b76708d5c1069bcc1630b4ae4803c76da8b3
backports/33-playback-articulations.diff fix #288618: play property for articulations Peter Hieu Vu <> no upstream, commit:c1365329758d18f6f71583059c007ff31d6b1f7c
backports/33a-playback-articulations.diff fix #298188: fix not playing a note if its articulation playback is turned off Complements the fix in c1365329758d18f6f71583059c007ff31d6b1f7c to
take "play" property of articulations into account in MIDI rendering.
Also fix a test for this to be actually executed and to cover the
case of single-note dynamics MIDI rendering.
Dmitri Ovodok <> no upstream, commit:9a8d4fa50ef53a9ba8c62dd1e77978c3cdeef763
upstream/crash-drag.diff fix #297152: crash on Ctrl+Shift+drag on Linux (under ChromeOS) Resolves:
This might be unique to Linux apps on ChromeOS,
or it might apply to other Debian "stretch systems",
but apparently passing in a null or 1x1 pixmap to a QDrag
causes it to crash on exec().
This PR fixes the problem by making the pixmap 2x2.
It also allocates it statically to be sure there is no issue
with it coming off the stack.
I also replaced the deprecated QDrag::start() call with QDrag::exec(),
which we already do when dragging *from* the palette.
This is recommended as per Qt guidelines.
MarcSabatella <> no upstream, commit:484cd7e81e378f0fedf26ecd0a4d6cd5b77d3c61
backports/35-ui-mixer-reset.diff Fix #279024: double click on mixer's dial and sliders should reset them to their defaults JoshuaBonn1 <> no upstream, commit:34982d31c3b8f69416361af0b181bcbc70d89bce
backports/36-plugin-state.diff fix #291085 : cursor.addNote update internal segment reference Sonny-Klotz <> no upstream, commit:7470a650db8335e50f5edb153255e10c9c31cca9
backports/37-crash-parts.diff fix #297468: fix a crash on reading a corrupted score with linear layout mode in part In a corrupted score tick values may sometimes be not synchronized
between master score and parts. This may lead to incorrect setting
of layoutAll flag as ticks from different scores are compared.
Ensuring that only master score ticks are compared fixes layoutAll
flag for scores corrupted that way and prevents a crash due to not
making a full layout on score loading. This change makes no
difference for correctly saved scores.
Dmitri Ovodok <> no upstream, commit:c8a27535c248c357234e9a19bea850112c362793
backports/38-ui-units.diff Fix #296345 : "Offset" suffix for text style fixed to "sp" In the Edit Text Style dlg box, the suffixes of "Offset" values are
always "sp", but when "Follow staff size" is unchecked, the values are
considered "mm".
Maurizio M. Gavioli <> no upstream, commit:c7b37d8a26f1ae85136ff3bba9d8ae32134777dd
upstream/fix-staffidx.diff fix #281253: staff spacer down ignored on bottom of page Resolves:
A staff spacer on the bottom system of a page does not work correctly:
we are looking foir a spacer on the *first* staff rather than the *last*.
So a spacer on the last staff is ignored, and one on the first is used
when it shouldn't be.
The code to calculate the amount of spacer required below the last
system of a page relies on System::lastVisibleSysStaff(),
which is return the correct SysStaff, but we are then attempting
to access the idx member, which has never been set up and is always 0.
Fix is to initialize idx when setting up the list of staves.
MarcSabatella <> no upstream, commit:1d56d5564bf3079055dbc8fcbd23469045c292b4
upstream/crash-del-hbox.diff Fix a crash on removing HBox from a score Dmitri Ovodok <> no upstream, commit:24e239ed74770e24d2981883d5d435302735567a
upstream/crash-triplet.diff fix #285040 crash when changing a triplet's rest's duration - Prevent a null pointer deref when searching a linked tuplet. Rory McLeod <> no upstream, commit:f654f707997610f7de96eeaeadda1ad296034630
backports/43-playback-glitches.diff fix #280493: fix audio glitches on note input and playback on MacOS Ensure that realtime-context routines in sequencer do not access
QSettings directly and use cached preferences for faster access.
The exception is a hack with fake JACK transport on count-in: it
seems to require working with QSettings-based preferences directly.
This improves general performance of playback so audible glitches
which were reported for MacOS seem to not appear with this patch.
Dmitri Ovodok <> no upstream, commit:39305c9bc214795c7933024d4082105c4600c962
upstream/save-no-redundant.diff fix #301116: don't write default note event values along with non-default ones Howard-C <> no upstream, commit:d83b768f87a9d05a8b33a5b80e7043922ab7c337
backports/46-ui-ambitus.diff fix #284344: ambitus not redrawn on Update Range Howard-C <> no upstream, commit:cdd80e419dddb37a39c18ae52827189e8b6b7430
backports/47-ui-ambitus.diff fix #305941: changing octaves for ambiti doesn't work correctly Howard-C <> no upstream, commit:03d2242b8b1537348986f54fc9c5e8baddbee94c
upstream/ottava-size.diff fix #300738: Ottava (8va/8vb) number is too big Joachim Schmitz <> no upstream, commit:5301009829215619953d33f03932b09c3ead5e7b
gh9000/c41a06bc809f0f17349988e8be764dc3c760722c.diff Fix #321809: Crash when pasting note(head) onto MMRest Joachim Schmitz <> invalid
upstream/pitch-ottava.diff fix #293593 - Issues with ottavas Corrects first problem: Status doesn't display the pitch of note that have an
ottave line. This is solved in Note::tpcUserName().
Solves the second problem in issue 293593: Accidentals do apply if 8va sign is added.
This is solved in Note::updateAccidental(). All calculations are based on the
effective pitch of the a note rather than the actual pitch. The solution now
takes to ottava signs into account by using the actual pitch.
For easily find out whether an ottava is applied, a new method ottavaCapoFret()
is added which returns the pitch offset by an ottava (or capo fret). To prevent
code dublication, ppitch() also use this new ottavaCapoFret() method.
Niek van den Berg <> no upstream, commit:66be5a18fa40a6358b0a78723adcd42f15176fcc
backports/50-layout-divider.diff fix #298273: divider not displayed in some cases Resolves:
System dividers were not being displayed in certain cases:
if a fixed spacer is used, or in single page view.
In addition, dividers were displaying that shouldn't be
if layout changes and a system that was formerly not last on page
suddenly becomes last on page,
This is due to a series of errors in layoutPage()
where the dividers are managed.
This fix involves a number of aspects:
1) checkDivider now takes an extra boolean parameter to force deletion
2) we always call checkDivider with that parameter set to true
for the last system of a page
3) in the case where we don't stretch system distance
(the clause checking sList, noVerticalStretch, or System layout mode),
don't just remove dividers, but do the normal checkDivider call,
which adds or removes dividers as appropriate
4) in the calls to checkDivider at the end of the function
(which handle the normal case of non-final systems on the page),
dion't skip the checkDivider calls if a system hasFixedDownDistance.
I believe that check was added because it is appropriate in other places
that also check vBox, so it may have looked like this code should match.
But it shouldn't, there is no reason to skip dividers in this case.
Only the stretch calculations should be skipped.
MarcSabatella <> no upstream, commit:1c15bb0e49405508fe9803b2e371f42f3a61a1bb
backports/51-paste-hairpin.diff fix #299768: Hairpin: when copied, all custom settings are lost and the element resets to default Resolves: Matt McClinch <> no upstream, commit:306cf054b2da5463aa9c83f1b14673d9728b3596
backports/52-ui-enter-whole-note.diff fix #300926: Problem selecting and entering a whole note Resolves:
This allows a full measure rest to be changed into a "normal" rest even
if the actual length of the rest is not being changed.
Matt McClinch <> no upstream, commit:37ccd37db6f1d40c9a744d8b341b9ac59f2529da
upstream/prefs-radio.diff Fix #304466: The “I/O” tab of the “Preferences” dialog should use radio buttons instead of checkboxes Fixed a UI problem with the “I/O” tab of the “Preferences” dialog that
caused mutually exclusive options to be presented to the user as
checkboxes instead of radio buttons.
The underlying technical reason for this was that the Qt framework does
not allow group boxes to have radio buttons. This has been worked
around by subclassing the QGroupBox class and rendering the checkboxes
to look like radio buttons. This is sufficient for our purposes because
the application already overrides the checkboxes' behavior to work like
radio buttons.
J. Edward Sanchez <> no upstream, commit:406b7b6bf23de8248f77015b8c38ec6d876c04cd
upstream/pitch-Cb-B#.diff fix #290987: B# and Cb octave change Resolves:
Make sure that B#, B##, Cb, and Cbb describe themselves as being in the
correct octave. This is accomplished by calculating the octave based on
what the pitch would be if there were no accidental. Thus, there is no
need to special-case certain tpcs.
Matt McClinch <> no upstream, commit:58d603b499ba6d89455a98af382f4150fc4efd5b
backports/55-layout-timesig.diff fix #282246: "other" appearance in time sig props not working. This bug occurs when the user chooses an "other" time signature
property. This fix works by changing the implementation to be closer to
MuseScore 2. This works by simply only checking to use the numbers if
the numerator string is empty. This way, if the denominator string is
empty, the numerator string which will have the custom symbol, will line
up in the middle. This was how the implementation worked in MuseScore 2.
Tom Cannon <> no upstream, commit:cd3b3822e17416e3c7e16d72751083a2d362c606
backports/56-layout-spatium.diff fix #188061: values in sp unit don't remain unchanged after changing spatium This is simply because `Score::spatiumChanged()` isn't called after
applying changes in Page Settings dialogue. It is called for the
preview score in the dialogue though, so the preview score has the
correct display, but not the main score.
Howard-C <> no upstream, commit:71771cd4e3962d0c66fda0321aca883a228f51fa
upstream/crash-fontname.diff Fix #303619: MuseScore crashing when entering font name Resolves:
Passing an empty string to QWidget::setStyleSheet() causes the widget's
current style sheet to be removed, thus causing the widget's style to be
inherited from its parent. This creates a problem in QComboBox::showPopup(),
where it becomes possible that a pointer to a QStyle object could used after
the object itself has been destroyed. A style sheet of " " can be used to
override any previous style sheet without invalidating the current QStyle
Matt McClinch <> no upstream, commit:443ead70ac77c655095a67bfc0978145fda0c5de
backports/58-blank-lines.diff fix #292652: Empty lines become smaller DangWang <> no upstream, commit:0998fffc6613149fbaea55ccc9a1bb59d071e0c3
backports/58b-empty-lines.diff fix #303087: Fixed a bug where the cursor would be on the wrong height
after deleting all chars in a line
DangWang <> no upstream, commit:723f6b81322ebd8f9d1a586d94082fcb35f7fca9
backports/59-blank-lines.diff fix #307721: blank lines ignored at top of text elements SKefalidis <> no upstream, commit:25f92afae6374e1d610efd5b43b8effab36cf21b
upstream/wmclass.diff fix #307593: prevent duplicated icon on Ubuntu Joachim Schmitz <> no upstream, commit:0c1e286c8dd6ab0a55b031c886de1a2d394b29d2
backports/62-measure-count.diff Fix #306333 - Various type of edits change the measure count After a modification, a re-layout is triggered starting at the beginning of the
system. The measure number of the first measure of the system is taken adding 1
to the measure number of the last measure of previous system. However it was not
taken into account whether that measure was excluded from measure count.
Niek van den Berg <> no upstream, commit:bb057bb87e7d018dc5057b69de96ee7b644357a6
gh9000/745ae112a14dab30be263762f942136cc0629dcf.diff Fix #274126 Crash when entering music on top of an unterminated slur by MIDI larry <gudrun> invalid
backports/63-minimise-window.diff fix #298820: fix inability to minimize MuseScore on Linux with Gnome-based desktop environments The issue happens if some QML view is opened, e.g. a plugin dock or,
more importantly, Palettes panel. Fixes the issue by leaving the code
in Mixer and Play Panel forcing a window to take focus only in cases
when it might make sense: when opening the corresponding widget and
when unminimizing MuseScore if the widget is in floating state (otherwise
it won't take focus). This is enough to avoid triggering the issue
which happens only if Play Panel or Mixer is docked.
Dmitri Ovodok <> no upstream, commit:6804243e6671fa6a4961d8d2ded408cefddaf1ce
backports/change-staff-name.diff fix #88861: allow mid-score staff name changes Marc Sabatella <> no upstream, commit:c2a4051e6dd832ba6d8ff83cd4b3a70c262b944b
backports/plugin-remove-el.diff Fix #291790, fix #267604: Restore Chord.remove() and Chord.add() methods. Restore the add and remove QML methods for the
Chord object. Adds exposed Element.parent property.
These existed in v2.x. Finally it adds a removeElement
method to PluginAPI for general element disposal.
Dale Larson <> no backport, commit:19677e38768db0cd46832f30038d70012bc750a9
backports/plugin-select.diff Fix #291708: Expose Score.selection object to access to GUI selected elements. This commit exposes the Score.selection.elements list
enabling QML scripts to manipulate on user selected score elements.
The expectation is that additional selection information will be
provided on this object in the future.
Dale Larson <> no upstream, commit:216188f7ed8d652066ee9a6a6034d4cfcc099b81
backports/plugin-onRun.diff fix #72416: fix onRun() being executed in a wrong instance of dock and dialog plugins Dmitri Ovodok <> no upstream, commit:9d8d23f87e2045dd9f20dd4a6c078c6454bcb0ad
backports/plugin-size.diff Fix dock plugins appearing with zero height Plugin should assign reasonable values to implicitHeight/implicitWidth
(or, less preferably, height/width) properties for this to work
Dmitri Ovodok <> no upstream, commit:0aa01f3ea381416e6489d57f03dfc7ca2325b4b1
backports/plugin-qml.diff fix #275268: don't list non-plugin QML files in Plugin Manager Dmitri Ovodok <> no upstream, commit:ec7d9a85d79b45c558a4230ef35251122167064e
backports/plugin-parent.diff Plugins: fix a crash on getting element's parent if parent is null Dmitri Ovodok <> no upstream, commit:f1369d3a5ae1beca7a01fd06719ffe93f39cfb47
backports/5507.patch fix #292648: make courtesy accidentals stay if notes are changed using Ctrl+Up/Down Howard-C <> no backport, commit:431961b43657eb8463f358f53bdfdd802a8bde4d
gh9000/c7c294cb7166f5e1ab0da445e9493d14ac01c9b6.diff Fix #324232: after a MIDI export without expanding repeats, those are not played in the current session anymore either Joachim Schmitz <> invalid
backports/crash-F9.diff fix #309333: crash hiding palettes Resolves:
Crash happens on trying to set the focus upon closing the palette,
we try to restore the previous focused widget.
But it may no longer be valid.
Changed to return focus to the score view if possible,
otherwise let Qt worry about it.
Marc Sabatella <> no backport, commit:0c907ab8222859a645d9a2549da7d18ef11f8326
upstream/silence-qdebug.diff silence some qDebug output mirabilos <> yes
upstream/statusline-pitch-onofftime.diff indicate pitch and on/off time in the status line - indicate sounding pitch if the global concert pitch toggle
is off and the current instrument has an actual pitch,
i.e. not beat/rhythm slashes or drums; this will show the
identical pitch for nōn-transposing instruments by design
(to show we’re currently in transposing pitch mode, but the
current instrument is not transposing) which helps debugging
- indicate tuning (if any) after the sounding pitch (either mode)
- show on/off times if at least one of them is nōn-standard
The first change partially addresses node #283120.
The on/off time was requested in node #290900#comment-927933
(velocity is too hard, sorry about that).
mirabilos <> yes
upstream/improve-mscore-font.diff merge Parnassus accidentals into MScore and fix a couple of issues
Note: debian/upstream/mscore.ttf was generated by me with FontForge
from the fully patched mscore.sfd; FontForge at package build time
would have been more problematic…
mirabilos <> yes
upstream/fix-accidental-paren-pos.diff honour symbol advance width from font when drawing accidentals more specifically, accidentals in parenthesēs (or other enclosing
symbols) now have the advance width of the enclosing glyph and the
glyph from the accidental itself honoured fixing asymmetric render
of a parenthesised ♭
mirabilos <> yes
upstream/smufl-fixes.diff Update SMuFL metadata, fixing a typo and reducing indent plus drop redundant whitespace at EOL in JSON files
and regenerate sym.* from it
mirabilos <> yes
upstream/sprintf.diff fix possible buffer overflow compiler warning, very unlikely to hit in production
Better fix would be QString::asprintf() but Qt discourages that
for some unconceivable reason...
mirabilos <> yes
upstream/crash-frame-dblclick.diff fix #300855: Trying to add text to a vertical/horizontal frame after double click causes crash
The crash is caused by ed.getData(t) failing and returning nullptr,
where t is the newly added text element and ed is the score edit data.
The interesting thing is that this didn't return nullptr when not in
edit mode already before adding the text - it was only a problem when
adding text when already in edit mode. The line of relevance that is
the root of this whole problem is, in ScoreView::changeState:
if (s == state)
where s is the new state and state is the current one. This is right at
the start, so if we're already in edit mode, then the crucial
startEdit() call further down the function won't happen. Of course,
startEdit is the bit that's responsible for clearing the edit data and
adding the new edit data for the new text element. So, when it doesn't
run, there's no edit data for the new text. And when there's no edit
data, getData fails. And when getData fails, text->cursor(ed) crashes
on a Q_ASSERT.
James Thistlewood <> no upstream, commit:9c017b7c0c1a861811d5f598690eceef384bf46d
upstream/crash-frame-spacer.diff fix #303611: Adding fixed spacer can clash with vertical frame below, causing a crash. Joachim Schmitz <> no upstream, commit:58c12c8623e8444af3b1449989213e0d40249408
upstream/fix-ins-hframe.diff fix #306612: insert horizontal frame in front of frame using palette .
You can select a frame and insert any other type of frame in front
using the palette, but you cannot insert a horizontal frame this way.
Cause is simple: missing handler for this in acceptDrop() and drop().
Fix is trivial.
Marc Sabatella <> no upstream, commit:1ed931a11c1b3ef05cd336bac2ea853a206f6d77
backports/fix-add-img-to-frame.diff fix #307720: assertion failure adding image to vertical frame .
we are tryng to cast an element to an HBox that isn't necessarily one.
No reason to do this; it works just fine without the cast.
Marc Sabatella <> no upstream, commit:8a19c1532dd1847fd77b3b9dd9f9d9562f9baa25
upstream/crash-voice-tied.diff fix #307900: Crash when switching voices if notes are tied Joachim Schmitz <> no upstream, commit:01ba2c95007a77983050d47c4064fdb9bbd907da
backports/crash-nested-boxen.diff fix #307841: crashes and more with hbox within vbox .
When adding an hbox within a vbox,
we never set its tick,
and as a result other operations that depend on the tick
(like triggering layout) do not work correctly.
This is fixed by overriding HBox::tick() to check the parent.
It was also necessary to alter MeasureBase::triggerLayout(),
as it actually did nothing for hbox-within-vbox,
because it checks for prev() and next() which are nullptr here.
That check is needed to avoid triggering layout for measurebases
that are not yet added to the score.
This problem is solved here by checking the parent,
just as is done for the tick itself.
Marc Sabatella <> no upstream, commit:ef1a4c97347884baa7b85fa34afd0b14b2a0b883
upstream/corrupt-ins-frame.diff fix #307929: corruption when inserting frame in front of nested frame .
If you try to insert a frame in front of a horizontal frame
that itself is nested within a vertical frame,
the list of measurebases for the scores gets corrupted,
since the horizontal frame is not actually part of the list.
Solution here is to make sure we get the top level measurebase
that contains the current measurebase.
In most cases, it's the same thing,
but this will return the vertical frame in the case at hand.
Marc Sabatella <> no upstream, commit:f84585f7d7e09601bc7ca7fa2de179e908d309a1
backports/fix-frame-breaks.diff fix #288098, #307301, #305958, #295629: interactions between breaks and frames .
A number of bugs all turn out to be related to a single root cause,
where we don't correctly handle checking for section breaks in the
presence of frames.
In the case of the long instrument name showing inappropriately, it's
because in the case where the previous systems is just a frame, we
don't see any measure, so we fall back to relying on the layout of the
previous system having already set up the context for us. This isn't
necessarily valid when doing partial layout.
So we need to check more thoroughly here, accepting a frame if it has a
section break itself, but otherwise searching backwards looking for
frame with a break or a measure.
That is, we need to skip break-less frames when looking to see if we
are starting a section. I have therefore implemented such a function.
This turns out to also fix an issue with horizontal frames, where a
break on a horizontal frame ending a system was being ignored for the
purpose of setting long names.
The same applies to the new first system indent facility, so while
these bugs are not recent regressions, they take on new importance in
The new function is also used to fix a related by with measure numbers,
where a frame could get in the way of resetting them after a section
break. It is used again to solve the corresponding issue on MusicXML
Along the way I discovered a bug leading to an assertion failure when
deleting breaks attached to frames, so I needed to fix that by making
sure LayoutBreak::measure() doesn't assume its parent is in fact an
actual Measure as opposed to a MeasureBase.
Marc Sabatella <> no upstream, commit:d8fa6e6dea4184fa7b43085a69eac6fb5597dd62
backports/fix-frame-breaks-2.diff fix #317747: measure number appears after section break Resolves:
In implementing a bunch of related fixes for the behavior of
section breaks followed by frames or breaks *on* frames*
I introduced a new function designed to find relevant section breaks.
However, I missed one opportunity to use this function
(even though I left a TODO for this),
and in one place where I did call the function,
I neglected to actually use its return value.
As a result, in one situation where it previously worked
to place the section break on a frame
but failed when placing the frame after the section break,
my change merely reversed these two cases.
This commit fixes those two oversights.
In these two places where the code previously assumed
we had a MeasureBase that made sense to check for section breaks,
we now call findPotentialSectionBreak() to look backwards.
This ensures we don't miss breaks on or before frames
in these two places in the code.
Marc Sabatella <> no upstream, commit:5edf0d5260a718a3dec56be7ab80046e48b55eb9
upstream/fix-lyrics-init.diff Fix initialization of LyricsLineSegment members .
Fixes random hanging on PNG export of some scores, see
Dmitri Ovodok <> no upstream, commit:0a24d95a85c4f771103472a58a6e5596239f85d8
upstream/fix-lyrics-even-style.diff fix #290947: Lyrics: frame, border and highlight styling regressions .
where these for even lyrics can't get set and if tried odd lyrics are
getting set instead
Joachim Schmitz <> no upstream, commit:fac2d4f396816a9449a7565f6b68b2326e814c98
upstream/fix-lyrics-yoff-parts.diff fix #295357: lyrics Y offset in parts lost on save/reload .
In 3.0 - 3.0.5, it was not possible to change the Y position of lyrics.
You could try, and an offset would be recorded, but it would have no effect on layout.
Starting with 3.1, it became possible to change the Y position for lyrics.
For compatibility, we cleared the Y offset when reading 3.0 - 3.0.5 scores,
since it would have been ignored originally.
However, the code doing the version check fails in parts,
because mscoreVersion() returns an empty string in that case.
This change simply amends the check to use masterScore() rather than score(),
so parts no longer return an empty version,
and also adds an explicit check for the version being empty,
so the check works correctly in test mode,
where this field is often empty even for the master score.
Marc Sabatella <> no upstream, commit:30e1ea9674e64511523cf09c35f1c8a45fc92add
backports/initElementStyle-later.diff Make sure initElementStyle() is called after initialising the member to provide style settings are overwritten
by the member initialisation.
Niek van den Berg <> no upstream, commit:7ec409722d79bfca2eb1877006b1efc7d5aaa308
gh9000/3681b72032f35e731ff3e2bc933528a9ae594777.diff Fix #321716: Fix entering 8th notes in REALTIME MIDI input modes When comparing a Fraction (ticks2measureEnd) to the TDuration of the note being entered
(is.duration()), the Fraction is implicitly converted by the TDuration(const Fraction&) ctor.
Because of extra logic in TDuration, this can trigger a Q_ASSERT and crash Musescore in case the
remaining Fraction cannot be exactly converted into a proper TDuration. In this case, this point is
reached when ticks2measureEnd = 5/8 and is.duration() = 1/8.
Since what we really want here is to compare the Fraction to the exact note duration (and not the
other way around), we can just do an exact comparison between is.duration().fraction() and
ticks2measureEnd to achieve the same goal.
François-Xavier Thomas <> invalid
gh9000/994ca186ddac51f5f8b036b63d0cb29056b53c6e.diff Fix GH#9447: Crash on removing accidental from ambitus Fixed by just ignoring the operation, i.e. not removing the accidental.
Instead do this via the Inspector.
Igor Korsukov <> invalid
gh9000/fix-divbyzero.diff part of a bugfix that’s generally useful Joachim Schmitz <> invalid
gh9000/af53da9b4dae7e32edab41d1233e17331af6826a.diff Fix #328337: Crash on deleting time signatures in front of multimeasure rests Joachim Schmitz <> invalid
gh9000/8c4b4f69264deb398dc4767c9d2cf1f4da3447c7.diff Fix #324840: Ctrl+Scrollwheel zoom on Linux X11 With recent libinput versions zooming with Ctrl+Scrollwheel would zoom
in huge steps. This change enforces the previous behavior for Linux
Gabriel Vogel <> invalid
gh9000/f39e81f8d1f4ec7fb1367b2f175a887634474583.diff Fix #310158: Don't null terminate MIDI text meta events Daniel Rebelsky <> invalid
gh9000/b359c3d4131cb58b868107f0dc64c9c0e705749c.diff Fix GH#10407: ALSA sequencer device leaks when toggling MIDI ON/OFF Hans Petter Selasky <> invalid
gh9000/2c5901551af50cb703d182a684fc265ea6b7a4ee.diff Fix GH#10653: Crash converting to whole note twice, on a certain score. Joachim Schmitz <> invalid
gh9000/3a2ebebd69744347677022862cadfad5f0b40923.diff Fix #332925: Half duration shortcut crashes musescore when time signature is 5/4 Joachim Schmitz <> invalid
gh9000/8bb0d3e12382aedc865730dc4047b1830c4d928f.diff Fix #333979: Crash when changing time signature on a 'hanging' slur Joachim Schmitz <> invalid
gh9000/67826dec1a820bbfaa341ec5211c05215eb205e0.diff Fix #207346: Restrict first track to timing events Currently, exported MIDI files will have data events in the first MIDI
track. While this is not forbidden by the standard, the industry
convention is to only put timing related events in the first track, in
which case it is called a tempo track. MuseScore should follow that
convention because a lot of the available software assumes this
convention. This has been discussed and agreed upon in:
Omar Emars <> invalid
gh9000/fe07428c517fa3c2cfdb1432bd14f380bb921875.diff Fix #324388 negative midi-time larry <gudrun> invalid
gh9000/08aaeea07b5781ca421219d9bbe629d4f2fc166e.diff Fix #326259: Keep kar format on import i.e. don't remove slashes from lyrics on MIDI import
Those slashes are apparently used by Karaoke software to show one phrase
(delimited by those slashes) at a time. They don't really harm in
MuseScore, but are needed/wanted for MIDI export including
(which MuseScore can't do currently, but an external tool can, see and the lyrics most
probably need to get amended anyway (to add lyrics dashes and melismas)
juerg-mueller <> invalid
gh9000/4cacdc969fcef2712b1fa70681faa0495578224d.diff Fix #321074: Pitch bend sounds incorrectly when export to MIDI Joachim Schmitz <> invalid
gh9000/2eb5f1e60419886f5ea9e13dc7b1e8413a6bce3c.diff ENG-58: Fix melisma y position This commit fixes a very subtle error in the y-positioning of melisma
lines on lyrics under rests (a rare situation as-is). In short, the
equation for the y-position was ignoring the y-position and y-offset of
the lyric's chordrest. In normal circumstances (when a lyric is under a
chord), this value is 0, so the bug doesn't present itself until one
attempts to put melismas under rests (which is hard to do in the first
place, but does occur in some XML imports).
iveshenry18 <> invalid
experiments/crash-TebePoem.diff Fix crash in some files where getPropertyStyle( returns Sid::NOSTYLE
replace styleValue(x, getPropertyStyle(x)) with safePropertyStyleValue(x)
Also note what must be initialised before calling initElementStyle
and actually do that for these cases I could identify in 3.2.3
mirabilos <> yes upstream
experiments/more-uninit.diff Hopefully fix some more uninitialised accesses mirabilos <> invalid
experiments/pianoroll-offtime.diff Allow offtime past nominal note length in PRE (this already works when editing the MSCX XML manually)
Not applicable upstream since commit e6ec376a0728ada5833824
changed to a fraction-based measurement system.
mirabilos <> invalid
experiments/valid-soundfont.diff Fix multiple possible causes of crashes or audible artefacts - Track sample name so we can issue proper warning messages, show filename
- On read errors, issue an error message and mark sample as invalid
- Mark sample as invalid if Ogg Vorbis decompression (SF3) fails
- Do all sanity checks on {,loop}{start,end} with SF2 semantics for end;
only switch end to point to the last sample afterwards in only one place
- Adapt sanity checks and corrections to current FluidSynth, which matches
real-existing soundfonts better
- Add sanity check provided by the SoundFont spec as extra diagnostic
- Do not crash if there is no data[]
- Issue diagnostics if disabling a sample
- Swap two members to improve structure packing/alignment while there
- Use unsigned integers for SoundFont element sizes properly
mirabilos <> yes debian upstream
experiments/element-barbeat.diff Add Element::barbeat() and Element::accessibleBarbeat() These are const, and useful for determining the positions of elements
within the score, generally; used by experiments/log-collisions.diff
Also fix some screenreader label mistakes.
mirabilos <> yes
experiments/revert-restriking-patch.diff Revert the unison restriking patch The restriking patch went into 2.2 (and up), 3.x, and master,
while it is not unquestioned. It was never meant to last; MIDI
channel assignment to individual voices must be made user-friendly,
but then, a reversal was intended by upstream. This diff implements
said reversal, in preparation of those other (UI, mostly) changes.
except reversal of commit d5a81add16497f9b4b7fac5717ea005c31dcc1cf
mirabilos <> yes upstream
experiments/log-collisions.diff Log unison collisions (that would otherwise be restruck) mirabilos <> invalid
debian-specific/less-debug-msgs.diff remove a few debug statements run for us and do something with some… mirabilos <> invalid

All known versions for source package 'musescore3'