#1264 Program changes not transmitted upon loading file

One Of These Days
audio (82)

I have a Rosegarden file with 2 MIDI segments. I assign e.g. the vibraphone to the 1st segment and the guitar to the 2nd one.
When I start the recording, the 2 segments are played with the piano instrument instead of the vibraphone and guitar.
The recorded wav file shows the same result, the piano has replaced the assigned instruments.
The workaround I found to get a correct recording is to play the composition before recording it. When the composition is played, the piano replaces all the instruments at the beginning for a short time, and then the right instruments are played instead of the piano. After that, the recording is OK.


  • New document.

    Set track 1 to use "vibraphone" track 2 to use "guitar."

    Arm both tracks for recording.

    Record my keyboard onto both tracks.

    The result is I get the same notes sounding as a vibraphone on track 1 and as a guitar on track 2. No problems.

    It may have been that program changes weren't transmitted immediately or something, and this may have been a valid problem at one time. Here and now, after Julie has done all the work on various MIDI issues, it seems to work perfectly.

  • I tried with the last version (10.10 "Betty prior") and the problem still happens.
    To highlight it, configure a .rg file with several segments having different instruments assigned (but the piano) ready to record, save the file. Close rosegarden. Then re-open Rosegarden and immediately start the recording -> all the tracks are played by the piano.

  • OK, I understand now. To reproduce this, first I created a document:

    1. new document
    2. set the instrument for track 1 to play as a harpsichord
    3. use the device manager to point the file at appropriate playback and recording connections
    4. save the file

    When I load it and start recording on track 1, I am indeed hearing a piano, because the program change is not sent. The random detail that finally allowed me to observe this behavior was the fact that I set the program while the MIDI was routed to a different device, and then changed it afterwards before saving the file. Normally I would change the program in the first run, re-start Rosegarden and reload the file, and hear the program I had set previously, because my hardware maintains a persistent state between runs unless Rosegarden changes its state.

    That was a lucky break, since I might not have thought of testing in this way. I see that Rosegarden must not be transmitting any program changes at startup, because when I repeat the run a second time, I'm hearing the correct program this time, because I set it last time by hitting play.

    Tricky to spot, probably easy to fix. I bet Julie knows what's going on with this, as she has done a lot of work in this general area, trying to sort things out.

    In fact, I'm not really all that sure this is a bug. It could be working as she intended. There was an enormous amount of discussion about this sort of thing when she was working on ironing out the quirks, but I don't have a clear sense of what the new normal expectations are.

    I defer to her for further comment. In any case, the work-around for this one is really easy.

    • milestone: --> One Of These Days
  • Ted Felix
    Ted Felix

    • status: open --> closed
  • Ted Felix
    Ted Felix

    I was able to reproduce this issue in 11.06, but I'm unable to reproduce it in the latest svn. This one fixed itself, apparently.