[yoshimi-user] 0.061-pre7

  • From: cal <cal@xxxxxxxxxxxx>
  • To: yoshimi-user@xxxxxxxxxxxxxxxxxxxxx
  • Date: Wed, 22 Sep 2010 23:25:52 +1000

So far I've identified and hopefully fixed three distinct segfault issues in
pre5. With pre7, I really just want to see if it actually starts reliably for
the general populace. If it runs, cool. If it doesn't, please don't burn time
on it.

<http://sourceforge.net/projects/yoshimi/files/> (in 'experimentals' directory)
<http://www.graggrag.com/?q=yoshimi>

Not sure if I've already done this, but I'll present the "release notes" here
to give an idea of the changes in play.
cheers, Cal

-----------
yoshimibb-0.061-pre7.tar.bz2

The main differences from 0.061-pre5 are:

- hopefully, it actually runs on systems other than mine.

- I suspect the startup segfault in pre5 came from the way I was using boost
shared_ptrs in a container. In pre7, I've used a boost pointer container
instead. I'm optimistic about this approach. Whether it actually achieves
anything worthwhile is still open to question.

To reiterate, the main differences from 0.058.1 are:

- There's a new dependency on the boost development headers.

- Unison is in there. A couple of Paul's original #warnings pop up during the
build. Eventually I'll figure out what to do about them.

- Midi handling has had a major reorganisation. Whether they're coming from
jack midi, alsa midi or the virtual keyboard, all midi commands go into a
queue (actually a jack ringbuffer). Regardless of the audio buffersize
nominated by jack or the alsa audio setting, sound is generated in 32 frame
blocks with queued midi commands applied between the blocks. So theoretically,
worst case midi latency == audio latency + 32 frames perhaps? It also runs
well with 64 frame blocks, just that little extra theoretical midi latency.
I'm still trying to figure out which of those two values is the better choice
for the general case. I've shamelessly borrowed code from a2jmidid, whereby
the application of midi events is deferred if their time has not yet come. I'm
moderately confident of this item with jack midi, less so with the alsi midi
implementation - yet another item on the long list of stuff I need to review &
test further.

- Instead of using yet another dedicated thread for handling Alsa midi, this one
sets up an Alsa timer and handles the midi in a timer callback.

- this one uses $HOME/.config/yoshimibb/ for config and state files, as per
desktop.org standards. If it can't find a
~/.config/yoshimibb/yoshimibb.config,
it looks for the old ~/.yoshimiXML.cfg and copies it over.

CMakeLists.txt has had a significant reorganisation:-
- there's a new option to select compiler optimisation for 64 bit + Core2.
- CMake tests for the availability of jack session support, and doesn't present
the jack session option if it's not available ... and I haven't actually
tested jack session support with this new arrangement yet.
- the synth parameters previously presented by CMake as user tweakable are now
straight defines in CMakeLists.txt. I doubt anyone has ever found cause to
tweak them.

- The executable produced is 'yoshimibb'. After all, this is the Black Belt
edition, so let's not clobber old faithful yoshimi. Also, this pre-release
doesn't actually install any instrument banks. I still need to think about how
best to incoporate Will's reorganisation.

- Alsa audio doesn't actually work (yet).


Other related posts:

  • » [yoshimi-user] 0.061-pre7 - cal