Package: musescore3 / 3.2.3+dfsg2-19

Metadata

Package Version Patches format
musescore3 3.2.3+dfsg2-19 3.0 (quilt)

Patch series

view the series file
Patch File delta Description
gh9000/3a2ebebd69744347677022862cadfad5f0b40923.diff | (download)

libmscore/cmd.cpp | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

 fix #332925: half duration shortcut crashes musescore when time signature is 5/4


gh9000/8bb0d3e12382aedc865730dc4047b1830c4d928f.diff | (download)

libmscore/range.cpp | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

 fix #333979: crash when changing time signature on a 'hanging' slur


gh9000/c7c294cb7166f5e1ab0da445e9493d14ac01c9b6.diff | (download)

libmscore/rendermidi.cpp | 2 2 + 0 - 0 !
libmscore/score.h | 1 1 + 0 - 0 !
2 files changed, 3 insertions(+)

 fix #324232: after a midi export without expanding repeats, those are not played in the current session anymore either


gh9000/67826dec1a820bbfaa341ec5211c05215eb205e0.diff | (download)

mscore/exportmidi.cpp | 18 10 + 8 - 0 !
mscore/exportmidi.h | 2 1 + 1 - 0 !
2 files changed, 11 insertions(+), 9 deletions(-)

 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:
 https://musescore.org/en/node/207346


gh9000/fe07428c517fa3c2cfdb1432bd14f380bb921875.diff | (download)

mscore/importmidi/importmidi.cpp | 9 6 + 3 - 0 !
1 file changed, 6 insertions(+), 3 deletions(-)

 fix #324388 negative midi-time


gh9000/08aaeea07b5781ca421219d9bbe629d4f2fc166e.diff | (download)

mscore/importmidi/importmidi_lyrics.cpp | 23 2 + 21 - 0 !
1 file changed, 2 insertions(+), 21 deletions(-)

 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
 https://github.com/juerg-mueller/InsertLyrics) and the lyrics most
 probably need to get amended anyway (to add lyrics dashes and melismas)


gh9000/4cacdc969fcef2712b1fa70681faa0495578224d.diff | (download)

mscore/preferences.cpp | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

 fix #321074: pitch bend sounds incorrectly when export to midi


gh9000/2eb5f1e60419886f5ea9e13dc7b1e8413a6bce3c.diff | (download)

libmscore/lyricsline.cpp | 12 6 + 6 - 0 !
1 file changed, 6 insertions(+), 6 deletions(-)

 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).


gh9000/7979.diff | (download)

mscore/aboutmusicxmlbox.ui | 7 3 + 4 - 0 !
mscore/musescore.cpp | 7 3 + 4 - 0 !
2 files changed, 6 insertions(+), 8 deletions(-)

 help > musicxml links to contributor licenses rather than end-user licenses


gh9000/8478.diff | (download)

libmscore/dynamic.cpp | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

 make dynlist const to avoid compiler warnings


gh9000/fb7d9eca5b2e62869f318f8370c57fd44ac48555.diff | (download)

libmscore/cmd.cpp | 1 0 + 1 - 0 !
mscore/data/shortcuts-Mac.xml | 4 0 + 4 - 0 !
mscore/data/shortcuts.xml | 4 0 + 4 - 0 !
mscore/data/shortcuts_AZERTY.xml | 4 0 + 4 - 0 !
mscore/shortcut.cpp | 10 0 + 10 - 0 !
5 files changed, 23 deletions(-)

 fix #329951: deleting measures fails after pressing ctrl+i/cmd+i
 by disabling that broken resp. never completed feature,
 as in its current state it can lead to score corruption and
 some other strange and unwanted side effects


experiments/crash TebePoem.diff | (download)

libmscore/beam.cpp | 1 1 + 0 - 0 !
libmscore/lyrics.cpp | 1 1 + 0 - 0 !
libmscore/ottava.cpp | 3 2 + 1 - 0 !
libmscore/scoreElement.cpp | 25 21 + 4 - 0 !
libmscore/scoreElement.h | 1 1 + 0 - 0 !
libmscore/textbase.cpp | 4 2 + 2 - 0 !
6 files changed, 28 insertions(+), 7 deletions(-)

 fix crash in some files
 where getPropertyStyle(spp.pid) 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
experiments/more uninit.diff | (download)

awl/styledslider.h | 4 2 + 2 - 0 !
fluid/fluid.cpp | 18 12 + 6 - 0 !
fluid/voice.cpp | 10 10 + 0 - 0 !
mscore/scoreview.h | 4 2 + 2 - 0 !
4 files changed, 26 insertions(+), 10 deletions(-)

 hopefully fix some more uninitialised accesses
experiments/pianoroll offtime.diff | (download)

mscore/pianolevelsfilter.h | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

 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.
experiments/valid soundfont.diff | (download)

fluid/sfont.cpp | 87 67 + 20 - 0 !
fluid/sfont.h | 6 4 + 2 - 0 !
fluid/sfont3.cpp | 55 37 + 18 - 0 !
fluid/voice.cpp | 45 22 + 23 - 0 !
fluid/voice.h | 8 4 + 4 - 0 !
5 files changed, 134 insertions(+), 67 deletions(-)

 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
experiments/element barbeat.diff | (download)

libmscore/element.cpp | 49 49 + 0 - 0 !
libmscore/element.h | 2 2 + 0 - 0 !
mscore/scoreaccessibility.cpp | 48 8 + 40 - 0 !
mscore/scoreaccessibility.h | 1 0 + 1 - 0 !
4 files changed, 59 insertions(+), 41 deletions(-)

 add element::barbeat() and element::accessiblebarbeat()
 These are const, and useful for determining the positions of elements
experiments/revert restriking patch.diff | (download)

libmscore/rendermidi.cpp | 2 1 + 1 - 0 !
mscore/exportmidi.cpp | 9 0 + 9 - 0 !
mscore/seq.cpp | 33 10 + 23 - 0 !
mtest/libmscore/midi/tst_midi.cpp | 2 0 + 2 - 0 !
synthesizer/event.cpp | 24 17 + 7 - 0 !
synthesizer/event.h | 7 1 + 6 - 0 !
6 files changed, 29 insertions(+), 48 deletions(-)

 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,
experiments/log collisions.diff | (download)

synthesizer/event.cpp | 31 31 + 0 - 0 !
1 file changed, 31 insertions(+)

 log unison collisions (that would otherwise be restruck)
experiments/CVE 2023 44428.diff | (download)

mscore/capella.cpp | 60 29 + 31 - 0 !
mscore/capella.h | 16 10 + 6 - 0 !
mscore/capxml.cpp | 2 1 + 1 - 0 !
3 files changed, 40 insertions(+), 38 deletions(-)

 improve the capella import
 Since the reporter of CVE-2023-44428 does not offer any
 information (testcases, reproducers or patches), attempt
 to improve the situation by plugging missing initialisation
 and other checks. Besides that, do not load untrusted files.
 .
 Endianness is also corrected.
experiments/cxx20 warnings.diff | (download)

libmscore/articulation.cpp | 2 2 + 0 - 0 !
mscore/exportxml.cpp | 6 3 + 3 - 0 !
mscore/importgtp-gp6.cpp | 4 2 + 2 - 0 !
mscore/importmxmlpass2.cpp | 6 3 + 3 - 0 !
omr/omrview.cpp | 2 1 + 1 - 0 !
thirdparty/intervaltree/IntervalTree.h | 6 3 + 3 - 0 !
thirdparty/rtf2html/rtf2html.cpp | 2 1 + 1 - 0 !
7 files changed, 15 insertions(+), 13 deletions(-)

 fix c++20 compatibility warnings by gcc 14
 and some other warnings shown
experiments/importmidi asserts.diff | (download)

all.h | 2 2 + 0 - 0 !
mscore/importmidi/importmidi.cpp | 2 1 + 1 - 0 !
mscore/importmidi/importmidi_chord.cpp | 4 2 + 2 - 0 !
mscore/importmidi/importmidi_chord.h | 2 1 + 1 - 0 !
mscore/importmidi/importmidi_clef.cpp | 2 1 + 1 - 0 !
mscore/importmidi/importmidi_drum.cpp | 2 1 + 1 - 0 !
mscore/importmidi/importmidi_fraction.cpp | 2 1 + 1 - 0 !
mscore/importmidi/importmidi_lrhand.cpp | 2 1 + 1 - 0 !
mscore/importmidi/importmidi_lyrics.cpp | 2 1 + 1 - 0 !
mscore/importmidi/importmidi_quant.cpp | 6 3 + 3 - 0 !
mscore/importmidi/importmidi_simplify.cpp | 2 1 + 1 - 0 !
mscore/importmidi/importmidi_tie.cpp | 4 2 + 2 - 0 !
mscore/importmidi/importmidi_tie.h | 2 1 + 1 - 0 !
mscore/importmidi/importmidi_tuplet.cpp | 8 4 + 4 - 0 !
mscore/importmidi/importmidi_tuplet.h | 2 1 + 1 - 0 !
mscore/importmidi/importmidi_tuplet_filter.cpp | 4 2 + 2 - 0 !
mscore/importmidi/importmidi_tuplet_tonotes.cpp | 4 2 + 2 - 0 !
mscore/importmidi/importmidi_tuplet_tonotes.h | 2 1 + 1 - 0 !
mscore/importmidi/importmidi_tuplet_voice.cpp | 2 1 + 1 - 0 !
mscore/importmidi/importmidi_tuplet_voice.h | 2 1 + 1 - 0 !
mscore/importmidi/importmidi_voice.cpp | 2 1 + 1 - 0 !
mscore/importmidi/importmidi_voice.h | 2 1 + 1 - 0 !
22 files changed, 32 insertions(+), 30 deletions(-)

 enable importmidis debugging code
 Without this, it FTBFS as it assumes the body of an assertion
 is never evaluated if !QT_DEBUG and doesnt define the methods
 the asserts use then :/ and we generally want to have the checks.
experiments/arm asserts.diff | (download)

all.h | 12 7 + 5 - 0 !
ass.cpp | 60 60 + 0 - 0 !
build/Linux+BSD/mscore.1.in | 4 3 + 1 - 0 !
bww2mxml/CMakeLists.txt | 1 1 + 0 - 0 !
libmscore/CMakeLists.txt | 1 1 + 0 - 0 !
mtest/CMakeLists.txt | 7 7 + 0 - 0 !
6 files changed, 79 insertions(+), 6 deletions(-)

 forcibly enable q_assert{,_x} checks
 Some security-relevant checks are hidden behind assertions by upstream;
 to help alleviate CVE-2023-44428 and possibly other issues, arm asserts
 which increases safety at the risk of more crashes (which can then be
 investigated, hence the verbosity of the info). Much of this is specific
 to glibc-based systems though.
 .
 For now, we arm the abort() end as opt-in, but in a subsequent upload,
 it will be opt-out instead for security.
experiments/keep message handler.diff | (download)

libmscore/mscore.cpp | 2 2 + 0 - 0 !
libmscore/mscore.h | 2 2 + 0 - 0 !
mscore/musescore.cpp | 1 1 + 0 - 0 !
mscore/plugin/pluginCreator.cpp | 2 1 + 1 - 0 !
4 files changed, 6 insertions(+), 1 deletion(-)

 keep a set qtmessagehandler across plugin creator runs
experiments/our message handler.diff | (download)

mscore/musescore.cpp | 106 105 + 1 - 0 !
1 file changed, 105 insertions(+), 1 deletion(-)

 install a message handler for qt
 If the QT_MESSAGE_PATTERN envvar is set (i.e. the user has defined
 their own log pattern), just skip loglevel debug messages unless
 running in debug mode. Otherwise (default), format messages in the
 Debian-prfixed style and with file/function/line number.
experiments/msgs manageable.diff | (download)

libmscore/spannermap.cpp | 2 2 + 0 - 0 !
1 file changed, 2 insertions(+)

 tone down some debug messages
 our message handler is a bit loud, hide the
 Score::removeSpanner not found message unconditionally
debian specific/less debug msgs.diff | (download)

libmscore/rendermidi.cpp | 2 1 + 1 - 0 !
libmscore/repeatlist.cpp | 2 1 + 1 - 0 !
libmscore/xmlreader.cpp | 3 2 + 1 - 0 !
3 files changed, 4 insertions(+), 3 deletions(-)

 remove a few debug statements run for us
 and do something with some
experiments/fluid mutex.diff | (download)

fluid/fluid.cpp | 9 9 + 0 - 0 !
fluid/fluid.h | 1 0 + 1 - 0 !
fluid/sfont.cpp | 8 7 + 1 - 0 !
3 files changed, 16 insertions(+), 2 deletions(-)

 avoid ub (destroying a locked mutex)
 Unlock it just before end of holders destructor; ensure all
 callers wont use it again.
experiments/pdf independent of device resolution.diff | (download)

libmscore/lyricsline.cpp | 2 1 + 1 - 0 !
libmscore/textbase.cpp | 4 2 + 2 - 0 !
mscore/file.cpp | 15 12 + 3 - 0 !
mscore/musescore.cpp | 2 1 + 1 - 0 !
4 files changed, 16 insertions(+), 7 deletions(-)

 try to make pdfs generated independent of the screen,
 the QT_QPA_PLATFORM device, and ideally the -D options DPI
experiments/manpage headless.diff | (download)

build/Linux+BSD/mscore.1.in | 16 11 + 5 - 0 !
1 file changed, 11 insertions(+), 5 deletions(-)

 document gui-independent way of doing batch converts
 It should not need -D 360 in mu3 with all our patches applied.