Rosegarden sends a Bank selection (CC 0 + CC 32) and Program change every single time playback starts from the beginning (i.e. measure 1, and this includes if you are looping with a measure which includes measure 1).

This _can_ be disabled by deselecting Bank and Program checkboxes in the Instrument Parameters pane. But..

I think this behaviour is still a bit too 'aggressive'. An example is using Rosegarden with Yoshimi where yoshimi is set-up to react to MSB and program changes. If the bank and program change are on, and you have a note on the very first beat the note is effectivelycut off. I'm assuming this is because Yoshimi (but this could apply to any other synth) is 'doing stuff' each time it needs to set-up a new bank/instrument.

Anyway, why does the sequencer need to send program change at each playback restart? My experience with both hardware and soft synths is that typically a synth/sound generator sets the program for the channel and then retains it _unless_ it is changed. I am not aware of a synth were bank/program set-up is directly related to position zero (plus most synths don't even know anything about (position) time??)

Now, we know that program changes can also be embedded in a track as an event (this was quite common with midi files in the day when you had harder limits on numbers of tracks and midi channels), but still I think if whoever made the midi track is embedding program changes in the events (segments to use the rosegarden terminology) they should take care (if needed) to embed the first program they want at position 0 in their track(s).

If I'm setting the program in the dropdowns I probably want to retain that program throughout the track and piece.

So my proposal would be that Rosegarden only changes bank program changes if:
- They are selected in the pane (this is currently already like this, good!)
- The user changes them explicitly from the Instrument parameter dropdowns (then a synth should 'remember' and keep that setting until there is another change)
- A program change is explicitly in the track/segment

The fact that a program change is being re-sent at each restart is a bit of an unexpected and 'hidden' behaviour which IMHO creates more confusion than benefit as it stands.

A compromise could be to have a new option to 'Always send Bank / Program changes when playback is restarted' in the options for users who are really fond of this feature? :)


Rosegarden-user mailing list - use the link below to unsubscribe

Reply via email to