Mike Wilson's Blog

I was a MA/MST student at Stanford's Center for Computer Research in Music and Accoustics.

This is my weblog.

Click here for my main page.


I've been tinkering around with the Wilsynth a bit more.  I'm trying
to get the timing tighter and make it more efficient.  These can be
conflicting goals!

So far I've switched from RtAudio to a native Jack implementation on
the audio side, and I'm looking into using Jack MIDI as well.  It has
an advantage of being sample-synchronous, but not as many programs use
it natively.  There is a Jack-ALSA MIDI bridge but I'm not sure what
additional latencies that imposes, if any.

I also changed the way I load patches to run on a separate thread.
The thread waits until signaled, then does any necessary program
changes, then waits until signaled again.  Before I was loading
patches in my MIDI handling thread (using RtMidi), and while patch
loading doesn't happen that often it wouldn't work with the Jack
methodology which combines MIDI and audio processing in the same
callback (hence thread, I believe).

It was disturbingly easy, which means I probably made some sort of
terrible mistake.  The best outcome would be that I actually
understand multi-threaded programming, which would be great.  What I'm
doing is simple enough that I think it should be fine, but I'm on the
lookout for spurious crashes.

email mwilson@alumni.caltech.edu
Disclaimer: the views herein are my own and do not represent the views of Stanford University. All material copyright Michael J. Wilson.