<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Operate (multiply) by combining all the instances of [clone]]]></title><description><![CDATA[<p>Hi!</p>
<p>Is it possible to operate on all the instances of a [clone] object by multipling all of them (making a big AM/ring modulation of all the signals)?</p>
<p>Thanks!</p>
]]></description><link>http://forum.pdpatchrepo.info/topic/14801/operate-multiply-by-combining-all-the-instances-of-clone</link><generator>RSS for Node</generator><lastBuildDate>Tue, 19 May 2026 19:38:14 GMT</lastBuildDate><atom:link href="http://forum.pdpatchrepo.info/topic/14801.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 20 Jul 2024 21:01:22 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Operate (multiply) by combining all the instances of [clone] on Sat, 20 Jul 2024 21:01:22 GMT]]></title><description><![CDATA[<p>Hi!</p>
<p>Is it possible to operate on all the instances of a [clone] object by multipling all of them (making a big AM/ring modulation of all the signals)?</p>
<p>Thanks!</p>
]]></description><link>http://forum.pdpatchrepo.info/topic/14801/operate-multiply-by-combining-all-the-instances-of-clone</link><guid isPermaLink="true">http://forum.pdpatchrepo.info/topic/14801/operate-multiply-by-combining-all-the-instances-of-clone</guid><dc:creator><![CDATA[inum]]></dc:creator><pubDate>Sat, 20 Jul 2024 21:01:22 GMT</pubDate></item><item><title><![CDATA[Reply to Operate (multiply) by combining all the instances of [clone] on Sun, 21 Jul 2024 07:49:10 GMT]]></title><description><![CDATA[<p>The efficiency police that patrol this forum will probably arrest me, but here's a very easy way from a coding perspective. Since the [outlet~]s of cloned abstractions sum, it would be great if there was a way to transform summation into multiplication. You're in luck: have each abstraction output the [log~] if its factor, and then on the summed output of the clone, apply [exp~]. In other words, exp(log A + log B + log C + ...) = A * B * C * ....</p>
<p>Edit: aw crap, doesn't work for negative numbers. Can it be salvaged with an extra quadrant signal?</p>
]]></description><link>http://forum.pdpatchrepo.info/topic/14801/operate-multiply-by-combining-all-the-instances-of-clone/2</link><guid isPermaLink="true">http://forum.pdpatchrepo.info/topic/14801/operate-multiply-by-combining-all-the-instances-of-clone/2</guid><dc:creator><![CDATA[jameslo]]></dc:creator><pubDate>Sun, 21 Jul 2024 07:49:10 GMT</pubDate></item><item><title><![CDATA[Reply to Operate (multiply) by combining all the instances of [clone] on Sun, 21 Jul 2024 08:56:19 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-a" href="http://forum.pdpatchrepo.info/user/jameslo">@jameslo</a> said:</p>
<blockquote>
<p>Edit: aw crap, doesn't work for negative numbers. Can it be salvaged with an extra quadrant signal?</p>
</blockquote>
<p>You could take the log of the absolute values of each signal instead and fix the sign at the end: output 1 for each [clone] instance if the signal is negative (otherwise 0) and take the sum, mutiply the output of [exp~] by 1 if that sum is pair and by -1 if it's impair. More complaints from the efficiency police expected <img class="emoji emoji-extended" src="http://forum.pdpatchrepo.info/plugins/nodebb-plugin-emoji-extended/images/grin.png" title="grin" alt=":grin:" /> ... But I love the idea!</p>
]]></description><link>http://forum.pdpatchrepo.info/topic/14801/operate-multiply-by-combining-all-the-instances-of-clone/3</link><guid isPermaLink="true">http://forum.pdpatchrepo.info/topic/14801/operate-multiply-by-combining-all-the-instances-of-clone/3</guid><dc:creator><![CDATA[manuels]]></dc:creator><pubDate>Sun, 21 Jul 2024 08:56:19 GMT</pubDate></item><item><title><![CDATA[Reply to Operate (multiply) by combining all the instances of [clone] on Sun, 21 Jul 2024 11:23:40 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-a" href="http://forum.pdpatchrepo.info/user/manuels">@manuels</a> Nice, you beat me to it. Yeah, I thought of the log/exp bit after I went to bed and felt compelled to get up to post it, but then even later in the night I woke up and realized my mistake! When I was working I used to joke that I should bill for the time I'm sleeping. <img class="emoji emoji-extended" src="http://forum.pdpatchrepo.info/plugins/nodebb-plugin-emoji-extended/images/grinning.png" title=":)" alt=":)" /></p>
<p><a class="plugin-mentions-a" href="http://forum.pdpatchrepo.info/user/inum">@inum</a> Here is an example <a href="/uploads/files/1721560890990-multiplyfactors.zip">multiplyFactors.zip</a>  Please post sound output when you get it running to your satisfaction--I'm curious what you're trying to do.</p>
<p><img src="/uploads/files/1721560900254-screenshot-2024-07-21-071714.png" alt="Screenshot 2024-07-21 071714.png" class="img-responsive img-markdown" /></p>
]]></description><link>http://forum.pdpatchrepo.info/topic/14801/operate-multiply-by-combining-all-the-instances-of-clone/4</link><guid isPermaLink="true">http://forum.pdpatchrepo.info/topic/14801/operate-multiply-by-combining-all-the-instances-of-clone/4</guid><dc:creator><![CDATA[jameslo]]></dc:creator><pubDate>Sun, 21 Jul 2024 11:23:40 GMT</pubDate></item><item><title><![CDATA[Reply to Operate (multiply) by combining all the instances of [clone] on Sun, 21 Jul 2024 12:00:51 GMT]]></title><description><![CDATA[<p>an alternative would be to dynamically patch a linear chain using helper abstractions instead.<br />
couple ideas: (open chain.pd) <a href="/uploads/files/1721563230705-multimulti.zip">multimulti.zip</a></p>
]]></description><link>http://forum.pdpatchrepo.info/topic/14801/operate-multiply-by-combining-all-the-instances-of-clone/5</link><guid isPermaLink="true">http://forum.pdpatchrepo.info/topic/14801/operate-multiply-by-combining-all-the-instances-of-clone/5</guid><dc:creator><![CDATA[seb-harmonik.ar]]></dc:creator><pubDate>Sun, 21 Jul 2024 12:00:51 GMT</pubDate></item><item><title><![CDATA[Reply to Operate (multiply) by combining all the instances of [clone] on Sun, 21 Jul 2024 21:46:57 GMT]]></title><description><![CDATA[<p>yet another option that may (or may not) pass efficiency police checks: send the result of each instance to previous (or next) instance ...</p>
<p><img src="/uploads/files/1721597499125-image.png" alt="image.png" class="img-responsive img-markdown" /></p>
<p>in this case, the signal is passed through starting from the last instance. since the last instance doesn't have a corresponding sender, the <code>[s~ 3-instance]</code> becomes necessary with a constant signal of 1 as a factor. it would work as well in the opposite direction, of course. the cloned instances are all muted except for instance 0, which is the result of all multiplications.</p>
<p>this is a quick hack - not sure if it does what it's supposed to do. if you want to check, here are the 2 patches: <a href="/uploads/files/1721598140951-test-am-clone.zip">test-am-clone.zip</a></p>
]]></description><link>http://forum.pdpatchrepo.info/topic/14801/operate-multiply-by-combining-all-the-instances-of-clone/6</link><guid isPermaLink="true">http://forum.pdpatchrepo.info/topic/14801/operate-multiply-by-combining-all-the-instances-of-clone/6</guid><dc:creator><![CDATA[ben.wes]]></dc:creator><pubDate>Sun, 21 Jul 2024 21:46:57 GMT</pubDate></item><item><title><![CDATA[Reply to Operate (multiply) by combining all the instances of [clone] on Sun, 21 Jul 2024 22:19:46 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-a" href="http://forum.pdpatchrepo.info/user/ben-wes">@ben.wes</a> That's a great solution to the lateral-signal-pass-among-clones problem, but I would check to see if there is latency at each s~/r~ pair. When I looked into it a few years back I think I found that sending in the opposite direction (i.e. ascending clone index order) was preferable because it had no latency.</p>
]]></description><link>http://forum.pdpatchrepo.info/topic/14801/operate-multiply-by-combining-all-the-instances-of-clone/7</link><guid isPermaLink="true">http://forum.pdpatchrepo.info/topic/14801/operate-multiply-by-combining-all-the-instances-of-clone/7</guid><dc:creator><![CDATA[jameslo]]></dc:creator><pubDate>Sun, 21 Jul 2024 22:19:46 GMT</pubDate></item><item><title><![CDATA[Reply to Operate (multiply) by combining all the instances of [clone] on Mon, 22 Jul 2024 08:11:24 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-a" href="http://forum.pdpatchrepo.info/user/jameslo">@jameslo</a> that's a very good point and i didn't consider it at all. thanks!</p>
<p>without checking, i assume that it's exactly as you say since the instances are created in ascending order and i certainly introduced 1-block-delays that way as described in the help of <code>s~</code>/<code>r~</code>:</p>
<blockquote>
<p>You have to get the [send~] sorted before the [receive~] or else you'll potentially get a one block delay.</p>
</blockquote>
<p>(i'm actually not sure why it would only &quot;potentially&quot; happen)</p>
<p>... attaching an updated patch that's actually quite fun to play around with (in this case, the clone needs a second argument for the audible instance): <a href="/uploads/files/1721602275181-test-am-clone.zip">test-am-clone.zip</a></p>
<p>EDIT: checked and confirmed now (that the sender should be in the previous instance).</p>
]]></description><link>http://forum.pdpatchrepo.info/topic/14801/operate-multiply-by-combining-all-the-instances-of-clone/8</link><guid isPermaLink="true">http://forum.pdpatchrepo.info/topic/14801/operate-multiply-by-combining-all-the-instances-of-clone/8</guid><dc:creator><![CDATA[ben.wes]]></dc:creator><pubDate>Mon, 22 Jul 2024 08:11:24 GMT</pubDate></item><item><title><![CDATA[Reply to Operate (multiply) by combining all the instances of [clone] on Mon, 22 Jul 2024 14:03:42 GMT]]></title><description><![CDATA[<p>adding one more detail ... with a little logic inside the cloned patch, it's not necessary to set the audible instance id with an additional parameter - the max id can also be derived like this for example:</p>
<p><img src="/uploads/files/1721657019930-image.png" alt="image.png" class="img-responsive img-markdown" /></p>
]]></description><link>http://forum.pdpatchrepo.info/topic/14801/operate-multiply-by-combining-all-the-instances-of-clone/9</link><guid isPermaLink="true">http://forum.pdpatchrepo.info/topic/14801/operate-multiply-by-combining-all-the-instances-of-clone/9</guid><dc:creator><![CDATA[ben.wes]]></dc:creator><pubDate>Mon, 22 Jul 2024 14:03:42 GMT</pubDate></item><item><title><![CDATA[Reply to Operate (multiply) by combining all the instances of [clone] on Mon, 22 Jul 2024 15:16:45 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-a" href="http://forum.pdpatchrepo.info/user/ben-wes">@ben.wes</a> In my (much less nice) version of the lateral signal pass clone, I didn't use [outlet~]. I just used the final [s~] to get the resulting signal.</p>
]]></description><link>http://forum.pdpatchrepo.info/topic/14801/operate-multiply-by-combining-all-the-instances-of-clone/10</link><guid isPermaLink="true">http://forum.pdpatchrepo.info/topic/14801/operate-multiply-by-combining-all-the-instances-of-clone/10</guid><dc:creator><![CDATA[jameslo]]></dc:creator><pubDate>Mon, 22 Jul 2024 15:16:45 GMT</pubDate></item><item><title><![CDATA[Reply to Operate (multiply) by combining all the instances of [clone] on Tue, 23 Jul 2024 06:50:57 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-a" href="http://forum.pdpatchrepo.info/user/jameslo">@jameslo</a> said:</p>
<blockquote>
<p>[...] In my (much less nice) version [...] I just used the final [s~] to get the resulting signal.</p>
</blockquote>
<p>after reading this, i mainly get the impression that your version might have been much less complicated!</p>
<p>... it seems so obvious now to just continue the chain from the last <code>s~</code> instead of &quot;sending&quot; to nirvana and adding a logic to achieve the correct outlet~ result. damn. thanks!</p>
]]></description><link>http://forum.pdpatchrepo.info/topic/14801/operate-multiply-by-combining-all-the-instances-of-clone/11</link><guid isPermaLink="true">http://forum.pdpatchrepo.info/topic/14801/operate-multiply-by-combining-all-the-instances-of-clone/11</guid><dc:creator><![CDATA[ben.wes]]></dc:creator><pubDate>Tue, 23 Jul 2024 06:50:57 GMT</pubDate></item><item><title><![CDATA[Reply to Operate (multiply) by combining all the instances of [clone] on Wed, 24 Jul 2024 17:49:41 GMT]]></title><description><![CDATA[<p>Thanks a lot for all the answers, really amazing ideas!!</p>
<p>This Log Exp trick is really amazing!!!</p>
]]></description><link>http://forum.pdpatchrepo.info/topic/14801/operate-multiply-by-combining-all-the-instances-of-clone/12</link><guid isPermaLink="true">http://forum.pdpatchrepo.info/topic/14801/operate-multiply-by-combining-all-the-instances-of-clone/12</guid><dc:creator><![CDATA[inum]]></dc:creator><pubDate>Wed, 24 Jul 2024 17:49:41 GMT</pubDate></item></channel></rss>