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

Reply via email to