Crescendo/decrescendo playback

Project:MuseScore
Component:Miscellaneous
Category:feature request
Priority:minor
Assigned:Unassigned
Status:active
Description

Hi All!
I think Crescendo/decrescendo playback is very important for notation/sequencer software.
Are there planes to implement it?
There are different ways of doing so. Notice that Sibelius needs a plug in for it, finale does it automatically.
Any way is good for me. It makes a huge difference to have it.

Comments

#1

I think it is important to better define what you mean by [de]crescendo. There are 2 ways to realise one. The first is to change the volume of a note over time. This is the way wind instruments do it. The second is to change the attack velocity of each note when it is first sounded. This is the way percussive instruments such as piano do it.
The second is probably much easier to do and I think museScore probably already has the capability. All that is needed is a GUI to make it easier to do so, rather than manipulating the velocity of each note individually. I vote for coding in the program, but a plug-in could probably work too.
As for the first method, not knowing all the ins and outs of it, I see several problems. There are several MIDI controll changes that would do the job--namely "Chanel volume", "Expression Controller", and "polyphonic key pressure (aftertouch)". The last one seems the most flexable and best suited to the job, but I don't know if most computer sound-cards support it. Does anyone with more expertise know?
The first one could probablly also work, and I think it might be better supported on sound cards, but all notes on the entire channel would be affected, which may or may not be what you want in a given circumstance (eg. it would not be possible to change the ballance between divisi instruments.
This is purely speculation, but I see piano-type crescendos coming pretty soon, but wind-type crescendos taking much longer--on the order of several releases.

#2

The piano-type crescendos would also be useful for large written word cresc./decresc. even on wind instruments and string (non pizz.)
Regarding the possibility to create a playback for independent crescendos on different voices within a single channel. well ...no notation software I know is able to do so.
The wind-type crescendos are surely more difficult to make but I think that they are very important and would make the user very happy ( ;

#3

You might be interested to read this: http://musescore.org/node/4588 . It looks like dynamic and tempo changes are a focus for this summer. Yay! I know I've been continually frustrated by the inability to save more than one tempo in a measure, too. (it works fine until you close and reopen).

#4

GREAT!

#5

For the record, MDMilford was talking about this bug : #3750: Mid-measure tempo changes not saved correctly

#6

Even if it is made in to the core, a read and write "velocity" property of the chord object for plugins would be a good addition.
If added I would happily try to create a plug in for the scaled step type of cresc.

#7

@Tato Please keep on the discussion about velocity and plugins here : #4983: Add read/write access to note velocity in plugin framework

#8

Ok great

#9

Hi there everybody!
are there any news in this front?
this is one of the very few things musescore is behind other non free software.
I would like to now if there are any plans for it at the moment.

#11

Title:Crescendo/decrescendo playback» Bump
Status:active» needs info

Any news about crescendo playback?

#12

Title:Bump» Crescendo/decrescendo playback
Status:needs info» active

-

#13

+1 for Crescendo/Diminuendo playback. In the mean time I may attempt to write a plugin for this, not sure if I can, but I'll try.

#14

OK, never mind, I was looking through the plugin development page, and I do not see any kind of objects for the lines, meaning there's no way to write a plugin that could find crescendos or diminuendos and edit the note velocities accordingly. If I'm missing something please point it out. This is ridiculous, I mean, I love this program, it is amazing, but this is one big annoyance, it seems like a pretty necessary feature to me. Please either implement playback, or give us more plugin objects so we can write plugins ourself. There should be objects to edit everything on the score, lines, dynamics like pianizzimo and forte, all that stuff.

#15

@KoRnKloWn If you wish to encourage the MuseScore developers to further improve the plugin framework, this is not the way to do it. You are talking to people here, not to robots. So please consider your tone.

Yes, any object and attribute should exposed through the plugin framework. That's a no-brainer. However, it would be a waste of resources currently to extend the plugin framework while the internal MuseScore model is still heavily developed. For more than a year now, the MuseScore trunk has been in flux to make it ready for professional typesetting work and extend if to support tablature notation and more. Only when this effort has come to an end with the release of MuseScore 2.0, focus can shift again to improve the plugin framework. I hope this can shed some light in what phase MuseScore currently is.

#16

Btw, there are a number of playback improvememts already in 2.0, but I don't remember if crescendo is one of them.

While the plugin framework doesn't allow you to find crescendos, you could still write a plugin that operated on a selection. Select a region, runthe plugin, up comes a dialog saying what the starting and ending dynamic should be be, and then adjuet the velocities of the notes within the selection. You can't crescendo within a single note that way, though.

Meanwhile, just be aware that the main focus has been on notation, with playback features lagging behind a bit. I'd expect to see continued improvement in both areas, but, as should be the case, deficiencies in nptation will generally take precendence.

#17

That's actually a good idea, I think I'll try something like that, it's at least a quick fix, and I'm also going to try to write a plugin for generating Creative Commons license for you score. And sorry if I gave off the wrong tone, it makes sense that they have priorities, I was just irritated a little because I'm converting all my scores from Sibelius, which in itself is no fun task, I had to look everywhere to get a free version of the MusicXML exporter (they want $200 for it), and the free one really doesn't work that well, so I had to fix everything, including the crescendos and diminuendos. And the reason I need playback is because I export my songs as midi, and I use to import those into FL Studio, but now I'm switching to LMMS with free sound fonts and VSTi, so I need to be able to have the crescendos in midi, or it just won't sound right. Anyways, thanks for the reply, I don't know why I didn't think of that workaround, I'm going to see if I can write it (the plugins don't look to difficult to write).

#18

FWIW, it looks like the most recent version of Sibelius just released last week has MusicXML support built in. Assuming it works better than the free tool you are using, that might help, and the upgrade might be cheaper than buying the official MusicXML export facility.

#19

Well it's about time they added the support! Thanks for the info, but I'm not going to purchase something I'll only use a few times, I've already gone through the trouble of converting most of my scores.

The only real problem I'm having is midi support or playback of the crescendo and diminuendo. But I'm writing a plugin for it right now, it's my first plugin though, so it's taking me a while to get it to work correctly. Basicaly what it will do, is you select the area for the dynamic and you must either have a dynamic marking like pianissimo or forte at the beginning and end of the selection, or change the first and last note values yourself, and it picks up the first and last velocities, finds the difference, then divides by the number of notes/chords, and increments up or down accordingly.

#20

The plugin I'm writing is coming along, however I'm running into a problem where the note.velocity will not return an integer, not sure why.

#21

Just wanted everyone on this thread to know I just finished my plugin and it seems to work great, I just used it on one of my scores, I fixed all the bugs I could find, and if you want to downloaded just head over to the plugins, you'll see it under Set Crescendo or Diminuendo, and there's instructions on how to use it.

#22

#23

OK time to put in my threepennorth :)

Further up the screen someone commented that there are three ways to implement Crescendo and Diminuendo in MIDI:-

Changing Note velocities for which I believe we have a plugin
Volume Controller
Expression Controller.

In a past existence as a backing track programmer I was using first Cakewalk ProAudio adn then Sonar 3 for the production of backing tracks, and I'd just like to pass on some MIDI programming conventions to you.

1. As previously stated wind instruments do not use velocity values for expression - on a suitably sophisticated Soundfont it would be used for triggering the particular attack sample before the note settles into its sustain phase, and in some MIDI implementations (XG for example) you have control over Attack, Decay and Release phases of the particular sound you are using, which makes it possible to emulate the different attack a brass instrument has when blown hard rather than softly.

This is obviously currently beyond the scope of MuseScore as it requires MIDI programming at the Event Level.

2. The MIDI Volume Controller is usualy used to set the balance between the voices, as the Mixer window does in MuseScore. This should not be changed.

3. The way to perform dynamic changes on wind instruments is to use the MIDI Expression controller which IIRC is Controller 11, as it works within the level set by the Channel Volume controller.

Of course you are at liberty to use the Channel Volume controller for dynamics, however this will completely screw up any levels set in the Mixer window.

These comments about the Expression Controller also apply to strings, which also can change attack with the application of a different Velocity.

I suggest therefore that at some future point MuseScore develops compatibility with the Expression Controller, and enables the user to select which kind of crescendo they want, possibly in a dialogue box attached to the (de)crescendo sign.

Incidentally I am very experienced with MIDI, particularly the XG flavour - I wrote a controller program for the Archimedes series of computers which allowed you to manipulate the DB50XG daughterboard card called ArmEdXG. If you need advice or information on anything MIDI related I would be only too happy to help - unfortunately I can't help with the programming side as I never got round to learning C and my fluent programming language disappeared with the Archimedes when Acorn went into liquidation in the mid 90's.

Regards
Michael

#24

Excellent information. I'd forgotten about the controllers.

Thanks.

#25

Forgot one thing.

The aftertouch controller is also mentioned.

This is usually used for stuff like vibrato and changes to the release envelope etc.

I suggest that certainly at the moment these are beyond the scope of MuseScore, although when it becomes time to implement playback of glissandi, the Portamento controller is the way to go, not pitchbend which affects the whole channel.

Regards
Michael

#26

Is this implemented yet in development version of MuseScore? Otherwise +1 for this.

#27

@subha yes, it's implemented for 2.0. For 1.x, you can use a plugin: http://musescore.org/en/project/crescendoanddiminuendoplayback

#28

Just thought I'd chime in with a possible (easy?) implementation I thought of. What if there was a layer of abstraction on the Mixer's volume control? Instead of it controlling the channel volume directly, it changed a parameter in the resultant channel volume, which would be the product of notated volume and Mixer volume. That way, when a dynamic change is reached, the notated volume could change the channel volume, without changing the user-specified Mixer controls.

There are a couple of implications for this. Note velocities should remain constant. Wind and bowed instruments would sound great. Piano and guitar could sound weird, since a sounding note could get louder during a crescendo. This could be fixed with an instrument parameter, whether to linearly interpolate over time, or change when the note changes. However, in the later case, when notes are sustained through a dynamic change, they would suddenly change in volume while ringing - this is where note-level velocities are useful.

Perhaps a combined solution would be better. For wind instruments, use the channel volume change method; for pianos etc., change note velocities.

Syndicate content