No subject


Thu Jun 30 16:31:28 CEST 2011


"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/cpu-on-off-audio-clics.png
http://abel.jerome.free.fr/pd/dynamic-patching/patchs/dyn-audio-abstraction/screenshots/dyn-activate-audio-abstractions.png

--- 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/cpu-on-off-time.png


- Methods without clics [line~]
----------------------------------------
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:
- create/destroy objects
- connect/disconnect audio paths (in our case : audio activation)

Audio processing methods:
- [line~]
- [switch~] and [line~]
- all audio paths in a [mtx_*~] object which receive audio signals from abstraction and a [send~ $1] in abstrations, where $1 is the unique ID of the abstraction.

Communication methods:
- global messages
- unique message for abstractions : an unique Id in the first argument and a [r $1] in the abstraction


===================================================
Dynamic patching : other techniques
===================================================

Any feedbacks or projects with those techniques ?

- ofxPd
---------------------------------------------------
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.

- libpd, Purity, Dyn~, Pdsheefa, Ext13 lib
---------------------------------------------------
I wrote some feedbacks about those techniques here :
http://abel.jerome.free.fr/pd/dynamic-patching/reviews/DynamicPatching_review-2.txt


===================================================
Dynamic patching : some quality specifications
===================================================
We could synthesize specifications for a good audio dynamic system in Pd

- How many objects must be created in one time
- Constraints about the quantity of audio objects
- Activate audio (for abstractions)
- System with any or prepared abstractions
- Avoid audio clics (dsp on/off or line~): delete/create without clics, make connection/disconnect without clics
- Dsp chain (update dsp-graph one time)
- Best CPU (avoid compute dsp on unused abstractions)
- Best time response (dsp 0/1 latency)
- Easiest way (less is often better)
- Internal messages or Pd exteranls or C/C++ API


Jerome



More information about the Pd-list mailing list