Have you looked at the [switch~] object? It doesn't allow you to create/destroy the abstractions, but it does allow you to turn off dsp in each of them as necessary.
-Jonathan --- On Tue, 3/15/11, Jérôme Abel <abel.jer...@free.fr> wrote: > From: Jérôme Abel <abel.jer...@free.fr> > Subject: [PD] Dynamic patching with audio - review > To: pd-list@iem.at > Date: Tuesday, March 15, 2011, 12:07 AM > Hi dynamic community, > > 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/pathfinding.png > > 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). > > ****************************** > *** DYNAMIC PATCHING TESTS *** > ****************************** > All my tests and comments here (patchs, screenshots) : > http://abel.jerome.free.fr/newatlantis/AudioDynamicPatching.tar.gz > > 1 - PURE DATA > -------------- > First, considering audio in Pd, we can read "do not use > dynamic patching" !! > http://puredata.info/docs/tutorials/TipsAndTricks#how-to-avoid-audio-drop-outs > > It's not very encouraging. So what ? Which tool use then ? > > > A comparison of audio tools : > http://en.wikipedia.org/wiki/Comparison_of_audio_synthesis_environments > > 2 - SUPERCOLLIDER > ----------------- > Supercollider seems to work well with dynamic audio > connections. We can read "Adding an Effect Dynamically" and > so on. > http://danielnouri.org/docs/SuperColliderHelp/Tutorials/Tutorial.html > > "It is an efficient and expressive dynamic programming > language" > http://en.wikipedia.org/wiki/SuperCollider > > So, how interface it with a pd patch ? I know that it's ok > with OSC messages, but could we imagine, Supercollider as a > the connection manager and Pd as the sounds loader ? An > audio communication between Supecollider and Pd. > > 3 - PYTHON > ---------- > Some projects use Python to make dynamic patching. I don't > know if those projects are really working with full > functionnalities like a complete audio path system. I think > the most advanced is Purity but may be not enough, see the > roadmap. Any feedbacks in use ? > > Purity is a Python library for Pure Data dynamic patching. > http://wiki.dataflow.ws/Purity > > Pyata - a Library that allows you to use Pure Data inside > Python > svn checkout http://pyata.googlecode.com/svn/trunk/ pyata-read-only > > > Automata-topd is a small collection of Python classes to > communicate with Pure Data sending FUDI messages by socket. > https://github.com/automata/topd > > PuréeData is a browser-based PureData interface for a > remote, central server that allows live, collaborative > patching for anyone, anywhere. > https://github.com/virgildisgr4ce/PureeData > > 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/ > > How to use Pure Data as an API > http://jeraman.wordpress.com/2009/03/22/how-to-use-pure-data-as-a-api/ > > 5 - PURE DATA - DYN~ > -------------------- > This external allows the dynamic creation and deletion, > connection and disconnection of standard Pd objects and > abstractions. > But : dyn~ is bound to the PD version it is compiled for. > http://puredata.info/Members/thomas/dynext > > I success compile it. It seems a good system. If we compile > a binary for 3 or more plateforms, will it work just with > the binaries ? > We must see advantages with my system (pd-messages + index > + abstractions) > http://abel.jerome.free.fr/newatlantis/AudioDynamicPatching/images/dyn-audio-paths-dyn~.png > > 6 - PURE DATA - IEMGUTS > ----------------------- > We know reflection in Pd with iemguts. I'm not comfortable > with it. Any feedbacks about the issue ? > https://pure-data.svn.sourceforge.net/svnroot/pure-data/trunk/externals/iem/iemguts/ > http://lac.linuxaudio.org/2009/cdm/Saturday/18_Zmoelnig/zmoelnig_pdreflection.pdf > > 7 - PURE DATA - PD MESSAGES > --------------------------- > A review with pd internal messsages. > http://puredata.info/Members/eni/techniques > > In Pd : > /usr/lib/pd-extended/doc/Pure Data/manuals/pd-msg > > Basic tests : > http://abel.jerome.free.fr/newatlantis/AudioDynamicPatching/images/dyn-audio-paths-pd-msg.png > > 8 - PURE DATA - MATRIX~ > ----------------------- > 'iemmatrix' provides a suite of matrix processing and > linear algebra functionality. > http://puredata.info/community/projects/software/iemmatrix > > The problem here, the numbers of rows and columns are > fixed. > > 9 - PURE DATA - COORDS / WIRELESS > --------------------------------- > System with receive~/throw~ and catch~/send~ (many-to-many > connections) : > http://abel.jerome.free.fr/newatlantis/AudioDynamicPatching/images/dyn-audio-paths-system-3D-like-1.png > http://abel.jerome.free.fr/newatlantis/AudioDynamicPatching/images/dyn-audio-paths-system-3D-like-2.png > > Do you think receive~/send~ could be use in a dynamic audio > patching ? > Is there a problem with buffer or something like that ? Any > feedbacks with a lot of connections ? > > 10 - PURE DATA - CREATE AUDIO ABSTRACTIONS > ------------------------------------------ > There is a problem when I create an audio abstraction. The > sound of the abstraction is not working while other previous > audio objects are working. We have to send a mouseup and cut > message to simulate mouse activity ! > http://abel.jerome.free.fr/newatlantis/AudioDynamicPatching/images/dyn-audio-paths-abstraction-problem-2.png > > > *********************** > *** OTHER RESOURCES *** > *********************** > > DYNAMIC PATCHING > ---------------- > http://jeraman.wordpress.com/tag/dynamic-patching/ > > PURE DATA MAILING LIST > ---------------------- > [PD] dynamically settable many-to-many cordless audio > routing > http://www.mail-archive.com/pd-list@iem.at/msg29163.html > > [PD] About dynamic patches > http://lists.puredata.info/pipermail/pd-list/2002-05/006646.html > > [PD] [PD-announce] many - a library for managing many > instances > http://lists.puredata.info/pipermail/pd-list/2010-11/084446.html > http://puredata.info/community/projects/software/many > > [PD] About dynamic patches > http://lists.puredata.info/pipermail/pd-list/2002-05/006658.html > > [PD] Automated object/message/etc creation > http://lists.puredata.info/pipermail/pd-list/2005-11/032911.html > > DYN~ > ---- > http://konkanok.com/2010/12/dyn-object-for-pure-data/ > > DYN~ - INSTALLATION > ------------------- > --- flext --- > - Download flext, see readme.txt, see build.txt > - bash build.sh pd gcc > - edit buildsys/config-lnx-pd-gcc.txt : > # where is the PD source package? > PDPATH=/usr/lib/pd-extended/ > ... > # where should the external be installed? > INSTPATH=/usr/lib/pd-extended/extra > - bash build.sh pd gcc > - sudo bash build.sh pd gcc install > > --- dyn --- > - cd ./dyn/ > - bash ../flext/build.sh pd gcc > - bash ../flext/build.sh pd gcc install > - bash ../flext/build.sh pd gcc clean > > LIBPD > ----- > How-to: Hacking RjDj with PD > http://blog.makezine.com/archive/2008/11/howto-hacking-rjdj-with-p.html?CMP=OTC-0D6B48984890 > > IEMGUTS > ------- > https://pure-data.svn.sourceforge.net/svnroot/pure-data/trunk/externals/iem/iemguts/ > 1) install NightlyBuild pd-extended : > http://autobuild.puredata.info/auto-build/ > 2) create a directory iem_guts : > mkdir iem_guts > 3) take iem_guts sources : > svn co > https://pure-data.svn.sourceforge.net/svnroot/pure-data/trunk/externals/iem/iemguts/ > ./iem_guts > 4) move into sources directory > cd iem_guts/src > 5) compile iem_guts : > make l_i386 > 6) add library into ~.pdsettings > > NSOUND > ------ > http://nsound.sourceforge.net/ > > > > > > -- > Jérôme Abel > http://abel.jerome.free.fr > > _______________________________________________ > Pd-list@iem.at > mailing list > UNSUBSCRIBE and account-management -> > http://lists.puredata.info/listinfo/pd-list > _______________________________________________ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list