From: Bill Kelly Date: 2005-03-22T23:43:53+09:00 Subject: Re: FMOD or other sound libraries...anyone? From: "Mathieu Bouchard" > > I am maintainer for the Ruby bindings to PureData, which is a realtime > visual programming language for audio. I am also the author of a video > plugin for PureData, and actually those things are bundled together under > the name GridFlow. Awesome !!!!! > It would be cool to have more elaborate bindings because the ones I have > coded are rather minimal (that is, only what I need to have for the video > plugin). In the future it would be cool to be able to have complete > access to PureData objects, in the same way that the Python bindings to > PureData can. Especially missing are ways to access audio buffers. I think > it wouldn't be that difficult to implement, but I haven't needed them yet. > PS: The big problem with audio and Ruby, though, is that the garbage > collector takes too much CPU in one chunk, so that low-latency audio just > fails horribly. For ordinary audio needs that's not really a problem > unless the computer is slow, but many people want low-latency so that they > can replace their expensive and unflexible guitar pedals by something > extremely versatile, the computer. I'm interested in both low-latency audio and MIDI... I've just learned about PureData from your post, so haven't seen the internals yet. I presume having "access" to audio buffers from ruby for any kind of real-time work is probably somewhat pointless anyway - unless ruby is making very high level calls to perform operations on the buffers? My inclination (again, not knowing PureData yet) would be to want to put the real-time audio processing in a separate thread, unaffected by ruby's GC. Then have ruby be able to configure what the audio thread is doing, without interfering with it. . . . GridFlow looks very, very cool. I've been wanting to do something similar (although different :) From your web page: - Adding MSWindows display support (GDI or DirectX or SDL or...) I'm writing a ruby extension at the moment called GLWindow. The primary difference between SDL's OpenGL or GLUT is that GLWindow supports multiple windows, all having a *shared* GL context. Also, it can open/close additional windows very rapidly, and can continue updating while a window is being moved/resized; basic stuff like that needed by my app. So maybe it could be potentially useful for GridFlow? (GLWindow is being developed on win32 now, but I want my app to run on Linux and OS X too, so, eventually it'll be on those platforms as well.) Regards, Bill