|
From: Steve H. <S.W...@ec...> - 2002-11-06 14:18:58
|
On Tue, Nov 05, 2002 at 11:35:24PM -0800, Josh Green wrote: > - Using GObject, a C based object system (GStreamer uses this). This > gives us an object system with C the lowest common denominator > programming language. GObject also has an easy python binding code > generator that is part of the pygtk package. Cool. Does GObject have c++ bindings for the c++ nazis here ;) > - How well would the object system libInstPatch uses fit with a real > time synthesizer? What kind of system could be used to associate > synthesizer time critical data with patch objects? It would probably have to be abstracted in some way, the deal with RT-ish audio software is you get handed a buffer big enough for 64 samples (for example), and you have <<1 ms to fill it then return. This means, no malloc, no file i/o, no serious data traversal. I would imagine that most engines will preprepare large linear sample buffers of the audio that there most likly to be required to play, then when there RT callback gets called they can just copy from the prepared buffers (maybe apply post processing effects if they have RT controls) and then return. If the post processing only contains effects that are controlled by time (static envelopes, retriggered LFOs etc.), not by user interaction (MIDI, sliders, dynamic enveopes,whatever) then they could be applied ahead of time. But maybe that is too special a case. - Steve |