Repository navigation
Support number notation jianpu - #31626
songzhenke wants to merge 42 commits into
Conversation
5e4513c to
8c172ff
Compare
132d688 to
6034690
Compare
e4f52e9 to
28182e9
Compare
|
Love this work! Can't wait for it to be natively supported in MuseScore 4! Keep up the good work @songzhenke ! |
Thanks @AndreaHu3299 . My pleasure. Once basic features are merged, i will gradually improve jianpu and fix bugs. |
|
This is opened for a while, could someone please review when you have time? @Tantacrul @cbjeukendrup |
|
It has been added to our review queue, but the queue is a bit full at the moment, especially for larger pull requests. But we'll get to it! |
bf9cc8b to
8c848b8
Compare
|
Hi @songzhenke , thank you so much for your hard work on this Jianpu support! As a saxophone player and blogger, I’ve been testing this PR and would like to share some feedback to help improve it. First, I found that certain articulations like "Scoop" and "Slide in below" cannot be added or displayed in the Jianpu staff. Second, it would be great to have options to customize the appearance, such as changing the font and size of the digits, as well as the scale of the octave dots for better readability. Lastly, there is a critical issue with transposing instruments (e.g., Alto Saxophone, Trumpet): the Jianpu is not currently following the "Movable Do" system relative to the instrument's written key, resulting in incorrect pitch relationships. I hope these suggestions are helpful for the next steps of development. Looking forward to this feature! Best regards, |
|
Thanks @leonchensax for testing. This PR is just a beginning for Jianpu support, and I’m sure it still needs a lot of improvement. I’ll keep working on it if the current approach is on the right track. I plan to experiment with things like Scoop, Slide in below, and transposing instruments to see how they should be handled. The articulation code is quite hard to understand. Custom configuration mainly needs some UI work, so I’ll spend time on that only after the basic features are working. Anyway, still a long way to go. |
Thanks for the amazing work! As a sheet music publisher and wind instrument player, I’m thrilled to see Jianpu support coming to life—it's a huge milestone for my workflow. I’m fully committed to helping speed this up. Please let me know if there's any way I can support your development, whether through professional testing or by sponsoring your time to expedite the process. Is there a way we could connect further? I'd love to discuss how we might collaborate more closely to make this a success. (Do you have a Buy Me a Coffee link or a preferred way to chat?) Looking forward to it! |
|
Hi @leonchensax |
009b015 to
43cf484
Compare
|
The unit test failures are fixed. My next goal:
|
|
Looking forward to it! |
I added a change to prevent incorrect beam rendering. Dragging a duration line (beam) now preserves its Jianpu styling and keeps it horizontal unless you untick Force horizontal in the beam properties. |
|
Hi @miiizen @davidstephengrant, Just wondering if there has been any progress on the code review for this PR. I noticed that the linked issue #25919 was assigned to you a couple of months ago, but the PR itself hasn't been assigned yet, so I thought I'd check if there might be any updates. I understand the team has a lot on its plate. I'd really appreciate any update when you have a chance. Thanks for your time! |
|
Hello! Thank you so much for all your work on this, we are really excited about adding jianpu to MuseScore Studio 🔥 We discussed this as a team and we think the best approach is to review the PR over the next week or so, and then to merge this in but keep the functionality hidden behind dev tools until after 5.0. This means that it will be accessible through the dev tools menu, but we won't officially support scores containing jianpu for all users until a little later (most likely when we do the 5.1 release) as we need to make sure we test support thoroughly across all aspects of engraving. @miiizen and @mathesoncalum will follow up with their initial reviews shortly - thanks again, we believe this will be a great addition 😀 |
|
Really glad to hear about that! Now there is a roadmap to look forward to :D |
|
Thanks @bamb3r. I'm really pleased to hear this, and I completely understand the approach of keeping Jianpu behind Dev Tools initially while allowing more time for thorough testing. I really appreciate the team's support and look forward to receiving the initial reviews and working through any feedback. Thanks again! 😀 |
| } | ||
|
|
||
| if (item->isJianpuStaff() && item->isStyled(Pid::BEAM_NO_SLOPE)) { | ||
| item->setNoSlope(true); |
There was a problem hiding this comment.
Is this necessary? The slope is set to 0 later on in layout2 anyway.
There was a problem hiding this comment.
This is still necessary. It keeps beam horizontal when user drags it.
- Line 202: Sets the noSlope flag. If the beam was user-modified, that also flattens its saved endpoints.
- Line 384: Sets the beam’s calculated slope to zero, so it lays out horizontally.
* Code review - update copyright * Code review - position instead of duration * Code review - rename to onJianpuStaff and createBeamIfNeed and const * code review - move len and above to layoutdata * code review - revert notes in chord instead of sort * code review - add jianpu group * code review - rename staff type name from stdJianpu to jianpu * code review - check if the first chord is jianpu * code review - add P_TYPE to avoid converting from/to int
|
Hi @miiizen, Thanks for the thorough review and all the helpful suggestions! I've addressed all your comments based on your suggestions, except for the last one 🙂 |
Note: Backward compatibility break affecting only Jianpu scores created with previous buildsThe commit e898861 changes the XML tags used for Jianpu. As a result, the new build of PR 31626 is not backward-compatible with Jianpu scores saved by previous builds. To update your existing scores, please use the build from the forked PR 14 to open and save your old MuseScore files. This will automatically convert them to the new XML tags. CC @FreeCodeCampXYG @King-of-Infinite-Space @Gravifer. I know you have saved scores :) |
New DevTools setting hides jianpu by defaultAdded a To enable Jianpu, set |
There was a problem hiding this comment.
Brilliant @songzhenke! I've left some comments - mostly minor tweaks.
Once that's done, the final thing we should do before merging is clean up the commit history. What we want is a series of coherent commits with clear messages detailing what was changed - ideally we don't want any "address review comments" or merge commits in the PR history.
I appreciate that could be a bit of a headache in this case - so if you want to squash everything into a single commit that's fine by me.
^Edit: Don't worry about this - as @cbjeukendrup mentions here we can do it at the point of merging.
| if (generated()) { | ||
| return false; | ||
| } |
There was a problem hiding this comment.
Hmm, will this change (and the change to KeySignatureSettingsModel::loadProperties) enable the mode dropdown on generated key signatures at the start of each system though? I think this is disabled by design.
|
(@mathesoncalum sorry to weigh in, but perhaps instead of squashing everything here and thus losing the history, it might be nicer to leave the history intact in the PR, and squash during merging using GitHub's option for that) |
|
@cbjeukendrup oh cool, I didn't know GH had that option. Updated my comment - cheers! |
Resolves: #25919
This PR adds Jianpu support. A new Jianpu staff type can be selected to display number notation. No new failures are introduced in existing unit tests.
The implementation follows the guidance in this comment by not introducing new fonts and by reusing existing rendering for lines and dots.
Features added
Notes
Snapshots
5-line staff with a linked Jianpu staff
