Duration Editor feedback

• Oct 13, 2021 - 20:40

This topic is created to collect and discuss issues with the Duration Editor plugin.


I'm going to feature this plugin tomorrow (Wednesday) as part of my weekly MuseScore Café series. I'll be talking about editing in general but will demonstrate this along the way. So hopefully there will be some good comments in the chat! The session is recorded so you can access it afterwards if you are unable to make it live (12:30 PM Eastern / 17:30 GMT)


In reply to by Marc Sabatella

"So hopefully there will be some good comments in the chat! "

I'm sure it does! Especially if you compare with examples showing what MuseScore currently does ("eating" the next note, or introducing a rest) and how a copy-paste, within a measure, may already require, depending on the operations to be performed, some knowledge of the program. Or not obvious at all to understand for an inexperienced user.
While the behavior of the plugin seems to me more expected: you want an eighth note instead of a quarter note, you get an eighth note (without the rest that you didn't ask for and enter), among others....
I'll try to watch (without participating, I know the subject a bit already!) the live of this late afternoon in Europe. Good luck!

It should really be the default behavior. Changing the measure size, giving only that little grey "+" (or "-") as an hint is confusing and error prone.
How often do you want these very special measures, versus just changing a note durations??

In reply to by BrnVrn

"It should really be the default behavior."

We're talking about editing a single measure (singles measures) to rewrite rhythms, so yes, of course, it's a definite time saver and easier for non-experts of the program.

"Changing the measure size, giving only that little grey "+" (or "-") as an hint is confusing and error prone."

Well, it just takes some getting used to. Quickly adopted, I'm sure. Besides, nothing special or new here. These "+" and "-" are already built into the program since the beginning of version 3 from memory.

In reply to by cadiz1

As a normal user, if I accidentally "Ctrl-Del" a note, I will have a hard time to understand what is happening. The little grey "-" is barely noticeable and its meaning ... well goggle for "Musescore little minus sign" it is funny.

Doing unusual things like reducing a measure length should not be affected to an usual key combo. (my opinion.)

In reply to by BrnVrn

I can’t see how a new user would be likely to hit Ctrl & Delete together - it’s not a particularly common combination. In fact, it’s so non-obvious that “how to delete measures” is probably in the top five FAQ.

But indeed, no operation that can adversely affect the duration of a measure should be made too easy to stumble upon by accident.

In reply to by cadiz1

I see you want to help me and I thank you for that! :-)
But "my" message is that: inadvertently changing the measure length, which almost nobody want to do, is too easy.

We can discuss how accidentally or inadvertently people use Ctrl-Del, or how many people do use measure of different length ... my opinion is that changing measure length should not be by default affected to a shortcut.

In reply to by BrnVrn

" my opinion is that changing measure length should not be by default affected to a shortcut."

Since you mention the Ctrl + Del shortcut (but that's not the point of this post), it has been implemented since the beginning of version 3, almost three years ago (December 20108), and I don't think I've read many complaints (have there been any?) about it.

In reply to by BrnVrn

Agreed, I don't recall any complaints about this in the three years the feature has been available. But changing measure length is a common thing to want to do - creating pickups, matching end measures, all sorts of other quite common operations. It was a gigantic improvement when 3.0 made it possible to do this with single command; I can't see ever wanting to go back to bad old days where more work was required for this common operation. If it were a single key keystroke, I might agree it's too easy, but requiring Ctrl+delete seems exactly the right compromise between wanting ti easy to do and wanting it hard to do by mistake.

if you personally are concerned about doing this by mistake, you're certainly welcome to customize or clear the shortcut. But I don't think other users should be penalized.

In reply to by BrnVrn

Some observations.
* The "+" and "-" indicators are useful indicators that your measure has not the expected length. This could be on purpose or by mistake. But definitely useful, to alert the user.
* In the plugin, the measure's length varies while you edit. It is increased beyond its nominative for the sole purpose of avoiding avoid the user to loose some notes while in the transition between a state A and a state B of the measure's rhythm.
* Last but not least, this plugin is not about proposing THE solution for editing measures. But about proposing an ALTERNATIVE solution. I sometimes find that the current default behaviour is faster for making the change I want to do. In other times, the plugin approach gets faster. The user should be able to decide which approach to take. It could be "6" to turn a note to half with the current behaviour. And "SHIFT+6" to turn it to half with the alternate behaviour (aka the plugin ones)

I see the duration editor as a crucial improvement, but the plugin isn't downloading properly for me. Is it still available?

I'm sorry, I have to ask again because it still isn't working. The file downloads for me, but it isn't showing up under plugins in the musescore software itself. I click "reload plugins" in the plugin manager, but I see nothing for "duration editor." Do I need to do anything specifically to install the program?

In reply to by Jojo-Schmitz

All this tells me is to download the file into a particular folder called "Plugins" in the larger MuseScore 3 folder.
I have tried that repeatedly. I try to unzip the file, it doesn't matter. The plugin never shows up in the plugin manager. I have clicked reload plugins, I have restarted the computer, nothing helps.
I don't understand what the problem is, but there must be another step somewhere

In reply to by JAZ429

Go on GitHub to download the latest version:

Download the zip file and extract it wherever you want (a temporary folder).
It will create a folder "musescore-durationeditor-1.1.0".

Copy the content of this folder in the plugin folder of MuseScore. Copy especially the files/folders:
* durationeditor.qml :: the plugin itself
* durationeditor\ :: a folder with the icons and other stuff
* zparkingb\ :: a folder with some utilities I share an reuses across my plugins.

So after this your plugin folder should like:
* Plugins\zparkingb\selectionhelper.js
* Plugins\durationeditor\blanche.svg, ...
* Plugins\durationeditor.qml
* Plugins\some-other-plugin.qml
* etc.

I just posted a new version with an "Add Tie" feature.
Select a rest and the "Add Tie" button will fill the rest from an immediately preceding chord and tie them together. It is also working in the opposite way: Select a chord and the "Add Tie" button will copy it to an immediately following rest and tie them together.
Not a big deal, but a few seconds won at some occasions.


I definitely have troubles with the lack of easiness with tuplets in MuseScore.
So I started a new feature to convert chords from and to tuplets.
Basically, you select 3 notes, press the button and convert it into a tuplet (and move the next elements accordingly). Or you select a tuplets, press the button and it replaces the tuplet by the regular chords.

Demo of this latter:


I still have some work to do for this mode (converting to tuplets) .

What do you think ?

Can be found here:

In reply to by parkingb

It's not clear what issue you jhave with the standard way, but FWIW, I've never heard anyone says they'd rather enter a chord first then split it up. It's way more work. What I do hear is they want to select the "inner" duration instead of the "outer" (eg, type 5 rather 6 than to start a set of quarter note triplets), and also, that they'd like to be able to enter successive triplets more easily. Changing the first partially solves the second, so to me, that's a natural thing to put in this plugin. But having it operate on a chord will, I think, only confuse people.

In reply to by Marc Sabatella

Hi Marc,
I'm not sure to understand what you mean with this one: " What I do hear is they want to select the "inner" duration instead of the "outer" (eg, type 5 rather 6 than to start a set of quarter note triplets),". Could you elaborate ? I'll be glad if I can integrate this.

PS: The issue that I have with Tuplets in MS is the same as Dylan Nicholson1 has here . And is the same as the reason why I built this Duration Editor plugin. It isn't easy to work fast in my way of working : the notes first, the rhythm at last. And this is particular true in what I'm busy with now: transcribing jazz solos. I first identify all the notes, write them all as eighth. And then start tweaking the rhythm. Here a tuplet, here a dotted quarter, ... Now with my Duration Editor, I'm able to work really fast in that approach.

In reply to by parkingb

I meant exactly what I said - right now, to create a quarter note tuplet, you start by selecting the half note because that’s the total duration, but many people find this counterintuitive and wish to start by selecting the quarter note. So, a button that created a triplet by first doubling the note value you’ve selected on the toolbar might be welcome. Y some.

On the other hand, I’m not understanding at all how having to enter a full chord first then change it into a triplet is helpful at all. As I said, more steps, and counterintuitive as well, plus I do t see how that would handle rests within triplets, or quarter-eighth triplets. So I’m not understanding the problem it’s addressing, and it doesn’t seem like it would be generally useful at all. But maybe you could explain that better. How does it relate to the issue in that other post? That didn’t involve chords at all - rather, plain eighths. That could indeed occasionally be useful. But that’s not what you described.

In reply to by parkingb

FWIW, I think the confusion comes more the use of the term "convert" in this context - this implies it starts as a chord that is not a triplet, but ends as a triplet that is not a chord. Simply saying "consecutive chords" (or, to be more friendly to people not as familiar with this usage of the word chord, "consecutive notes or rests") helps clarify the conversion isn't happening within the chord, but between chords.

In reply to by parkingb

Actualy, it seems I was confused by your wording when you talking about converting chords to triplets. I took that literally, and thought you meant, enter a single three-note chord, and it would be split into three separate notes as a triplet. I couldn't imagine wanting to do that. but it does relate to a different request we've seen here recently to essentially do the opposite.

I assume you really mean, three consecutive notes get turned into a triplet. That makes sense, for the occasional correcting of errors where you forget to press Ctrl+3 or whatever.

In reply to by parkingb

Either way, it's pretty cool for a plugin.

Since I'm fairly acclimated to what is already provided with standard functionality, I probably won't make use of it - but it is a neat demonstration of what can be done. Could be useful if somehow you could cleanly get the ability to convert into n-tuples beyond triplets, but it would require some interesting interface design.

In reply to by worldwideweary

> Could be useful if somehow you could cleanly get the ability to convert into n-tuples beyond triplets, but it would require some interesting interface design.

Try it ! I think it'd be doable in 2 clicks: Select anything from the triplet, press the "Tuplet" button. The triplet is gone. All the following notes are there. No impact for them. Add 2 more notes to the selection, press the "Tuplet" button, and you'll get a nice "5:4" (by default, but you can get anything else if you want).

In reply to by parkingb

Right on. Seems to work well so far.

One suggestion is to allow for multiple voices to work for making tuples instead of requiring using the selection filter and having only one voice at a time - it would be useful under certain circumstances. Like:

When having those both range selected up to the last note, pressing your tuple button would provide:

rather than give an error. That would be cool

Could you join the discussion at:


The issue is this: when you try to import a pdf file in Musescore a lot of triplets show up as plain eigth notes or quarter notes followed by eight notes. Could you test if the duration editor can fix this? I would try it myself but I can’t get the duration Editor installed succesfully.

There is no zip file at


I managed to download everything manually (a real horror: some files download via the right mouse button, others download as html and you have to open them and copy and paste them). Even then I could not get the plugin to appear in the plugin manager (also reported by Trottolina) and if I run it in the plugin creator I get errors:

line 50: Type ImageButton unavailable
line 7: Expected token `numeric literal'
line 7: Expected a qualified name id

Many thanks

In reply to by elsewhere

Hi, Better go directly to GitHub: https://github.com/lgvr123/musescore-durationeditor/releases
Version 1.2.0 has no Tuplet feature, but is stable.
Version 1.3.0 is still beta. As Tuplet feature. Is working pretty fine unless working with multi-voices.
I'll post this to the other thread too. And check the the plugin's page on the site to make it clear that one must go to the release page on GitHub. Thanks for pointing this unclarity to me.

In reply to by elsewhere

I just had a look. This code should be pretty old, because it states things that are untrue (e.g. "FIXME: The API doesn't yet provide any way to figure out whether a note is part of a tuplet, ...". As of 3.6, one can write note.parent.tuplet) so I won't rely to much on this code. Thanks anyway for sharing.
I've a new version under heavy testing, which will deal with tuplets in a much efficient way.

A few minor issues: see attached Issues.mscz
When I select 3 notes g ab bb in measure 5 and apply the triplet icon from the duration editor I get the result in row 3, (measures 7-9). The desired result is in measures 1-3.

The issues are:
1) notes changed from flat to sharp.
You need to store and retrieve not only the pitch of the notes but also the tpc (The Tonal Pitch Class) (see https://musescore.org/en/node/320267) (notes[i].tpc)
2) The chord symbols do not move with the notes. Any plans for that?

Attachment Size
Issues.mscz 11.32 KB

In reply to by elsewhere

Correct alterations is already solved in my working branch.
Chord symbols should not be complicated. I already do it for the lyrics.
The fact is that I cannot use a traditional copy/paste. I've to store every properties locally and reapply them individually. If you extend your tests, you'll see that many little properties are copied over (like note heads, ...).

New version available 1.3.0 beta2 .
I realized that my previous version had not a really consistent behaviour when it came to multi/single voice edition. So I rework this completely.

Improved in 1.3.0 beta2

  • Consistent behaviour of all functions in ingle voice / multi voice behaviour
  • Many bugfixes in the Tuplet edition
  • The single voice eidtion and the tuplet conversions handle more note properties and handles all the annotation texts (incl. chord symbols)
  • The Tie function can tie back and forth, from a rest and from a note.

So now worldwideweary's suggestion about mutti-voice tuplet conversion (Mar 16, 2022) is integrated.
Same for elsewhere's remark (May 21, 2022) about incorrect flat/sharp and chord symbols.

The downside is that more undo's are necessary to undo an action. But I checked it, no action is not fully undoable.

Feel free to share your remarks, issues, ...

In reply to by sammik

That it is indeed the way things are supposed to work and what is done internally within MuseScore for commands that actually perform multiple operations (which is most of them, really). No idea if there is some specific issue prevent that approach from working here, though.

The triplet function of the duration editor is of great use to me. But I encountered another minor issue (see attached triplet.mscz.)

If I select the first 3 notes in measure 1, and ask for conversion to a triplet, everything is fine, except that the chord symbols of the following notes don't move along with the notes (see measure 2). Is it possible to fix this?

And another thing: if I select chords 4-6 in triplets2.mscz & ask for conversion to triplet the result does not look quite right: the whole measure is now under the triplet bracket.

In reply to by elsewhere

I understand the first point. You would not have the issue if they were notes instead of the rests. The fact is that the plugin looks for Chords after the triplet. It doesn't find any chords so it consider the end of the measure is empty and doesn't take care of it. It shouldn't be too difficult to adapt. I should not only detect Chords but also rests with annotations. I'll try to fix this soon.

The second point is not related to the plugin actually.
If I do the same task manually, I'll end up with the same strange situation I'm failing to part from:


To be raised at the general forum IMO.

In reply to by Jojo-Schmitz

Yet another thing I did not know, and curious: why is #125816 better? is it to make "What links here" easier? Is there a place where I can read about these points of forum etiquette? (It's not in forum guidelines.) And does typing it as you did automattically create the link?
Thanks in advance.

If I click on 3 quarter notes and ask for conversion to eighth notes the duration editor says: “Invalid selection. The selection cannot span over multiple ticks”.
But if I ask for conversion to a triplet it works. This does not seem consistent.

In reply to by elsewhere

I understand that this might appear as inconsistent but it isn't.

The plugin does one "conversion" at the time: one duration conversion (1 chord/note from quarter to eight (e.g.)) - or - one tuplet conversion (from and to tuplets).

Therefore, for the the duration conversion, a single note is allowed and expected, For the tuplet conversion, a single tuplet is allowed and expected, or all the notes that will form a single tuplet.

Just for the record: The plugin could be adapted to work on a multiple selection, but I personally won't do it. It requires quite some work for which I haven't the time+energy now. Maybe some day.
The plugin was meant only as a Proof of concept that there was a need and a way for another duration-entry paradigm than the standard Musescore one. And I think the demonstration has been successful.

I hope that these features will be integrated some time natively into MuseScore included the multi-selection.

FYI (For your information):

I’m using your subroutine CopySelection from the DurationEditor to look for chord symbols in a selection. I hope you don’t mind…

If I add after: (line 1102 in DurationEditor)
var e=annotations[h];
console.log ("harmony = ", e.text)

I get every chord symbol twice. If I add: console.log ("seg.userName() = ", seg.userName())
in the loop (line 1089 in DurationEditor))

while(seg && seg.type!==Element.SEGMENT) {
I see that the chord symbols appear after
seg.userName() = "Chord Symbol"
and after
seg.userName() = "Chord" (or “Rest”) if there are no notes

From the code I gather (?!) that you also encountered this problem and introduced filtered.push to solve it. I don’t fully understand how seg=seg.parent works, but I can solve my problem by setting a flag on finding seg.userName() = "Chord Symbol"

I hope this “fun fact to know” is useful to you.

In reply to by elsewhere

Some remarks:

For your "fun fact to know", I will have a look to see what it implies ! Thanks for sharing it !

Hi! Another minor issue (discovered in analyzing The Good Life (La Belle Vie) by Sacha Distel).
If I ‘untriplet’ the triplet in measure 1 I get a distorted measure (72/64 instead of 4/4) (see measure 2)
With the dotted half note reduced to a half note there is no problem (see measures 3-4)
EDIT: seems to happen with all (?!) 'untriplets' that have no rest at the end of the measure.
EDIT2: seems true for all 'increasing' interventions. No big deal for me, but a warning: "This will overfill the measure" could be helpful. People (and me- do not immediately see the little grey +

In reply to by elsewhere

Actually this behaviour is by design. As stated in the tuplet feature's description "* the "Tuplet" button will replace the tuplet with its notes/rests without impacting (i.e. "eating") the following notes/rests*". This means if you have 1 triplet and a dotted half (=4 beats) after th un-tuplet you have 3 eights a dotted half, so 4.5 beats), which forces an increase of the measure's duration to 9/8 or 72/64.
All the features of the plugin are working the same way. Try in your 2nd measure to change one of the eights to a quarter, and you will end up with 2 eights, 1 quarter and a dotted half, so 5 beats, so an increase to 80/64.

It is up to the user to decide how to solve this.

It is th whole purpose of my plugin: let the user decide what to do.
It is de facto the opposite of Musesecore's default behaviour that takes that decision for you by the user by eating what's next (if you increase a note duration) or inserting rest (if you decrease a note duration):


Genius project, I always think melody first. Thank you so much for your work.
typo at https://musescore.org/en/project/duration-editor
latest beta link to another repo, Element Analyser, which I tried but unfortunately crashed upon pressing analyze. Wish I know more to debug freezed QML(waited 30mins), what does Non-Null element mean? How does an undefined element appear?

In reply to by msfp

Thanks for pointing the typo. I corrected it.
And I'm glad to hear that my plugin is helping you. I hope that one day, this duration entry mode will be added natively to MuseScore.

Regarding you question about the "non-null" elements, I started a new discussion about the Element Analyser plugin. I answered you there.

This is admittedly far-fetched, but applying the untriplet icon to the nested triplets in test.mscz leaves only the first chord.
Not to toot my own horn but with my recently posted Respell Rhythms plugin I can recover all the chords

In reply to by elsewhere

Applying the un-tripplet to the outer triplet should work. I'll wait until MS4 new plugins' API is ready for looking at it. Don't want to spend time if they change everything in that API...

However for the inner triplets, what is the result you are expecting ?

PS: I checked your Respell Rhythms plugin. You should have a look at the copySelection/pastSelection functions from the DurationEditor where I do a similar copy/paste but with more stuff than just note/tpc/pitch. I've included annotations, lyrics, track, ...

Do you still have an unanswered question? Please log in first to post your question.