Re: Weird MIDI bug
Lorenzo Sutton <[email protected]>
| Newsgroups | gmane.comp.audio.rosegarden.user |
|---|---|
| Message-ID | <[email protected]> |
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 Lorenzo > > Lorenzo > [1] https://github.com/markc/midicomp#midicomp