But the question of how to smoothly update table graphics without messing up real-time behavior is still wode open.
Ideally there would be some way of sharing the table memory with the GUI process. Then the GUI process would just read that table using the clock of the screen refresh, at something like 60Hz, and handling the drawing itself. Then the DSP code could be totally ignorant of the drawing. That would also make it easy to set the DSP processing priority higher than the redrawing priority.
.hc
The difficulty with that is that you'd have to obtain a lock on the table in order to safely read its contents from the GUI layer - and then, the real-time layer could block on the lock and you'd get occasional hiccups in performance.
By the time you've made the interface lock-free, as far as I can see, you're retty much stuck with a fifo of some type. Admittedly, the way Pd and Tk handle the fifos is currently laughably inefficint - but that's incrementally fixable, whereas getting table updates to work well with a FIFO at all is more fundamental I think.
cheers M