[yoshimi] Hmmm.

  • From: Will Godfrey <willgodfrey@xxxxxxxxxxxxxxx>
  • To: yoshimi@xxxxxxxxxxxxx
  • Date: Thu, 17 Sep 2015 20:36:07 +0100

Over the last few days I've been doing some extensive testing of the current
master, including LV2 - something I don't normally use. My test file was one
that performed full bank and program setup from a midi source file as well as
volume and pan settings. However, I made an unfortunate discovery.

If Yoshimi's internal buffer is *smaller* than the jack buffer it sounds quite
horrible. If it's the same or greater there's no problem. The reason I didn't
find this before is that it only affects Yoshimi LV2. Also it doesn't apply to
any of the released versions.

The cause of the problem is that the LV2 code doesn't have the same looping
structure that was added to the standalone routine to deal with exactly this
situation (re-entering the audio 'construction' function until the jack buffer
is filled). I'm hoping Andrew can deal with this fairly soon as I don't
understand the LV2 code very well.

There are valid reasons for wanting different sizes for these buffers. The
internal buffer size as well as affecting latency and CPU load also alters the
sound in quite subtle ways. It particularly affects the behaviour of filters.
One day we may be able to stop this happening, but in the mean time we have to
live with it. For my purposes I find a buffer size of 128 or 256 is best.

So there we are. We have a problem. You can get round it, but I'm reluctant to
make the next release until it's fixed :(


Moving on from that, I was testing using the latest versions of Ardour, Muse
and Qtractor as LV2 hosts. I also tried Carla but couldn't get anywhere with it
at all - if someone is familiar with it I'd be interested in what results
they get.

Slightly to my surprise the one that performed the best in every respect was
Qtractor. Muse got everything correct, but was prone to Xruns on program
changes. Ardour was very problematical. There were no Xruns but it seemed to
have odd timing issues. Also, on two occasions it managed to shorten the decay
times of two of the instruments. I don't understand how it managed that.

My reference was the original midi file played into a stand-alone Yoshimi via
aplaymidi. This also behaves identically to the file being sequenced by
Rosegarden.

--
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.
Yoshimi source code is available from either:
http://sourceforge.net/projects/yoshimi
Or: https://github.com/Yoshimi/yoshimi
Our list archive is at: https://www.freelists.org/archive/yoshimi
To post, email to yoshimi@xxxxxxxxxxxxx

Other related posts: