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