-
Notifications
You must be signed in to change notification settings - Fork 2.6k
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
[MU3] Fix #277279: Lack of Capabilities in the Custom Time Signature Creator #6550
[MU3] Fix #277279: Lack of Capabilities in the Custom Time Signature Creator #6550
Conversation
92a60f6
to
15d7e57
Compare
49b3d68
to
ff58f41
Compare
ff58f41
to
875eeb1
Compare
Any chance to get this ready for 3.6? BTW: that |
I think this is the best solution that could make it into 3.6 rather than having to wait for 4.0. I recommend:
|
875eeb1
to
df68a7d
Compare
d2ddd26
to
554ea6c
Compare
Just tested the PR, and it works like a charm. It also comes with a bonus: It's fairly common in jazz Charts to show a closing bracked after the time sig, like in this example: This was possible already with Musejazz, that provides a closing parenthesis by default in its common and cut time sigs, but can now be done with any. More comments in this thread. |
Hey! Thanks for your comments. I was just updating the PR and preparing it for merge. Nice that you are having fun :D Yes, this includes a small fix with the 'ADVANCE' value not being properly added to some glyphs when fallback is needed (for example the plus sign on a 3+2/4 time signature in gootville font in 3.5.2) and the side effect is that the ornaments were fixed. |
554ea6c
to
1c2bd7c
Compare
@Tantacrul Dorico has a lot of these latex inputs, and even though it requires some documentation reading, in the end it is super fast to type and powerful. These custom time sigs are for advanced users. I wouldn't see someone inputting |
How do these advanced users figure this out? I'm an advanced user and I would never have guessed. As a general rule, do not put options in front of people that can not be deduced. This is a fairly common design principle. Another point I'd make is that it is confusing too. It could easily be misconstrued by a less advanced user as something that allows you to actually change your time signature. I wouldn't be surprised to hear feedback from people trying this out by typing '3/8' into that box and thinking the result is broken. The difference between this and the Dorico solution is that Dorico provide proper time signature options in a place people can find them, with the Latex stuff being a fast method of achieving the same thing. Here, we're putting a far less useful thing up font - assuming people will figure it out - and hoping it won't be misconstrued as the type of time signature settings most people will be looking for. |
Just added a bunch of links to issues and discussions about time signature needs I tried to keep in mind. Basically, people having to hide time signatures to work around graphic needs, which are common engraving practices. The visual needs of time signatures can be complex and very diverse (as they are in real case examples) even if the real values are simpler. Dorico has a nice implementation but even so there will be limitations by design, from what I see. I'd like to see working real Numerator/Denominator fields above the Appearance Text field but that was not possible with current limitations, both mine and from the current code. Maybe a better label would help clarify this is meant for appearance only? ( Alternate Text, Appearance Override?) I opted for the smart text among other ideas that were discussed, because it doesn't block any future development: ultimately this property of the timeSig will most probably be saved on a string anyway, even if the interface is changed i.e. to a graphic draggable interface or whatever else. As for the bracket 'codes', most users won't never use them, as they cover really specific needs. So that user will probably have to find out 'how to' in the documentation for the first time he needs fractions, or the very rare Carl Orff signatures (the note values in denominators). Other than that, the use of the text field is pretty straightforward, and it reflects instantly on the selected time signature. |
I suggested adding some funky examples to the Time Signatures palette in the Advanced workspace. I don't think it has been done yet, but if it was then it would enable users to add one of those examples and right click on it to see how it was constructed.
The existing dialog had that problem already, so I don't think that should count against this PR. Ultimately I think this PR is a great improvement over what was available before, with no downsides that were not already present (except the Large Time Signature issue that is going to be removed/resolved anyway). Clearly a better interface is desirable at some point, but I see no reason to make advanced users wait for it when this is ready now. Even when that interface comes along, we will in all likelihood end up storing the digits in the MSCX file using the same LaTeX-style code as is implemented here. |
I think it's important to understand that the note value symbols, as well as the vulgar fractions, are here because of specific, uncommon but known styles of time signatures several people requested, and whoever needs them is because they know what to do with them. It's not like they are common available 'choices' for common use, and that users will have to figure out how to arbitrarily use in their music or otherwise will have problems creating time signatures. It's an advanced feature, just that. |
Since I removed the 'Large' checkbox, I will not link or otherwise modify the Scale X and Y fields - Although I agree with the suggestion, that feature was implemented long time ago (not by me), it is not related to this PR anymore, and most importantly, I have no clue how to do that. |
rebase needed |
1c2bd7c
to
1a529ed
Compare
1a529ed
to
d4f95d0
Compare
d4f95d0
to
0181bf5
Compare
Rebased. Also fixed 'Other' radio button and combo not working with the new single string implementation. |
3.x merges are closed now, I suggest to create a new one after the discussion with Tantacrul about the UX part of this feature |
Resolves: https://musescore.org/en/node/277279
Lack of Capabilities in the Custom Time Signature Creator
https://musescore.org/en/node/279745
Allow periods in custom time signatures
https://musescore.org/en/node/277665
Cannot use a decimal dot or vulgar fractures like ½ for time signatures
See other requests:
https://musescore.org/en/node/312343 Time SIgnature Palette: Parenthesis
https://musescore.org/en/node/312343 3/4 Time Signature with Secondary 6/8 in parenthesis
https://musescore.org/en/node/305902 Dual Time Signatures
This PR replaces the appearance numerator/denominator fields with a single parsed text that allows more capabilites to the appearance of time signatures. These changes were made in the Time Signature creator (timedialog), Time Signature properties, and additionally added to the time signature Inspector directly, which is the faster way to enter text and change the appearance of a time signature (can be done locally if a single t/s is selected pressing CTRL).
This single field is properly parsed to identify "blocks" of time signatures (numerator/denominator) as well as complementary glyphs such as Operators +=-x and Parentheses ( ). In the absence of a denominator, the glyphs are drawn vertically centered, as current, and the Plus and Parentheses glyphs are replaced by the large versions.
Examples:
"2/4"
"3/4(6/8)"
"3+2/8"
"2/8+5/8"
"C"
"4/4=C"
(NOTE: The 'Large Time Signature' feature from the inspector and at the end of the video below was removed from this PR, for a future work)
In action:
Bracketed special characters:
To enter fractional glyphs, use brackets: ex. 3[1/2]/4
Note value glyphs like quarter, dotted quarter, can be entered in denominators (Carl Off style time signatures) by using numbers and dots within brackets: [2] [4] [8] and [16] where [8] is an eight note, [4.] is a dotted quarter note. Ex: 3/[8.]
Other (unrecognized) texts between brackets will be discarded.
Other glyphs include Open Penderecki time signature ( type '~' ) Open X time signature (type uppercase 'X') Comma ',' and period or augmentation dot '.'
Spaces can be added to improve visual and will force separation of 'blocks'.
Additional notes: