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

Reply via email to