I just joined the list.  So hi!  This is a followup to a discussion on the
feature request forum, in which I proposed a change to the playback
architecture:

https://musescore.org/en/node/104296#comment-469066

Let me start by copying my initial post from that discussion, since it
gives context about what problems this is meant to solve.  Then I'll follow
up with a separate message giving thoughts about how it might be
implemented.

Peter


-----------------

I'd like to propose a change to the playback architecture. It would enable
a lot of new features, including several that have been requested recently
on other threads. I'll first describe it at a high level, and then if
people think it sounds like a good idea, I can go into more detail about
how it might work.

The idea is to create a new abstraction layer for translating score
elements into midi commands. It would let you have a file describing the
features and behavior of a particular synthesizer. Then you could load that
file and everything would "just work". In particular, it would describe
three aspects of playback: instruments, articulations, and dynamics.

MuseScore has built in support for GM soundfonts, so if you use one it
automatically selects the right sound for every instrument in the Mixer.
This feature would let it do the same for non-GM soundfonts. It would also
work for external midi synthesizers. Just load one file and it configures
everything for you, including sending Program Change messages as needed.

Currently, MuseScore supports a very small set of articulations. For
example, stringed instruments have three: normal (whatever that means),
pizzicato, and tremolo. But most commercial orchestral synthesizers have a
lot of others: marcato, spiccato, detache, etc., each with or without
mutes, not to mention distinguishing between up bows, down bows, and slurs.
This would let you use those.

Lots of mechanisms can be used for selecting articulations. With GM, each
articulation is a different program, so you select them with Program Change
messages. But a lot of synthesizers use keyswitching, where you press keys
outside the normal range of the instrument to select articulations. Or they
may use a midi controller for that purpose. Sometimes they use velocity to
smoothly blend from legato to marcato. Slurs can be indicated with the
sustain pedal, or by setting the velocity to 0, or in other ways. So the
file needs to describe what articulations are available, and also how to
activate them.

Dynamics can also be indicated in multiple ways. GM synthesizers use
velocity for that purpose, but others use the expression controller, or the
mod wheel, or other mechanisms. And this can even vary between instruments
within a single synthesizer. So percussion instruments might base dynamics
on velocity, but stringed instruments might base it on a controller.

So my idea is that you would load a file describing a set of instruments,
and the available articulations for each one, and the mechanics of how to
play them, and then MuseScore would take care of everything for you. Does
this sound like a good idea? If so, I've thought a lot about how it might
be implemented, and I can provide details on my ideas.
------------------------------------------------------------------------------
Transform Data into Opportunity.
Accelerate data analysis in your applications with
Intel Data Analytics Acceleration Library.
Click to learn more.
http://pubads.g.doubleclick.net/gampad/clk?id=278785471&iu=/4140
_______________________________________________
Mscore-developer mailing list
Mscore-developer@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mscore-developer

Reply via email to