Ideas for 2.0 plugins

• Apr 9, 2014 - 15:10

There are a few new/improved plugins I'd like to see made available for 2.0 if it possible to do what I have in mind via plugin. And if the framework currently doesn't support enough properties to make this possible, I'd like try to see about extending the framework - if it's just a matter of exposing a property not currently being exposed, that should be easy.

I haven't spent time looking into writing plugins in the new framework, but I know others have, and work has already begun on getting some 2.0 plugins up and running. Maybe we could collaborate to make some of what I have in mind happen. If someone who knows the framework could try roughing in a little of the following to see if the needed capabilities are there, I could then jump in and work on the actual algorithms.

1) slash notation - I mostly want to make sure it can work with the current functionality. If the GUI part is a pain, we could make three separate plugins (slash, rhythmic, accent) with no options. Or maybe a simple GUI with just radio buttons for the three styles. Ideally, we'd do clef & key detection automatically to figure out the middle line without needing user intervention, but requiring the user to move the slashes up or down after running the plugin isn't the end of the world.

2) implode/explode - I'd really like this to work without requiring the handstands that are needed now. Would be great if note creation worked reliably enough to not require user to copy the selection to the other staves first for explode, would be great if ties & tuplets could be handled well, etc. But again, just reproducing current functionality would be a start.

3) automatic courtesy accidentals - there is already a plugin to *detect* opportunities. But the current framework doesn't allow you to set the user accidental property. Maybe the new framework does or could?

4) move measure to previous system - this is an idea stolen from Finale that I think would help a lot. The idea is this: select a measure - say, the first measure on system 2, run the plugin, and the end result is the layout is altered to fit that measure onto system 1. The algorithm is simple: identify the systems involved, remove any manual breaks, reduce stretch in the affected measures to arbitrarily small values, then insert a break after the selected measure. The corresponding "move measure to next system" would make a nice companion, although of course this is trivial - all it needs to do is add a line break to the previous measure.

5) lock layout - detect last measure of each system, add line breaks, maybe reduce stretch a notch to be sure it roundoff error doesn't cause something to not quite fit on next load.

6) swing playback - if we can set ontime & offtime offsets from a plugin (I"m thinking we still can't, although now at least those properties work internally), then it should be possibly to write a plugin to go through a score, find appropriate notes that need to be their start or stop times adjusted, and do the deed. Adding native support for swing playback is high on my personal priority list post-2.0, but I think we *need* to provide something for 2.0, and a plugin could be the ticket. Bonus - it would presumably work on msuescore.com, whereas the 1.3 version of swing plugin does not.


Comments

In reply to by Jojo-Schmitz

Regarding batch export - yes, thanks for getting that going! That's what made me think maybe it was time to really think about this, so if there are improvements that need to be made to the framework in order to do other useful things, it won't be late.

Cue notes - yes, good call! BTW, you say you've done it - are you using the new "play" property (at least, that's what it is called in Inspector)? That should allow completely silencing notes while still allowing normal cursor movement.

Is crescendo/diminuendo still needed? Supposedly there is crescendo support built in now, although I'm not sure I hear it, maybe there is something I need to do to enable it or customize it.

Temperaments: it existed for 1.x; I have a rudiment of it working under 2.0, but it needs to be completed.

In addition, I may find time to help with implode/explode (Marc's 2; unfortunately, the others are very low in my personal scale of priority to divert resources..., sorry).

M.

Another interesting idea: automatic rehearsal mark sequencing. Finds rehearsal marks, replaces their text with sequential letters (n case you've added/deleted some or just messed). Could also insert measure numbers as some prefer.

Congratulations for everyone involved in the great Musescore 2.0!
I would very much like to try and write a plugin to adjust ontime for individual notes. But looking through the available documentation and forum topics, it seems that this may not be possible (yet). What is the current status? Are there any plans in that direction?
Kind regards,
Twan Bearda.

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