On Wed, Nov 2, 2011 at 5:09 PM, Iain Duncan <iainduncanlists@gmail.com> wrote:
I'm hoping to arrive at some sort of design that ultimately lets the engine act as an audio server with multiple user interface clients, possibly not even on the same machines

Did you concider using OSC as an "abstraction layer" between your GUI & Engine? Spares quite a lot of nasty shared-mem tricks, and RCU, well.. is suppose you could have the editing commands sent to engine, or else run the algo on the GUI side, and update the sequence in the engine.

Check out the OSC Blob functions (sends binary data), using that and the Python Ctypes modules I think something should be possible. 

I'm not sure is this the best way to go as I don't know all your requirements of the Engine...
-Harry