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

Necessary improvements on the UI of tuplets #18980

Open
mike-spa opened this issue Aug 9, 2023 · 8 comments
Open

Necessary improvements on the UI of tuplets #18980

mike-spa opened this issue Aug 9, 2023 · 8 comments
Assignees
Labels
feature request Used to suggest improvements or new capabilities needs design Design is needed

Comments

@mike-spa
Copy link
Contributor

mike-spa commented Aug 9, 2023

Your idea

image

At the moment, it is not possible to create this tuplet in Musescore. This is a very silly limitation, considering that the screenshot above is obtained... in Musescore.

I have realized this example by writing the tuplet manually into our file, to prove that our system is already perfectly capable of representing and handling such tuplet. The problem is a purely UI one, meaning that we don't have a flexible enough UI to allow creating it.

Problem to be solved

In Musescore, a tuplet can only be created by selecting a single rythmic figure and turning it into a tuplet. The natural consequence is that we can create tuplets only for those durations that can be represented by a single figure. Consider this example.

I can easily create a 3:4 tuplet inside the 9-tuplet, because I can compress the last 4 quavers into a single 2/4 figure. However, I can't create a 3:5 tuplet, because there is no single figure which can represent a duration of 5 quavers.

20230809_110900.mp4

I think that the most naive solution here is just to change the UI so that the tuplet isn't entered on the duration of the figure, but on the duration of the selected range. This way, the tuplet can be entered into any duration, not just the ones representable by a single musical figure. In principle I think it could be done quite easily. However, maybe the whole tuplets UI needs some design consideration.

Prior art

No response

Additional context

No response

@mike-spa mike-spa added the needs design Design is needed label Aug 9, 2023
@muse-bot muse-bot added the feature request Used to suggest improvements or new capabilities label Aug 9, 2023
@mmeyn
Copy link

mmeyn commented Aug 9, 2023

This might look like a very special case because of the nested tuplets but this problem is there also for simpler cases: In 5/4 time,
Bildschirmfoto vom 2023-08-09 16-21-56
a whole measure rest can be divided into a quartuplet because it is represented by a single symbol,
Bildschirmfoto vom 2023-08-09 16-21-52
but selecting a range the length of 5/8 cannot be divided into a single tuplet but divides all (in this case both) parts in to a quartuplet:
Bildschirmfoto vom 2023-08-09 16-21-49

Edit: All tuplets were achieved by pressing Ctrl+4 here after selecting the rests as shown.

@mike-spa
Copy link
Contributor Author

mike-spa commented Aug 9, 2023

Yep, that is entirely correct. The reason I presented it with nested tuplets is that your example is technically possible to achieve in Musescore, albeit with an extremely silly workaround:

  • Create a measure with a duration corresponding to the full duration of the tuplet.
  • Make sure it has a full measure rest.
  • Enter the tuplet you need on the full measure rest.
  • Copy-paste the tuplet where you needed it.

The problem is that copy-paste won't work inside another tuplet, so while writing your examples is technically possible, mine simply isn't, even with the workaround.

But yes, there 100% should be a better UI design for all of these cases.

@mmeyn
Copy link

mmeyn commented Aug 9, 2023

If this leads to a UI redesign of tuplet input, I’d like to add a feature request: I’d very much like to input this rhythm
grafik
as “N 5 Ctrl+3 C D E F E D E F G A G F” instead of the currently necessary “N 5 Ctrl+3 C D E 5 Ctrl+3 F E D 5 Ctrl+3 E F G 5 Ctrl+3 A G F”.

There are two things to consider here:

  1. Selecting quarter duration (by pressing 5) and dividing it into a triplet changes the duration to eighths (as if you had pressed 4). This is nice but for continuing the triplet rhythm one has to reset the input duration to quarter (5) after the tuplet is completed because otherwise the next Ctrl+3 will divide an eighth into three sixteenths.
  2. Having to press Ctrl+3 every time is not ideal. But if you just stayed in eighth triplet instead of returning to regular eighths or quarters there would be a need for “leave tuplet mode”. Simply pressing 4 or 5 wouldn’t be enough because you might want those inside of tuplet mode for rhythms like
    grafik

Edit: I haven’t used MuseScore a lot so I’m not sure whether this is a real problem for the long term use but coming from LilyPond I felt that this was very complicated. I often forgot to reset the duration that was divided by the next tuplet created.

@mmeyn
Copy link

mmeyn commented Aug 9, 2023

Yep, that is entirely correct. The reason I presented it with nested tuplets is that your example is technically possible to achieve in Musescore, albeit with an extremely silly workaround:

OK, I understand why you did that. An inexperienced user like me probably wouldn’t find such a workaround on their own …

@Tantacrul
Copy link
Contributor

Tantacrul commented Aug 9, 2023

I agree that the old tuplets system is too basic. I'd like to have different results based on the user's selection, as mentioned above.

  • If I add a tuplet to a single note, it behaves as it does now
  • If I apply it to multiple durations next to each other, it cleverly creates the most appropriate tuplet, given the context

To be pedantic, I don't see this as a UI problem, I see it as something that just needs to be refined so that it's more powerful... without compromising the simplicity of it.

@Tantacrul
Copy link
Contributor

I also agree with @mmeyn that perhaps activating a tuplet while in Note Input mode keeps using tuplets until you specify that you want to stop. Not 100% sure of the possible knock-on consequences of this though. It would need to be prototyped.

@MarcSabatella
Copy link
Contributor

It would need a UI if we wanted to make this capability available within note input mode, where tuplets are normally entered. I could imagine something pretty simple though - the custom tuplet dialog would have a couple of spinboxes to set custom duration the same way we do for measure duration. It would default to whatever is currently selected on the note input toolbar.

But indeed, if we limit it to just normal mode, it could be made to work on a range selection with no additional UI component.

As for "sticky tuplets", it's a common request indeed and has been given thought over the years. Clearly, for music where there are a ton of tuplets - eg, Moonlight Sonata - it's very useful. For cases where there are just occasional triplets here and there in a string of eighth notes - eg, most jazz lines - it ends up being extra work to have to explicitly leave tuplet mode. But, given that in the latter case we just established it's just occasional, I don't think it too unreasonable to need an extra keystroke.

@XiaoMigros
Copy link
Contributor

XiaoMigros commented Aug 15, 2023

For what it's worth: I created a plugin to tackle this specific problem, see https://musescore.org/en/project/advanced-tuplets
I think that while the UI isn't that great it has all the available options one might need for creating more complex tuplets.

However, it doesn't seem to work for tuplets not currently supported, it causes corruptions when creating them. So I wonder if an issue would arise in the creation process of such tuplets, even if they are technically supported by hardcoding them into a mscx file.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature request Used to suggest improvements or new capabilities needs design Design is needed
Projects
None yet
Development

No branches or pull requests

8 participants