Since you're dealing with arithmetic, it helps immensely to simplify the data
by replacing [osc~ 440] with [sig~ 1], which will just send out blocks where
every sample is "1".
The [+~] just goes through a loop every block and does addition, sample by
sample. When you don't give it an argument as in your example, it starts with
the first sample of each input signal, adds those samples together, stores the
sum for the outgoing signal, and then does it again for the next index number
until it's gone through the entire block of samples.
When you fan out from a signal outlet into multiple signal inlets, you're
essentially just sending the same output the object computed to several places.
It's worth noting, however, that for signal chains Pd will ensure that an
object receives all of its input before it computes its output. Control
objects do not do this, which is why [trigger] exists and why it's often more
difficult to read the flow of control diagrams.
Anyway, since our source signal [sig~ 1] only contains the number 1, you can
just do the math in your head for the sum of the first two samples to get the
number "2", and safely assume it will be the same answer for the rest of the
samples in the block. Check your math using something like the [print~] object
(or the cord inspector in Pd-extended or Pd-l2ork) at the bottom of the chain.
Finally, put the [osc~ 440] back at the top and see that it's doing the exact
same math; it's only that the samples of each block will have different values.
But if you use several [print~] objects to see what's being computed at each
link of the object chain, you can still check the math works for any sample you
want to track visually.
Finally, it's worth noting that most arithmetic signal objects have a
simplified method that's used if you specify an argument, like [+~ 42]. In
this case, the right inlet is actually a control inlet. It simplifies the math
somewhat because there's only one incoming signal, and it gets added to a
constant value in the loop to compute the output. If you're going to be
sending control data to the right inlet of a [+~] object, you can force this
simplification using [+~ 0]. (Same for the other arithmetic signal objects.)
-Jonathan
On Saturday, January 18, 2014 12:24 PM, Pall Thayer <[email protected]> wrote:
Can anyone tell me what one is accomplishing when doing something like this:
[osc~ 440]
|
[+~]
|\
[+~]
|\
[+~]
|\
[+~]
In other words, the chain of [+~] that feed the previous object's output into
both inlets of the next... what does this do exactly?
Thanks,
Pall
--
*****************************
Pall Thayer
artist
http://pallthayer.dyndns.org
*****************************
_______________________________________________
[email protected] mailing list
UNSUBSCRIBE and account-management ->
http://lists.puredata.info/listinfo/pd-list
_______________________________________________
[email protected] mailing list
UNSUBSCRIBE and account-management ->
http://lists.puredata.info/listinfo/pd-list