As the author of the implode tool, I can address some of this:
Implode is internal for several reasons. It was originally a plugin (which
I also wrote), but a) the framework was too limited at the time (might be
better now?) to do a good job of it, and b) having it only as a plugin
means it is ony available to the very few power users who are motivated,
willing, and technically able to to search for, download, and install a
plugin. Those are the real drawbacks. Also, plugins tend not to be
documented the same places and in the same manner as core tools; they won't
typically be localized, etc. So it was a big step up in usability to
convert implode (and the other tools) from a plugin to a core tool;
changing back to a plugin is a big step *backwards*. I'd much rather
*more* utilities converted from plugins (and hence available to power users
only) to core tools (available to all, with good documentation etc). That
goes for things like the courtesy accidental plugins, the half/double time
plugins, plugins to create cue notes, etc.
Implode is designed to handle a specific use case, and indeed, it isn't the
right tool currently for other use cases some people might imagine it could
be useful for (although we did tweak it to be, "less bad" at those other
use cases. I'd say if you want to make it useful for other use case, go
fo,r either make it a separate "implode voices" plugin or maybe add a
dialog box to let user choose optionsl, or maybe there is actually some
celver way to make the same algorithm handle the main two uses cases at
once.
So if you have a specific idea for how you think an implode tool should
work, I'd suggest you discuss it on the Technology Preview or perhaps
General forum, see what feedback you get. Offhand, I don't relly
understand the part about empty measure - in what real world use case would
you be imploding empty measures and expecting them for some reason to
become non-empty. So you might want to provide an actual score as an
example so we can see what you mean. If it seems generally useful and not
something of vaue only in rare exceptional circumstances, then sure, go
ahead and try implementing it. If it can be done without breaking the
behavior in the existing real world use cases (which tend to not involve
empty measures, or in which empty measures are expected to stay empty),
then just change the current tool. If it seems similar enough to have the
same basic use model but maybe requires an option or two to control the
behavior, then consider adding a dialog with some checkboxes or radio
buttons. If it's really just two separate tools "implode staves" versus
"implode voices", then just change the name of the existing tool and add
the new one.
Marc
On Fri, Apr 22, 2016 at 10:39 AM freixas <[email protected]> wrote:
> I just managed to clone, compile and run MuseScore on my PC. So I'm ready
> to
> start contributing, right?
>
> My initial thought was to tackle something simple: like "Implode".
>
> In looking into Implode, it seems like it's just one of many potential
> algorithm for combining multiple voices (or staves) into a single voice (or
> staff). Other versions might be equally valid, neither better nor worse.
>
> I'm wondering what might be the best direction for development. Implode is
> in Edit / Tools, which seems to be a set of internal "plugins". A useful
> plugin system should allow for functions in Edit / Tools to be created as
> plugins. If it were a plugin, then I could just create alternate
> implementations of Implode and the end-user could decide which ones to use.
>
> My first question is: Is Implode (and the other tools) built-in because the
> plugin system is not powerful enough to implement it?
>
> If it's not, perhaps that is something I might look at (although I would
> guess is not a good first project).
>
> If it is, then perhaps I could re-implement the current tools as plugins
> with the goal of removing the internal versions.
>
> If the plugin system is not powerful enough, another alternative would be
> to
> develop an internal plugin solution. This would add the ability for the
> end-user to select the internal plugins he/she wants to use. The big
> drawback is that these plugins probably have to become part of the
> MuseScore
> build system—they have to be compiled, maintained and updated—so the big
> advantage of plugins (independent development) is lost.
>
> For Implode, specifically, there is another solution. Perhaps the ability
> to
> merge and split voices and staves should be promoted to a major feature. I
> noticed that elsewhere on the list someone is proposing a piano reduction
> feature. Another merge tool I would find useful is the ability to combine
> two single-voice instruments on two staves into a single staff using the
> "1.", "2." and "a2" notation. Again, this is probably not a good place to
> start as a new developer.
>
> Or I could just try to improve the current Implode, if people are OK with
> that. Its main problem, from my point of view, is that it uses voice 1 as a
> template for the merge. If voice 1 has a lot of empty measures, none of the
> other selected music will fill this space. I'd like to do a merge that
> fills
> empty space with notes from any voice. I'd also like to experiment with a
> version that would handle different rhythms by using using all four voices
> in the target staff. The idea is that you would merge to an empty staff.
> The
> code would try to graft notes onto existing chords with matching durations.
> If no existing chord works, then a new voice is created (until you run out
> of voices, of course).
>
> My hesitation with changing the existing Implode is that I would be
> changing
> the way an existing feature works, which might have an implication for
> existing documentation. Adding an alternate Implode to the Tools menu
> doesn't seem like a good approach—thus the discussion of plugins.
>
>
>
> --
> View this message in context:
> http://dev-list.musescore.org/What-to-tackle-Questions-regarding-implode-built-in-tools-plugins-tp7579858.html
> Sent from the MuseScore Developer mailing list archive at Nabble.com.
>
>
> ------------------------------------------------------------------------------
> Find and fix application performance issues faster with Applications
> Manager
> Applications Manager provides deep performance insights into multiple
> tiers of
> your business applications. It resolves application problems quickly and
> reduces your MTTR. Get your free trial!
> https://ad.doubleclick.net/ddm/clk/302982198;130105516;z
> _______________________________________________
> Mscore-developer mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/mscore-developer
>
------------------------------------------------------------------------------
Find and fix application performance issues faster with Applications Manager
Applications Manager provides deep performance insights into multiple tiers of
your business applications. It resolves application problems quickly and
reduces your MTTR. Get your free trial!
https://ad.doubleclick.net/ddm/clk/302982198;130105516;z
_______________________________________________
Mscore-developer mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mscore-developer