No subject


Thu Jun 30 16:31:28 CEST 2011


"no, this is wrong. (at least not, if you computer is fast enough to calcul=
ate 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 co=
mputer ?
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 pat=
ch example, clics occurs even if I use Jack/Alsa.

See :
http://abel.jerome.free.fr/pd/dynamic-patching/patchs/cpu-on-off/screenshot=
s/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/screenshot=
s/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 abs=
traction 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


=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
Dynamic patching : other techniques
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D

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, me=
ssages, 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_revi=
ew-2.txt


=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
Dynamic patching : some quality specifications
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
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, mak=
e 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