Augmentation/Diminution

• Aug 9, 2015 - 21:20

Would it be possible to add a feature that augments/diminishes selected notes, rests and measures?
For example, this 60BPM-1.png
would become this 120BPM-1.png
This would be great for quickly changing the tempo of a piece while keeping the notes easily readable.


Comments

I've been thinking about adding commands to do this in the 2.1. Any suggestions for how they should work? I would assume you would want to select by selecting a region, but upon augmentation, it would of course be twice as long. The longer version could either overwrite the following measures, insert new measures, double the time signature so it fits in the same number of meausres even though it is twice as many beats, or it could just put the output in the clipboard ready for pasting but not actually modify your score. Probably other possibilities too. Any thoughts?

In reply to by Marc Sabatella

Seeing as how the point (at least in my case) is to preserve the original phrase, it would probably be best to have it not affect any other elements in the score. That would mean adding measures during augmentation (so as not to overwrite anything surrounding the region) and not changing the time signature. The clipboard idea sounds good, especially for a score with multiple instruments (so you can augment/diminish a phrase from one instrument, then paste it without affecting the score's layout).

In reply to by Doomcat55

My humble opinion is it should have to affect all the staves, all instruments.

The original idea was to multiplied by 2 (augmentation) or divide by 2 (decreasing) the time duration of all the notes of the piece.

Of course, it has to change the rhythmic time signature.

Just my humble opinion.

In reply to by jotape1960

That would probably be the most common application. I meant that if it was set up to use the clipboard on specific regions, then it would be also possible to modify a phrase in a single instrument without affecting anything else. For example, the melody in measure 1 of this Sample 90BPM.png could be diminished, placed in the clipboard, then pasted and transposed to make this. Sample 90BPM2.png Seems to me that it would be a pretty useful feature.

In reply to by Nicolas

It seems finale provides option to either "Re-Bar" or not: "Note that if you do *not* check Rebar Music, you will end up with music in the first part of each bar, with rests in the remainder of each bar. If you are using “Change All Note Durations By” to change all the music in a passage, you want to make sure that Rebar Music is checked so the music expands or contracts together." I think would be nice to provide option to "Re-Bar" or not.

I like if it could handle any ratio of integers (not just powers of two or triplets) for generality. Although, I suppose there are complications (if for instance already have triplets, but then try to convert by ratio of 1/5, then those triplets become "fifteeniths", for instance)

In reply to by ericfontainejazz

What it is still not clear is what happens in Finale if you *increase* the duration. Does it add measures? What does it do if you *don't* check the "Rebar music" option? That's the trickier problem and the one that makes me inclined to go with the clipboard as destination. Then you can paste it whereever you want, with either the opriginal time signature or a new one.

In reply to by Marc Sabatella

I've never used Finale, but it seems to me that augmentation without Rebar would cause the notes to overlap and generally mess things up. With Rebar would add measures.
IMHO, it would be great to have a dialog box like the one in Lasconic's post, but with a note-to-note ratio that could be applied to all notes instead of the percentage, and an option to bypass the clipboard. It would be even better if I could set default preferences, then configure a key command to perform the entire function without going through the dialog box.

In reply to by Doomcat55

For reference, Finale's percentage are 25, 50, 100, 200 and 400%. Without Rebar, you end up with incomplete measure or more notes than expected in a measure.
Even with Rebar you can end up with crazy things if you change 8 eighth notes to 16th dotted...

In reply to by Marc Sabatella

For me, at least, the overwhelmingly common use case would be to simply "double the time signature so it fits in the same number of meausres even though it is twice as many beats" —or halve instead of double, but you get my point. I think in general when doubling the denominator of the time signature should change, and when halving the numerator should (I forget if there are more musical than mathematical terms that could be used)—for example, doubling 3/4 should yield 3/2 rather than 6/4, and halving 4/4 should yield 2/4 rather than 4/8. (Obviously, there will need to be exceptions when this is not possible—halving 7/8 must lead to 7/16, for example.)

The key importance of this is that it does not lead to creating a mess of tied notes. And of course, the time signature could be manually changed immediately afterwards this way, as well, and no notes in measures following would have been lost.

By the way, are you aware of a script written by @.m.i.r.o.: https://musescore.org/en/node/72716#comment-333961

In reply to by Isaac Weiss

Well, the way it's used will differ depending on the user. I do a lot of transcriptions, and I generally prefer to change the tempo rather that the time signature, since the original music can always be identified as having a specific time signature (see my first example, though it would probably be more accurate if I had changed the tempo to half-note = 60).

Yes, I looked at the script, but for unknown reasons, I couldn't get it to run. It could just be because I'm not used to using plugins, though.

In reply to by Isaac Weiss

I think should be consistent with how time signatures are modified, by default. If want to keep same set of chord-rests in the same measure space before and after, then that should mean augmenting should increase the numerator only, and diminution should increase the denominator only. So 3/4 doubled should be 6/4, while halving 4/4 should yield 4/8, by default. That would ensure same ties over barlines, and would mean not have to worry about figuring out when should decrease and when should increase the num or denom, but rather simply always increase one. User can always change the time signature after performing the aug/dim, and then it would be the user action of modifying time signature which may add ties. I think especially considering some compilcated time pieces where time signature changes every few bars, it would be nice to have barlines remain consistent relative to the chord-rests when aug/dim all parts.

In reply to by ericfontainejazz

FWIW, I find it interesting that people are considering the desire to change time signatures as being inherently connected to this. I don't know what others would use it for, but the use cases I have in mind would almost never involve a time signature change of any kind. Eg, writing a fugue or a twelve-tone / serial composition and you want to take your subject / tone row and double or halve its note values as part of the normal compositional process.

But the sheer variety of different expectations people have in this thread is pretty interesting! I can see now it will be virtually impossible to come up with soemthing that satisfies everyone. My inclination thus far remains to operate on the clipboard level, so you can then do whatever you want in terms of adding measures or not, changing time signatures or not and then simply paste the modified clipboard wherever you want and let MuseScore figure out how to flow the notes into the measures normally. But I'm still listening...

In reply to by Marc Sabatella

that's a good point, and time signatures may very well be not involved with a strict, limited definition of aug/dim. Also if try to keep the feature simple and limited and well defined, that will hopefully means more likely to be bug free! Other things that could be done by secondary action by the user could be left out.

I suppose in my use case where I have a bunch of time signatures, I could always write a plugin to take measures containing a set of time signatures as input, and then produce a new set of measures of all rests containing time signatures with all the numerators or denominators adjust to how I want. Then it would be a matter of pasting notes modified by the aug/dim feature into the newly produced set of measures with modified time signatures. There...I broke it into two steps.

In reply to by ericfontainejazz

The main problem with this approach would be ties. If we don't change the time signature, we might end up with notes over barline and so we would use ties. If we paste the result in another time signature, the tie wouldn't be necessary and so the user will have to correct all the ties.

If I'm not wrong, this is not a problem when going from simple time to compound time and vice versa (2/2 <-> 4/4 being the most common example). Maybe we could have two functions then. One to diminish/augment without changing key signature, the user will have to deal with the result with copy paste etc... and one half/double time signature that will use the same code but also change the time signature.

In reply to by Nicolas

What I am envisioning for a first attempt is a function that operates on the current contents of the clipboard, then simply halves or doubles each segment tick & chordrest or tuplet duration. So if there are ties in the original, they will remain, but if your original had no ties, none are added by this process. When the clipboard is pasted, ties are created as necessary.

I don't really know if that will work, but if it does, it seems it could be used as the basis for a variety of different implementations as far as the actual use model goes. Eg, a menu item that said "double clipboard", or one that that did the copy & double in one step, or double & paste in one step, or even copy, double, change time signatures, paste all in one step.

This is definitely a very useful idea (altho I wouldn't use the terms 'augment' and 'diminish' as these have other specific meanings in music), and I know I could make very good use of this...

Myself, with only a cursory knowledge of the data structure of the measures and their elements, it would be best IMO to open a dialog to offer the following options:
A. Apply to selected notes, selected measures, whole score.
B. Quarter, halve, double, or quadruple the time shrink/stretch (later, after we get the methods down pat, we can add an option to "tupletize" the notes, so for example we can turn a whole series of notes into triplets)
C. Allow for measures be added to keep the time signature, or insert a single measure (if applicable) and insert a courtesy time signature if nec
D. Insert an adjusted tempo marking (visible or invisible)
E. Revert to standard beaming or keep the custom beaming (if applicable) including stem heights and beam pattern
F. Cut the selection (leaving rests in its place if applying to a selection, or delete the measures), Copy the selection (leaving the original selection intact, and pasting the data into the clipboard), or Replace the selection.

No matter what we use, take care about the Undo points.

It!s in my list of things to think about. Still not really sure how it should work in any of the complex cases, and nine of the discussions on the topic really reached any sort of consensus.

In reply to by Isaac Weiss

There are plenty of good ideas out there, sure, but they are often conflicting, which is what I meant about lack of consensus. Also some ideas re much easier to implement than others; I'd prefer a design that fits in well with the way things work internally. It's a lot of work no matter how you slice it, but I would like to satisfy the most needs with the least effort, and I don't yet feel I have a handle on that.

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