Not that I am necessarily recommending it but, Csound will allow you to instantiate multiple instances of objects at runtime. I did this with Csound awhile ago and haven't touched Csound since but the general idea was create all your instruments to accept parameters and store input/output connections etc. in tables. You tell Csound to read its score file from stdin and you create/destroy instruments with various parameters by sending to Csound's stdin using the general-purpose computer language of your choice. (I used Python). Hopefully Csound has graduated to allowing instances of instruments to be created through OSC as well as stdin at this point.
-John
On 03/15/2011 03:15 AM, Frank Barknecht wrote:
Hi,
On Tue, Mar 15, 2011 at 12:07:05AM +0100, Jérôme Abel wrote:
I'm working on an open source multiuser game with a sound experimentation focus. The choosen sound engine is our favorite one Pure Data. Let's imagine populate a 3D world with pd sound patchs ! The issue is to create/destroy audio abstractions (made by users/artists) and connect/disconnect them. The audio path system must be compliant with paths in a 3D world. A sound pass through rooms and apertures : http://abel.jerome.free.fr/newatlantis/AudioDynamicPatching/images/pathfindi...
It must be dynamic like a game. I was enjoying doing this with pd, but ... my hair become more and more white. It's quite difficult.
I propose here to write a little review of this issue. To be completed, to be rectified. Don't forget that the best is the easiest way (less compilation, less dependancies, less bad tricks, etc.) and cross-platform (Linux/MacOSX/Win).
...
4 - PURE DATA - LIBPD
Let's come back with Pd. We know that Pd was used in a game Spore : http://lists.puredata.info/pipermail/pd-list/2007-11/056212.html
It could be a solution to handle dynamic audio patching. Any feedbacks ?
Libpd turns Pd into an embeddable library, so you can use Pd as a sound engine in mobile phone apps, games, web pages, and art projects http://puredata.info/community/projects/software/libpd/
libpd will make a complete instance of Pd available inside of another application, but it does not deal with instantiating single objects. This is still only possible with the "usual" mechanism Pd offers, i.e. dynamic patching, and it has the same disadvantages.
Maybe LuaAV would be worth a look, too?
Ciao