Hi everybody, im sorry for this simple question but i guess i'm not handling it well. I know that the multiplying object stores two values (left inlet and right inlet) and performs the operation when both are stored or when a bang is sent to the left inlet. I did this mechanism (attached image) in order to multiply this two inputs every time one of them changes, but i am observing that the result isn't always the same.
So, i think that im doing something wrong, could you help me?
Thanks you!
Sebastián
Hi,
On 28/11/2013 10:21, sebarocker@gmail.com wrote:
Hi everybody, im sorry for this simple question but i guess i'm not handling it well. I know that the multiplying object stores two values (left inlet and right inlet) and performs the operation when both are stored or when a bang is sent to the left inlet.
I think you should familiarise with the concept of 'hot' and 'cold' inlets (and order of execution) explained the Pd Documentation Ch. 2 [1].
Lorenzo.
[1] http://msp.ucsd.edu/Pd_documentation/x2.htm See in particular "2.3.3. hot and cold inlets and right to left outlet order"
On Thu, Nov 28, 2013 at 5:21 PM, sebarocker@gmail.com sebarocker@gmail.comwrote:
I know that the multiplying object stores two values (left inlet and right inlet) and performs the operation when both are stored or when a bang is sent to the left inlet.
Not really. As lorenzo said, PD has strict rules regarding inlets and order or execution. The [* ] only stores the value of the right inlet. Any value sent to the left inlet will not be stored, it will simply be multiplied by the stored value. So when you change the DeTuner value, it will simply be multiplied by itself. There are other ways to accomplish what you want, but I think the simplest is probably to use two [* ] objects. See attached.
Oops, I think there is a mistake in the order of execution of the right trigger object in my example. It will give correct results when using the gui to change the number values, but I can see conditions where such an approach will lead to unexpected values. I think it can be fixed simply by swapping the leads of the right trigger object.
On Thu, Nov 28, 2013 at 6:20 PM, michael noble looplog@gmail.com wrote:
On Thu, Nov 28, 2013 at 5:21 PM, sebarocker@gmail.com < sebarocker@gmail.com> wrote:
I know that the multiplying object stores two values (left inlet and right inlet) and performs the operation when both are stored or when a bang is sent to the left inlet.
Not really. As lorenzo said, PD has strict rules regarding inlets and order or execution. The [* ] only stores the value of the right inlet. Any value sent to the left inlet will not be stored, it will simply be multiplied by the stored value. So when you change the DeTuner value, it will simply be multiplied by itself. There are other ways to accomplish what you want, but I think the simplest is probably to use two [* ] objects. See attached.
Hi.
On 28/11/2013 11:20, michael noble wrote:
On Thu, Nov 28, 2013 at 5:21 PM, sebarocker@gmail.com mailto:sebarocker@gmail.com <sebarocker@gmail.com mailto:sebarocker@gmail.com> wrote:
I know that the multiplying object stores two values (left inlet and right inlet) and performs the operation when both are stored or when a bang is sent to the left inlet.
Not really. As lorenzo said, PD has strict rules regarding inlets and order or execution. The [* ] only stores the value of the right inlet. Any value sent to the left inlet will not be stored,
Actually it is. The difference is that while a value coming in the right inlet will *only* be stored, with a value in the left inlet the value will be stored, the operation perfomed ( in this case multiplication) and the result output through the outlet. To try this out connect a numberbox and a bang to the left inlet, send a value and then send a bang, you see that the last value sent was also stored.
Lorenzo.
Thanks for the correction...
On Thu, Nov 28, 2013 at 6:33 PM, Lorenzo Sutton lorenzofsutton@gmail.comwrote:
Hi.
On 28/11/2013 11:20, michael noble wrote:
On Thu, Nov 28, 2013 at 5:21 PM, sebarocker@gmail.com mailto:sebarocker@gmail.com <sebarocker@gmail.com
mailto:sebarocker@gmail.com> wrote:
I know that the multiplying object stores two values (left inlet and right inlet) and performs the operation when both are stored or when a bang is sent to the left inlet.
Not really. As lorenzo said, PD has strict rules regarding inlets and order or execution. The [* ] only stores the value of the right inlet. Any value sent to the left inlet will not be stored,
Actually it is. The difference is that while a value coming in the right inlet will *only* be stored, with a value in the left inlet the value will be stored, the operation perfomed ( in this case multiplication) and the result output through the outlet. To try this out connect a numberbox and a bang to the left inlet, send a value and then send a bang, you see that the last value sent was also stored.
Lorenzo.
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/ listinfo/pd-list
So now I'm confused. What is the issue with Sebastián's original approach?
On Thu, Nov 28, 2013 at 6:33 PM, Lorenzo Sutton lorenzofsutton@gmail.comwrote:
Hi.
On 28/11/2013 11:20, michael noble wrote:
On Thu, Nov 28, 2013 at 5:21 PM, sebarocker@gmail.com mailto:sebarocker@gmail.com <sebarocker@gmail.com
mailto:sebarocker@gmail.com> wrote:
I know that the multiplying object stores two values (left inlet and right inlet) and performs the operation when both are stored or when a bang is sent to the left inlet.
Not really. As lorenzo said, PD has strict rules regarding inlets and order or execution. The [* ] only stores the value of the right inlet. Any value sent to the left inlet will not be stored,
Actually it is. The difference is that while a value coming in the right inlet will *only* be stored, with a value in the left inlet the value will be stored, the operation perfomed ( in this case multiplication) and the result output through the outlet. To try this out connect a numberbox and a bang to the left inlet, send a value and then send a bang, you see that the last value sent was also stored.
Lorenzo.
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/ listinfo/pd-list
On 2013-11-28 10:21, sebarocker@gmail.com wrote:
So, i think that im doing something wrong, could you help me?
afaik, 452.8*8 IS 3622.4, so where is the problem?
(Pd might truncate the *display* of a number (your result), that's why it shows "3622." instead of "3622.4"; but that doesn't mean that the calculation is wrong)
the other possible problem is order of execution (see the other posts), which can only be solved by a proper understanding of hot/cold and the [trigger] object. you do not seem to have this problem though. anyhow, as these are usually problems where the graphical representation comes to its limits you should *always* send patches as text (save the patch; attach the .pd file). it comes wirh the added bonus that those files can be run by anybody who wants to inspect your problem AND these files are *much* smaller.
mfg.o IOhannes
Le 28/11/2013 10:21, sebarocker@gmail.com a écrit :
Hi everybody, im sorry for this simple question but i guess i'm not handling it well. I know that the multiplying object stores two values (left inlet and right inlet) and performs the operation when both are stored or when a bang is sent to the left inlet. I did this mechanism (attached image) in order to multiply this two inputs every time one of them changes, but i am observing that the result isn't always the same.
So, i think that im doing something wrong, could you help me?
Thanks you!
Sebastián
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Can't see something wrong in your patch. It is possible to add [t f f] after the left number box to 'clearly' see the order after this box. But it is not necessary here. ++
Jack
Thanks you for the help, i think that the multiplication is fine and the problem could be in other place in my patch.
Cheers!!
2013/11/28 Jack jack@rybn.org
Le 28/11/2013 10:21, sebarocker@gmail.com a écrit :
Hi everybody, im sorry for this simple question but i guess i'm not handling it well. I know that the multiplying object stores two values (left inlet and right inlet) and performs the operation when both are stored or when a bang is sent to the left inlet. I did this mechanism (attached image) in order to multiply this two inputs every time one of them changes, but i am observing that the result isn't always the same.
So, i think that im doing something wrong, could you help me?
Thanks you!
Sebastián
_______________________________________________Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Can't see something wrong in your patch. It is possible to add [t f f] after the left number box to 'clearly' see the order after this box. But it is not necessary here. ++
Jack
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list