On 23/09/2023 08:50, Lorenzo Sutton wrote:
I Will,

On 22/09/2023 21:35, Will Godfrey wrote:
First off I don't know if this is down to Rosegarden or aplaymidi

If I set program change to patch number 122 in a Rosegarden track
Yoshimi responds to by loading the appropriate patch.
If I then export that track as a MIDI file and run that via aplaymidi connected
to Yoshimi, it's ignored. Any other patch value works correctly.

It make no difference which bank or part number is used, nor if anything else
is going on at the same time.

I found this entirely by chance when trying to create some demo files. I've got round it by using patch number 120 which loads a similar sound, but can someone
find time to investigate?

At the moment I can only confirm that wierdly exporting a midi file with a track which has a program change 122 will generate a file where the program change is missing. As a counter-example I tried putting a program change 113 and that works, the program change is correctly output.

To check this I also used a handy midicomp program [1] which will dump the contents of a midi file as text and confirming the program change was missing in the file where it had been set to 122.

Just a few seconds after I hit the send something came to my mind... In 0-counting MIDI program change 122 is actually 121.

121 is also the infamous 'Reset All Controllers' controller which was causing issues.

Now if a 122 (121 counting from 0) program change is present rosegarden outputs:

[MidiFile] writeTrack(): Found controller 121. Skipping. This is a HACK to address BUG #1404.

This doesn't happen with other program changes... So, this is definitely a bug of rosegarden confusing a 121 program change for a controller change. I'm not sure if someone familiar with this code can look into this.

I think it would be useful to open a bug report on sourceforge so it can be looked into :-D


[1] https://github.com/markc/midicomp#midicomp

Rosegarden-user mailing list
Rosegarden-user@lists.sourceforge.net - use the link below to unsubscribe

Reply via email to