Hi all,
My last mail was broken by the mailing list engine.
The "prose" in a file if you please ;-): http://abel.jerome.free.fr/pd/dynamic-patching/reviews/DynamicPatching_revie...
Jérôme (with accents)
----- Mail original ----- De: "abel jerome" abel.jerome@free.fr À: pd-list@iem.at Envoyé: Mercredi 24 Août 2011 12:49:10 Objet: Re: Dynamic patching with audio - review
Hi,
A new report of my researchs about audio dynamic patching techniques.
The continuation of my previous reviews : http://abel.jerome.free.fr/pd/dynamic-patching/reviews/DynamicPatching_revie... http://abel.jerome.free.fr/pd/dynamic-patching/reviews/DynamicPatching_revie...
=================================================== Pd-list archives =================================================== "The issue has been discussed several times" (IOhannes m zmoelnig)
That's right. I've just seen that the "pd dsp O/1" method was described in 2005 !
It's quite difficult to find those threads without the terms "dsp tree" or "dsp graph" or "dsp chain". Indeed, I don't know anything about it. A list of the best search terms could help us (see below) and avoid those "noise" requests.
We are trying here to make a review of all dynamic patching techniques to make it easier to understand and find the "best" solution for any project. It could be a page on the community website instead of the disheartening "do not use dynamic patching" (http://puredata.info/docs/tutorials/TipsAndTricks#how-to-avoid-audio-drop-ou...).
When I search in the pd-list, the score show some posts where the search term are in the next or previous message links, not in the message body. How limit the search term to the body and not the links ?
Futhermore, if I'm interested in one thread, it seems that if I choose to sort by thread, it's only the threads of a month. How group one thread on all months ?
"audio drop-outs with pd dsp O; pd dsp 1" "activate audio abstraction" "dynamic audio abstraction" "dynamic patching" "dynamic patching techniques" "update dsp-tree" "update dsp-graph"ofxPd
http://lists.puredata.info/pipermail/pd-list/2004-12/thread.html#24337
http://lists.puredata.info/pipermail/pd-list/2005-06/028923.html
http://lists.puredata.info/pipermail/pd-list/2007-01/046243.html
http://lists.puredata.info/pipermail/pd-list/2008-01/059244.html
http://lists.puredata.info/pipermail/pd-list/2008-12/066723.html
http://lists.puredata.info/pipermail/pd-list/2009-02/068246.html
http://lists.puredata.info/pipermail/pd-list/2009-04/069849.html
=================================================== Dynamic creation of audio abstractions ===================================================
1 - DSP 0/1 2 - Add/clear an audio object (subpatch) 3 - Add/cut any object (subpatch)
See : http://abel.jerome.free.fr/pd/dynamicPatching/patchs/dyn-audio-abstraction/
This methods work with any abstraction.
From IOhannes m zmoelnig :
"You shouldn't dynamically create abstractions while dsp is running, as it slows down significantly."
"If dsp is on, and you dynamically create 10 objects in one go (in zero logical time), then the dsp graph will be re-calculated 10 times. If you turn dsp off, then dynamically create 10 objects as before, then no dsp graph will be evaluated until you turn dsp on again, summing up to exactly 1 time. Furthermore, it guarantees that the entire DSP graph is calculated and not only parts of it (because of buggy implementations)"
Thanks a lot for those explanations. It's clear enough to see why choose these method even if internal processes in the DSP graph are still incomprehensibles.
--- With one audio abstraction. If we create just one audio abstraction at one time. Is it still the best solution or is it the same than other methods ?
--- Audio clics.
From me:
But audio clics may occur for all sounds, not just for the new one, right ?
From IOhannes:
"no, this is wrong. (at least not, if you computer is fast enough to calculate the DSP-graph within the buffertime)."
I don't understand how you can not heard clics with it. With my system, audio clics occur... Wrong settings ? Do I need a recent computer ? In fact, a clic is heard the first time with Jack/Alsa and always with Alsa and Asio4all. But in a dynamic patching case, what's this first time ? In the dynamic patch example, clics occurs even if I use Jack/Alsa.
See : http://abel.jerome.free.fr/pd/dynamic-patching/patchs/cpu-on-off/screenshots... http://abel.jerome.free.fr/pd/dynamic-patching/patchs/dyn-audio-abstraction/...
--- Time response depends on audio system If I want a cross-platform system, it couldn't be the best solution. With my computer : WinXP (~ 90 ms), Xubuntu10.04.LTS(~ 20 ms with ALSA, ~0.09 ms with Jack/Alsa), PureDyne9.11+(~ 0.09 ms with Jack/Alsa)
See : http://abel.jerome.free.fr/pd/dynamic-patching/patchs/cpu-on-off/screenshots...
If I can't use audio on/off because of the clics, we need to make prepared abstractions with a [line~] method.
The idea is to split methods in two parts:
Audio processing methods:
Communication methods:
=================================================== Dynamic patching : other techniques ===================================================
Any feedbacks or projects with those techniques ?
https://github.com/danomatika/ofxPd "Announcing ofxPd, an Open Frameworks addon for running an instance of the Pure Data audio environment within an OpenFrameworks application. Audio, messages, and MIDI events can be passed to and from pure data patches and the library is thread safe. Note: This is not the ofxPd originally released by Damian (see http://forum.openframeworks.cc/index.php/topic,4444.0.html). This is a new addon using the official libpd library.
I wrote some feedbacks about those techniques here : http://abel.jerome.free.fr/pd/dynamic-patching/reviews/DynamicPatching_revie...
=================================================== Dynamic patching : some quality specifications =================================================== We could synthesize specifications for a good audio dynamic system in Pd
Jerome