Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

stuff from 3.x being different or not in 3.5rc #6338

Closed
wants to merge 47 commits into from
Closed

Conversation

Jojo-Schmitz
Copy link
Contributor

@Jojo-Schmitz Jojo-Schmitz commented Jul 15, 2020

probably not all differences being relevant?

Or maybe none of them are, seems all orat least some of these differences are fake, direktly comparing the files betwnewn 3.x and 3.5rc seems to show no such differences?
What the heck is going on here?

MarcSabatella and others added 30 commits June 24, 2020 11:56
Resolves: https://musescore.org/en/node/307005

Currently chord symbols playback is off by default
controlled by a global program preference.
This means a given user has to learn the feature exists before using it,
which is not how we handle playback of dynamics, ornaments, etc.
And worse, it means a user might turn it on, hear the chord playback,
save and share a score that relies on it,
but the people he sahres it with (including musescore.com)
will not hear the chords unless they happen to have enabled the option.
And musescore.com won't play it no matter what
(or else, it will always play chords symbols for everyone,
which isn't good either).

This commit removes the preference and enables chord sytmbol playback
according to the style setting and property on the chord symbol itself,
which is exactly how it is done for ornaments etc.
The style setting and property already existed,
they were just being overridden by the program preference.
Reverted the default zoom type to “100%” (as it was prior to #5623).
fix #307005: chord playback default not consistent
Resolves: https://musescore.org/en/node/302710

Chord symbols current play back using the sound of the staff
to which they are attached.
This makes perfect sense for instruments that normally play chords,
but is not expected when chords are attached to vocal or other staves.
Unfortunately it's not really possible for MuseScore
to know what sounds are actually being used,
and it would be difficult to decide on which instruments
should use their own sound versus a default.
So this change just arbitrarily sets the default harmony channel
to MIDI program 0, which is piano in general midi soundfonts.

It's still possible for individual socres or templates to override this,
and overrides can also be programmers into instruments.xml.
A potential downside of doing so is that the harony channel
would then be created even before chord symbols are present.
That's not *necessarily* a problem, but to me it's something
to worry about later.
Resolves: https://musescore.org/en/node/307428

A recent change simplified the handling
of the remove selected range command in the right-click menu,
but also disabled it for elements other than rests.
Unfortunately, it was never re-enabled, leaving you unable
to delete measures after right-clicking something other than a rest.
There is no good place to re-enable it as far as I know,
so I have changed this to simply not disable it.
Instead, I don't display it at all except for rests or notes.
This doesn't change the *measure* popup, only the *object* popup.
Resolves: https://musescore.org/en/node/307430

The "jazz" interpretation works as expected during normal playback
and also in Realize Chord Symbols if the chord is actual set to jazz
in its properties (via the Inspector).
But, if a chord is set to literal and you do Realize Chord Symbols
and you use the override options in the dialog to force jazz,
it does not work.
Cause is that the underlying getIntervals function was ignoring
the parameter it was passed, and was always using the object member.
I tested to be sure this parameter is being set correctly
in all code paths.
Resolves: https://musescore.org/en/node/288962

When the code was added to fix the begin/continue/end text
checkboxes to actually clear the text,
the property flags were not being set,
so the cleared text was not being written to the file,
and thus the change was lost on save/restore.
This simply sets the flag to unstyled when needed,
thus allowing the change to be saved correctly.
Resolves: https://musescore.org/en/node/276141

A common complaint since the release of MuseScore 3 is
that we no longer allocate additional space between staves
for lyrics and other elements above/below the staff,
when in continuous view.
That's because these calculations in page view can be optimized
so they only need to be done for affected systems on each layout.
In continuous view, there is only one system,
so it would mean a full layout, which is very slow.
But MuseScore 2 did this, and people writing vocal music especially
were accustomed to this automatic staff spacing.
Since lyrics were about the only thing that did this spacing,
it wasn't as expensive as it would be using MuseScore 3 autoplace.
And yet, MuseScore 2 was extremely slow with large scores,
because it lacked any range optimizations, even in page view.

This change finds a compromise that should work well.
On the initial layout in continuous view, we do build a full skyline,
so it is easy enough to add space for each staff then,
and any performance penalty is paid only at that time.
Any extra space needed for this is remembered for subsequent layouts.
On future layouts, we do use a range, so we only have a partial skyline.
The code here calculates the space needed just within the current range,
but it also compares this with the remembered value,
so uses whichever is larger (and remembers this new value if different).

The result is that the spacing is correct when first opening the score,
or when first switching to continuous view.
After that, any edits that *increase* the required space
(such as adding a new verse of lyrics)
will do so as expected.
If you later make a change that reduces the amount of space requires,
we cannot reclaim that space, since a full layout would be required
in order to detect that we truly don't need the space anywhere.
But you can always reclaim it by switching to page view and back.

The code to do the partial skyline comparison is not free,
but it happens only once per staff per layout,
so in theory it should have a negigible effect on performance.
If this assumption turns out to be wrong,
we can switch to the code that skips the partial skyline comparison
except on the initial layout.
This is included but ifdef'ed out.
…-to-100-percent

Fix #307121: Revert default zoom type to “100%”
…dWithModifiers

Fix #307077: Dragging element(s) with keyboard modifiers were retaini…
[MusicXML] Add missing Gould arrow quartertone accidentals
fix #307242: [MusicXML import] Musescore crashes when loading .mxl fi…
fix #302710: change default for harmony channel to piano
fix #307428: don't disable "remove selected range"
fix #307430: jazz override does not work in Realize Chord Symbols
fix #288962: continue text customizations not saved
fix a warning reg. a no longer existing tabStop
fix #307548: Lines palette: duplicate symbols
…FixWithVerticalScrolling

Fix #307323: Vertical-frame dragging with vertical-scrolling performs…
Changed appimage release path from continuous to 12 +collect_artifacts
Jojo-Schmitz and others added 17 commits July 9, 2020 12:05
as it changed from `MuseScore_General v0.1.8` to
`Musescore_General v0.2`, note the 2nd `s`.

This is not about the soundfont's file name (which would
be case insensitive on Windows, but not on Mac and Linux),
but about its internal meta data.
Fixes a few cases where scaling still is not performed properly
because an individual element is not scaling itself properly
or its parent is scaling it multiple times (ties).
In the case of pedal, the scaling problem happens on add,
because the line width was never listed as a styled property.
Make the check for the soundfont name case insensitive
fix #276141: no space for lyrics in continuous view
Fix #307623: Y offsets change when stave space is changed
This reverts commit dd98fad, which made images added to measures children of the measure rather than children of the measure's first segment. This turned out to be not such a great idea after all, since it really only solved a problem that is better solved by simply turning off automatic placement for the image.
Be sure to layout images within Score::layoutSystemElements().
…e and existing parts

There is code to correctly deal with images, but it is not reached unless ElementType::IMAGE is excluded from what is handled earlier.
1) Supports multiple elements at same segment.
2) Works on autoplaced elements only.
3) Invisible elements will be aligned but are not used as a reference.
4) Manual placed elements will be ignored for reference but will be moved
   and will remain its relative position with respect to the aligned element.
This is because the `mag()` factor isn't taken into consideration.

Along with multiplying `mag()` in some places, I also created a new member function `minHeight()` for `Tremolo` class to calculate the effective height of tremolo strokes, that is, the height the strokes spread across a given vertical line, without multiplying `spatium()`, to resolve an issue of stem length (a bit longer than intended when direction is down and has single-note tremolo on it) which is not obvious in normal size but obvious in cue size. Several places are already using this effective height, so a separate function for calculating it is really convenient to use.
@Jojo-Schmitz Jojo-Schmitz changed the title stuff from 3.x being different in 3.5rc stuff from 3.x being different or not in 3.5rc Jul 15, 2020
@@ -4,7 +4,7 @@ clone_folder: C:\MuseScore
# set clone depth
clone_depth: 50 # clone entire repository history if not defined

image: Visual Studio 2019
image: Previous Visual Studio 2019
Copy link
Contributor Author

@Jojo-Schmitz Jojo-Schmitz Jul 15, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This change is in 3.5rc and in 3.x, so not an issue, but why then is it listed here?

@@ -103,7 +103,6 @@
#define PREF_IO_PORTMIDI_OUTPUTLATENCYMILLISECONDS "io/portMidi/outputLatencyMilliseconds"
#define PREF_IO_PULSEAUDIO_USEPULSEAUDIO "io/pulseAudio/usePulseAudio"
#define PREF_SCORE_CHORD_PLAYONADDNOTE "score/chord/playOnAddNote"
#define PREF_SCORE_HARMONY_PLAY "score/harmony/play"
Copy link
Contributor Author

@Jojo-Schmitz Jojo-Schmitz Jul 15, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This change is not in 3.5rc!

It is part of #6247, which indeed seems missing in 3.5rc

@@ -20,7 +20,7 @@
CPUS := $(shell getconf _NPROCESSORS_ONLN 2>/dev/null || getconf NPROCESSORS_ONLN 2>/dev/null || echo 1)

PREFIX = "/usr/local"
VERSION := $(cmake -P config.cmake | sed -n -e "s/^.*VERSION *//p")
VERSION := $(shell cmake -P config.cmake | sed -n -e "s/^.*VERSION *//p")
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This change is in 3.5rc and in 3.x, so not an issue, but why then is it listed here?

@@ -10,6 +10,7 @@ Comment[fr]=Gravure de partitions musicales
Exec=mscore@MSCORE_INSTALL_SUFFIX@ %F
Icon=mscore@MSCORE_INSTALL_SUFFIX@
StartupNotify=true
StartupWMClass=mscore@MSCORE_INSTALL_SUFFIX@
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This change is in 3.5rc and in 3.x, so not an issue, but why then is it listed here?

@@ -175,7 +175,8 @@ function download_linuxdeploy_component()
if [[ ! -d "appimagetool" ]]; then
mkdir appimagetool
cd appimagetool
download_appimage_release AppImage/AppImageKit appimagetool
# `12` and not `continuous` because see https://github.com/AppImage/AppImageKit/issues/1060
download_appimage_release AppImage/AppImageKit appimagetool 12
Copy link
Contributor Author

@Jojo-Schmitz Jojo-Schmitz Jul 15, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These changes are in 3.5rc and in 3.x, so not an issue, but why then are they listed here?

if (extraRest) {
extraRest->setTuplet(tuplet);
tuplet->add(extraRest);
}
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These changes are in 3.5rc and in 3.x, so not an issue, but why then are they listed here?

map["double-sharp-down"] = AccidentalType::SHARP2_ARROW_DOWN;
map["double-sharp-up"] = AccidentalType::SHARP2_ARROW_UP;
map["flat-flat-down"] = AccidentalType::FLAT2_ARROW_DOWN;
map["flat-flat-up"] = AccidentalType::FLAT2_ARROW_UP;
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These changes are in 3.5rc and in 3.x, so not an issue, but why then are they listed here?

@Jojo-Schmitz
Copy link
Contributor Author

OK, a git diff 979001e 0c1e286 (the latest commits to 3.5rc and 3.x) shows that the only relevant part is PR #6247, which had been merged onto 3.x but not (yet) into 3.5rc

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.