[yoshimi] The bug that never was

  • From: Will Godfrey <willgodfrey@xxxxxxxxxxxxxxx>
  • To: yoshimi@xxxxxxxxxxxxx
  • Date: Fri, 27 Nov 2015 17:19:10 +0000

And two that really are :(

While trying to track down two extremely rare and obscure bugs I got bogged
down for a while in what seemed to be a string corruption one.

In the arpeggios bank set, numbers 9, 10 & 11 seem to be corrupted if you load
them via a MIDI program change, whereas going via the instrument bank appears to
be quite correct. Well actually that's not true. It is the bank load that is
wrong and this goes right back to Zyn 2.2.1

Each instrument has a filename, but also has an *internal* name. Normally these
two are the same, and are guaranteed to be so if you save an instrument to a
bank. However, there is nothing to stop anyone saving an instrument file
externally with a different filename or at some later date just changing the
filename. Neither of these will change the internal name.

So what to do?
What I've come up with is for banks to continue to show the filename, but when
loaded the part will show the internal name. This makes all load operations
consistent.

Also, to make save operations consistent as well, if saving externally you'll
first be offered the internal name (although this will be lost if you use fltk's
built in 'Favourites' option to change directories.

This is in the current 'master'.

Well, that's the good news.


There are two very obscure bugs I'm trying to chase down both triggered by one
specific malformed Rosegarden file, which causes it to send a storm of 48 of
each Root, Bank, Program changes mixed up with 192 other CCs!

The first is caused by the program change thread getting its knickers in a
twist. You can stop this by changing line 514 of /src/MusicIO/MusicIO.cpp:

if (in_place)
to
if (true)

The downside is that you then go back to program changes being in-line with all
other MIDI and potentially creating a timing bottleneck.

The second problem is even more obscure. You will only see it if Bank Root
change is enabled *and* either the Banks or Instruments window is open. The
dodgy file will then cause Yoshi's gui to freeze and you can only clear it
with a kill -9
Obviously something is not getting updated, but I don't know what.

Both of these only seem to be triggered by this specific file, I've never seen
this behaviour at any other time. Also, there have been a lot of changes in
Rosegarden itself, so older version may not do this.

I've attached the problem file for anyone who wants to have a look at this.

--
Will J Godfrey
http://www.musically.me.uk
Say you have a poem and I have a tune.
Exchange them and we can both have a poem, a tune, and a song.

Attachment: yoshimi_pan_test.rg
Description: Binary data

Other related posts:

  • » [yoshimi] The bug that never was - Will Godfrey