The "problem" is that Pd doesn't recompute the DSP graph when you *add* an object. Instead it recomputes the graph when you make a new signal connection (or when you delete an object, save a patch, etc.) So when you add the [dac~] object, the graph is not updated and it doesn't compute audio (yet). Only when you force a DSP graph update - in your case by deleting an object - it starts computing audio.

BTW, the problem you see with [dac~] is basically the same as with [bang~]. The latter doesn't output bangs immediately after creation but rather on the next DSP graph update. This has caused quite some confusion in the past.

Christof

On 06.12.2021 19:18, Peter P. wrote:
Dear IOhannes,

crazy, thank you for the pristine explanation, is makes sense now!
What still puzzles me is that [dac~] does not output a signal when it
receives the "1" message.

Thanks again,
P

* IOhannes m zmölnig <[email protected]> [2021-12-06 19:04]:
On 12/6/21 17:57, Peter P. wrote:
Is this know, explainable and does it "mean" something? ;)
it's known (that is: the group of problems to which this one belongs)

here's a layman explanation (that i haven't actually checked with the source
code):

whenever you patch with signal objects (that is: create a new object~,
delete a object~, connet object~s), the DSP graph gets re-compiled (if dsp
is on).
this is not true for non-signal objects: adding/connecting non-signal
objects is not going to change the DSP graph, so it is not re-compiled
(however, it does need to be recompiled if you remove a non-signal
object...why? just think [table]).

now with your single [dac~] object, there is not much of a DSP-graph to
compute, so Pd obviously does nothing. esp. the float-to-signal conversion
seems to be not activated yet.
adding a single msgbox and connecting it to [dac~] doesn't change anything
in this regard, so Pd doesn't "notice" that it now has to actually do the
float-to-signal forwarding.

you can force a re-compilation of the DSP graph (which will make Pd pick up
the float-to-signal conversion) by saving your patch (notice that get the
click).
you can also force it by removing any object (or msgbox!) - which you
already know.

you could also connect a [sig~ 0] to the *second* inlet of the [dac~] tat
the beginning: this will not do much except creating a (small) DSP-graph of
which [dac~] is part of.
if you then create you msgbox and send [1( to the *first* (otherwise
unconnected) inlet of [dac~] you also get a click.


gfmds
IOhannes



_______________________________________________
[email protected] mailing list
UNSUBSCRIBE and account-management -> 
https://lists.puredata.info/listinfo/pd-list



_______________________________________________
[email protected] mailing list
UNSUBSCRIBE and account-management -> 
https://lists.puredata.info/listinfo/pd-list



_______________________________________________
[email protected] mailing list
UNSUBSCRIBE and account-management -> 
https://lists.puredata.info/listinfo/pd-list

Reply via email to