<?xml version="1.0" encoding="UTF-8"?>
	<rss version="2.0"
		xmlns:content="http://purl.org/rss/1.0/modules/content/"
		xmlns:wfw="http://wellformedweb.org/CommentAPI/"
		xmlns:dc="http://purl.org/dc/elements/1.1/"
		xmlns:atom="http://www.w3.org/2005/Atom"

			>

	<channel>
		<title>Cycling 74  &#187;  Topic: Msp: Do you need to use + for combining signals?</title>
		<atom:link href="http://cycling74.com/forums/topic/msp-do-you-need-to-use-for-combining-signals/feed" rel="self" type="application/rss+xml" />
		<link>http://cycling74.com/forums/topic/msp-do-you-need-to-use-for-combining-signals/feed</link>
		<description></description>
		<pubDate>Tue, 18 Jun 2013 15:58:55 +0000</pubDate>
		<generator>http://bbpress.org/?v=2.2.4</generator>
		<language></language>

		
														
					
				<item>
					<guid>http://cycling74.com/forums/topic/msp-do-you-need-to-use-for-combining-signals/#post-63537</guid>
					<title><![CDATA[Msp: Do you need to use + for combining signals?]]></title>
					<link>http://cycling74.com/forums/topic/msp-do-you-need-to-use-for-combining-signals/#post-63537</link>
					<pubDate>Thu, 10 May 2012 16:51:05 +0000</pubDate>
					<dc:creator>Sym</dc:creator>

					<description>
						<![CDATA[
						<p>Hey, I&#8217;m currently working on a project with additive synthesis.</p>
<p>I would like to know if i need to sum all the signal up with + objects first or if i can send them all into one * object.</p>
<p>I used to do it in one * object but today I was told that this is not the proper way on doing it.</p>
<p>Anyone got an opinion?</p>
						]]>
					</description>

					
					
				</item>

			
				<item>
					<guid>http://cycling74.com/forums/topic/msp-do-you-need-to-use-for-combining-signals/#post-229042</guid>
					<title><![CDATA[Re: Msp: Do you need to use + for combining signals?]]></title>
					<link>http://cycling74.com/forums/topic/msp-do-you-need-to-use-for-combining-signals/#post-229042</link>
					<pubDate>Thu, 10 May 2012 17:05:01 +0000</pubDate>
					<dc:creator>spectro</dc:creator>

					<description>
						<![CDATA[
						<p>AFAIK MSP signals are summed when connected to the same inlet. So it would be ok to do what you want, ie send all the signals to one [*~] object. With that said, it may be possible to do what you want with oscbank~ or ioscbank~</p>
						]]>
					</description>

					
					
				</item>

			
				<item>
					<guid>http://cycling74.com/forums/topic/msp-do-you-need-to-use-for-combining-signals/#post-229043</guid>
					<title><![CDATA[Re: Msp: Do you need to use + for combining signals?]]></title>
					<link>http://cycling74.com/forums/topic/msp-do-you-need-to-use-for-combining-signals/#post-229043</link>
					<pubDate>Thu, 10 May 2012 17:12:35 +0000</pubDate>
					<dc:creator>n00b_meister</dc:creator>

					<description>
						<![CDATA[
						<p>&#8230;.with the proviso that your output should not exceed 1., natch&#8217;</p>
<p>Brendan</p>
						]]>
					</description>

					
					
				</item>

			
				<item>
					<guid>http://cycling74.com/forums/topic/msp-do-you-need-to-use-for-combining-signals/#post-229044</guid>
					<title><![CDATA[Re: Msp: Do you need to use + for combining signals?]]></title>
					<link>http://cycling74.com/forums/topic/msp-do-you-need-to-use-for-combining-signals/#post-229044</link>
					<pubDate>Thu, 10 May 2012 21:12:38 +0000</pubDate>
					<dc:creator>wiccy</dc:creator>

					<description>
						<![CDATA[
						<p>Yes, that is posible, but remember is the whole signal should not exceed 1. So let say you have 3 osc in with full amplitude. After summing up you should / 3. Or it will distort pretty badly</p>
						]]>
					</description>

					
					
				</item>

			
				<item>
					<guid>http://cycling74.com/forums/topic/msp-do-you-need-to-use-for-combining-signals/#post-229045</guid>
					<title><![CDATA[Re: Msp: Do you need to use + for combining signals?]]></title>
					<link>http://cycling74.com/forums/topic/msp-do-you-need-to-use-for-combining-signals/#post-229045</link>
					<pubDate>Fri, 11 May 2012 02:51:22 +0000</pubDate>
					<dc:creator>spectro</dc:creator>

					<description>
						<![CDATA[
						<p>Just to be clear on this: It *is* true that a signal to the output (to a physical output, another application etc) should not exceed 1. However,  It is not true that the signal amplitude should not exceed 1 within MSP as it will happily handle values > 1. internally.</p>
						]]>
					</description>

					
					
				</item>

			
				<item>
					<guid>http://cycling74.com/forums/topic/msp-do-you-need-to-use-for-combining-signals/#post-229046</guid>
					<title><![CDATA[Re: Msp: Do you need to use + for combining signals?]]></title>
					<link>http://cycling74.com/forums/topic/msp-do-you-need-to-use-for-combining-signals/#post-229046</link>
					<pubDate>Fri, 11 May 2012 04:40:03 +0000</pubDate>
					<dc:creator>jaeho</dc:creator>

					<description>
						<![CDATA[
						<p>What others said are true,<br />
but occassionally you need to use [+~] for &#8220;efficiency&#8221;.</p>
<p>When two or more signals go to the same inlet, MSP automatically creates [+~]  internally, which means that the number of total function calls increase and the CPU works more.</p>
<p>For example, the patch 1 and the patch 2 are doing same thing, but there are 11 function calls in the patch 1 while 9 function calls in the patch 2. (You can see this in the DSP Status(Max 5) or Audio Status(Max 6) window.)</p>
<p>patch 1:</p>
<div><span id="toggle229046-0" class="patchtoggle" onmousedown="toggleMaxPatch('post229046-0', 'er229046-0');">&#8211; Pasted Max <span id="maxversion229046-0"></span> Patch, click to <span id="er229046-0">expand</span>. &#8211;</span> <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"  width="110" height="14" class="clippy" ><param name="allowScriptAccess" value="always" /><param name="quality" value="high" /><param name="scale" value="noscale" /><param NAME="FlashVars" value="copied=copied!&#038;copyto=copy to clipboard"/><param name="bgcolor" value="#FFFFFF"/><param name="wmode" value="opaque"/><embed src="/wp-content/plugins/bbpress-copy-compressed/clippy.swf"  width="110" height="14"   name="clippy"  quality="high"  allowScriptAccess="always"  type="application/x-shockwave-flash"  pluginspage="http://www.macromedia.com/go/getflashplayer"  FlashVars="text=----------begin_max5_patcher----------%0A497.3oc2V11SCBCDG%2B0vmBBuzLWnsCl367ygwX5fyYMPKg18fZbe1k1BNT2C%0ADCNw8FH20aW%2B2e6tq7pqi%2BLwZP56cs2sdNNu553Xboc3Ta63mSWmjQklv74v%0AJwrm7GYWRAqUF2WrowUAUk7HiO%2B9RHQYyLFELNXjGhDpeQviCqLhGG3cW8ug%0AkZRRUhuDMsIQOH3JNMGLKcSIil0rBeQNimAJihvacJVnZ7hZkDI6ESRPnps2%0A51Fo54BvpPeIaNuZC7tSu9att5Gi9EQBJJr6HI5eGRxAojNG9FSjJQwgnRns%0APItMUltGpD9mPk9lGzR0JFOUr5.XYZXKpDEaL1GUH%2BinxdZbRoIaNJMvXaMR%0AMZ1MMh6EXDrGXbpFUf69zyI%2BsSJZNDkfD3JphI3ep61V5ZOOMONYibm18Itj%0Ayk6fRdNIC13QHAG%2BtHKehHGpgBelAFLN3nULcgKnACWLpyOiw%2B5m0YNeZ%2BeF%0AVRwhxjlDV%2BWr21yXJHULtoStUL5ORqUPOxRSAd6QkoLIcVFX.ztmS1qxI5jI%0AGzvhNnAFcB6fdhOhbxYoEBFWI2dqQ0nZL5JcC3US9vX61ze5mzC5%2BzV6OYPo%0AFxfpxexfRM%2BT1XmnSKJVBkx5TZDR0EcOIJ0lQiLlLt0zjQ%2BRXIqI9PWc1dy8%0AcPp8jlC%0A-----------end_max5_patcher-----------&#038;copied=copied!&#038;;copyto=copy to clipboard"  bgcolor="#ffffff"  wmode="opaque" /> </object></div>
<div id="post229046-0" style="display:none;visibility:hidden;" >
<div class="patchtoggleInfo"><small>Copy <b>all</b> of the following text.Then, in Max, select <em>New From Clipboard</em>.</small></div>
<div class="patchtogglediv">
<pre><code id="pastedcode229046-0">----------begin_max5_patcher----------
497.3oc2V11SCBCDG+0vmBBuzLWnsCl367ygwX5fyYMPKg18fZbe1k1BNT2C
DCNw8FH20aW+2e6tq7pqi+LwZP56cs2sdNNu553Xboc3Ta63mSWmjQklv74v
Jwrm7GYWRAqUF2WrowUAUk7HiO+9RHQYyLFELNXjGhDpeQviCqLhGG3cW8ug
kZRRUhuDMsIQOH3JNMGLKcSIil0rBeQNimAJihvacJVnZ7hZkDI6ESRPnps2
51Fo54BvpPeIaNuZC7tSu9att5Gi9EQBJJr6HI5eGRxAojNG9FSjJQwgnRns
PItMUltGpD9mPk9lGzR0JFOUr5.XYZXKpDEaL1GUH+inxdZbRoIaNJMvXaMR
MZ1MMh6EXDrGXbpFUf69zyI+sSJZNDkfD3JphI3ep61V5ZOOMONYibm18Itj
yk6fRdNIC13QHAG+tHKehHGpgBelAFLN3nULcgKnACWLpyOiw+5m0YNeZ+eF
VRwhxjlDV+Wr21yXJHULtoStUL5ORqUPOxRSAd6QkoLIcVFX.ztmS1qxI5jI
GzvhNnAFcB6fdhOhbxYoEBFWI2dqQ0nZL5JcC3US9vX61ze5mzC5+zV6OYPo
FxfpxexfRM+T1XmnSKJVBkx5TZDR0EcOIJ0lQiLlLt0zjQ+RXIqI9PWc1dy8
cPp8jlC
-----------end_max5_patcher-----------</code></pre></div>
</div>
<p>patch 2:</p>
<div><span id="toggle229046-1" class="patchtoggle" onmousedown="toggleMaxPatch('post229046-1', 'er229046-1');">&#8211; Pasted Max <span id="maxversion229046-1"></span> Patch, click to <span id="er229046-1">expand</span>. &#8211;</span> <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"  width="110" height="14" class="clippy" ><param name="allowScriptAccess" value="always" /><param name="quality" value="high" /><param name="scale" value="noscale" /><param NAME="FlashVars" value="copied=copied!&#038;copyto=copy to clipboard"/><param name="bgcolor" value="#FFFFFF"/><param name="wmode" value="opaque"/><embed src="/wp-content/plugins/bbpress-copy-compressed/clippy.swf"  width="110" height="14"   name="clippy"  quality="high"  allowScriptAccess="always"  type="application/x-shockwave-flash"  pluginspage="http://www.macromedia.com/go/getflashplayer"  FlashVars="text=----------begin_max5_patcher----------%0A519.3oc4VFraiBCDF9L7Tf331zHrIFJ8VeNVUsxA7l5JvFgcZR2plm8hGCJz%0AtIApJYy1jKflwCi%2B8mFOCu353OWtlo78t06mdNNu353.tLNbZrc7KnqSyoJH%0ALeAakb9i9SrKoYq0f6ero0UIUm9.Wr3WUrTsMyXTvzfIdnPh4UHdJo1HYZf2%0A8MeCOCRRchuNtMO%2BVJzBZACV4tJNMucEwxBtHmoAAg25TtT25E0IIJ9efjfP%0A06t0sMR8ykLq.8U7Eh5Mv6dy5u55ZdL4HRDTDYvDI5aGQJXJEcA6uPhRKKOD%0ATH1xjjtPId2PAQNITYr4AsRuhKxjqN.VhIcnRTBXrOpD9MhJ64dSFMcSuz.i%0As0HMnY2zHYTfQvdfw3chup%2ByKJX.MJHWFsNwCeXxrKBhDO7YIgmK.I84zb1F%0Auvvf9mxZ4ST3g5UfOy.CFGzaEyP3B5%2BFt.pyOmK93%2BqBmOi%2B2CKkbYUZaBaZ%0AO5s8LlwTZtfp4RQmXheWLOvyxXhtCAJ3YkRtP2HgalAW1vvPYbMCas1tMbEc%0AdNC.5tGYLlxO5KHeT7rio7M%2BZRu5OoG8OhxgLBx4C3DQfB.L5FCOsvELNQUC%0Ay9JUC3Sdwb3%2BrhA7.TC4SVKXuMkjrsTH4HcwZDD%2B9TismKsr7IVkpIkfPpGE%0A8nrxXFMAL4BqIjQ%2BJ1S713Itlr8p6a.t8A7E%0A-----------end_max5_patcher-----------&#038;copied=copied!&#038;;copyto=copy to clipboard"  bgcolor="#ffffff"  wmode="opaque" /> </object></div>
<div id="post229046-1" style="display:none;visibility:hidden;" >
<div class="patchtoggleInfo"><small>Copy <b>all</b> of the following text.Then, in Max, select <em>New From Clipboard</em>.</small></div>
<div class="patchtogglediv">
<pre><code id="pastedcode229046-1">----------begin_max5_patcher----------
519.3oc4VFraiBCDF9L7Tf331zHrIFJ8VeNVUsxA7l5JvFgcZR2plm8hGCJz
tIApJYy1jKflwCi+8mFOCu353OWtlo78t06mdNNu353.tLNbZrc7KnqSyoJH
LeAakb9i9SrKoYq0f6ero0UIUm9.Wr3WUrTsMyXTvzfIdnPh4UHdJo1HYZf2
8MeCOCRRchuNtMO+VJzBZACV4tJNMucEwxBtHmoAAg25TtT25E0IIJ9efjfP
06t0sMR8ykLq.8U7Eh5Mv6dy5u55ZdL4HRDTDYvDI5aGQJXJEcA6uPhRKKOD
TH1xjjtPId2PAQNITYr4AsRuhKxjqN.VhIcnRTBXrOpD9MhJ64dSFMcSuz.i
s0HMnY2zHYTfQvdfw3chup+yKJX.MJHWFsNwCeXxrKBhDO7YIgmK.I84zb1F
uvvf9mxZ4ST3g5UfOy.CFGzaEyP3B5+Ft.pyOmK93+qBmOi+2CKkbYUZaBaZ
O5s8LlwTZtfp4RQmXheWLOvyxXhtCAJ3YkRtP2HgalAW1vvPYbMCas1tMbEc
dNC.5tGYLlxO5KHeT7rio7M+ZRu5OoG8OhxgLBx4C3DQfB.L5FCOsvELNQUC
y9JUC3Sdwb3+rhA7.TC4SVKXuMkjrsTH4HcwZDD+9TismKsr7IVkpIkfPpGE
8nrxXFMAL4BqIjQ+J1S713Itlr8p6a.t8A7E
-----------end_max5_patcher-----------</code></pre></div>
</div>
						]]>
					</description>

					
					
				</item>

			
				<item>
					<guid>http://cycling74.com/forums/topic/msp-do-you-need-to-use-for-combining-signals/#post-229047</guid>
					<title><![CDATA[Re: Msp: Do you need to use + for combining signals?]]></title>
					<link>http://cycling74.com/forums/topic/msp-do-you-need-to-use-for-combining-signals/#post-229047</link>
					<pubDate>Fri, 11 May 2012 07:04:50 +0000</pubDate>
					<dc:creator>Luke Woodbury</dc:creator>

					<description>
						<![CDATA[
						<p>And BTW [*~ 0.5] is more efficient than [/~ 2]</p>
						]]>
					</description>

					
					
				</item>

			
				<item>
					<guid>http://cycling74.com/forums/topic/msp-do-you-need-to-use-for-combining-signals/#post-229048</guid>
					<title><![CDATA[Re: Msp: Do you need to use + for combining signals?]]></title>
					<link>http://cycling74.com/forums/topic/msp-do-you-need-to-use-for-combining-signals/#post-229048</link>
					<pubDate>Fri, 11 May 2012 07:38:13 +0000</pubDate>
					<dc:creator>Sym</dc:creator>

					<description>
						<![CDATA[
						<p>Thank you guys! Many intresting points. Especially what Luke said.</p>
						]]>
					</description>

					
					
				</item>

			
				<item>
					<guid>http://cycling74.com/forums/topic/msp-do-you-need-to-use-for-combining-signals/#post-229049</guid>
					<title><![CDATA[Re: Msp: Do you need to use + for combining signals?]]></title>
					<link>http://cycling74.com/forums/topic/msp-do-you-need-to-use-for-combining-signals/#post-229049</link>
					<pubDate>Fri, 11 May 2012 08:01:35 +0000</pubDate>
					<dc:creator>Peter Castine</dc:creator>

					<description>
						<![CDATA[
						<p>What Luke said may be interesting, but it&#8217;s wrong.</p>
<p>[*~] and [/~] are equally efficient with non-signal values.</p>
<p>Yes, it is well known that division is computationally more expensive than multiplication, *but* the [/~] object also knows this. So, when it is dealing with a non-signal value, it precalculates the inverse and multiplies with that during signal processing. IOW, [/~ 2] and [*~ 0.5] do <b>exactly</b> the same thing.</p>
<p>It is only with signals that [/~] becomes more expensive. Since the signal is constantly changing (at least potentially), a division has to be performed on every sample.</p>
<p>This (as well as when a signal needs to be constrained to unit range) are all covered in the documentation.</p>
<p>[EDIT: corrected typo]</p>
						]]>
					</description>

					
					
				</item>

			
				<item>
					<guid>http://cycling74.com/forums/topic/msp-do-you-need-to-use-for-combining-signals/#post-229050</guid>
					<title><![CDATA[Re: Msp: Do you need to use + for combining signals?]]></title>
					<link>http://cycling74.com/forums/topic/msp-do-you-need-to-use-for-combining-signals/#post-229050</link>
					<pubDate>Fri, 11 May 2012 09:45:38 +0000</pubDate>
					<dc:creator>Roman Thilenius</dc:creator>

					<description>
						<![CDATA[
						<p>&#8220;And BTW [*~ 0.5] is more efficient than [/~ 2]&#8220;</p>
<p>&#8220;it&#8217;s wrong.&#8221; &#8211; &#8220;It is only with signals that [/~] becomes more expensive.&#8221;</p>
<p>can [/~] take something else but signals? or is there a difference between [/~] and [/~]?</p>
						]]>
					</description>

					
					
				</item>

			
				<item>
					<guid>http://cycling74.com/forums/topic/msp-do-you-need-to-use-for-combining-signals/#post-229051</guid>
					<title><![CDATA[Re: Msp: Do you need to use + for combining signals?]]></title>
					<link>http://cycling74.com/forums/topic/msp-do-you-need-to-use-for-combining-signals/#post-229051</link>
					<pubDate>Fri, 11 May 2012 09:48:27 +0000</pubDate>
					<dc:creator>Roman Thilenius</dc:creator>

					<description>
						<![CDATA[
						<p>oh, ok, i see now. (too late i guess). you mean [/~ 2] with no signal as divisor only has to compute the inverse once every vector.</p>
<p>question: is the inversion thing new or how did max 3, 4, and 5 handle this?</p>
						]]>
					</description>

					
					
				</item>

			
				<item>
					<guid>http://cycling74.com/forums/topic/msp-do-you-need-to-use-for-combining-signals/#post-229052</guid>
					<title><![CDATA[Re: Msp: Do you need to use + for combining signals?]]></title>
					<link>http://cycling74.com/forums/topic/msp-do-you-need-to-use-for-combining-signals/#post-229052</link>
					<pubDate>Fri, 11 May 2012 09:48:43 +0000</pubDate>
					<dc:creator>Luke Woodbury</dc:creator>

					<description>
						<![CDATA[
						<p>I blame the documentation:</p>
<p>&#8220;To control the level of a signal you simply multiply each sample by a scaling factor. For example, to halve the amplitude of a signal you simply multiply it by 0.5. (Although it would be mathematically equivalent to divide the amplitude of the signal by 2, multiplication is a more efficient computation procedure than division.&#8221;</p>
<p>Maybe it is good practice anyway?</p>
						]]>
					</description>

					
					
				</item>

			
				<item>
					<guid>http://cycling74.com/forums/topic/msp-do-you-need-to-use-for-combining-signals/#post-229053</guid>
					<title><![CDATA[Re: Msp: Do you need to use + for combining signals?]]></title>
					<link>http://cycling74.com/forums/topic/msp-do-you-need-to-use-for-combining-signals/#post-229053</link>
					<pubDate>Fri, 11 May 2012 10:01:35 +0000</pubDate>
					<dc:creator>Thijs Koerselman</dc:creator>

					<description>
						<![CDATA[
						<p>What Peter was trying to say I think is that if you use [/~] with a constant value (either as argument or by sending a float or int to the right inlet) you can be sure that every sample of the audio vector coming into the left inlet needs the same calculation. Then you might as well process the values by doing the inverse multiplication instead. The object is clever enough to take this into account so performance wise there is no difference between the 2 objects in situations like that.</p>
<p>As soon as you connect an audio signal to the right inlet ALSO it can&#8217;t know this because for every vector in its left inlet it is getting a devision value in its right inlet on a per sample basis. There is no way to know if the devision is going to be constant for the whole vector before hand. </p>
<p>You could calculate the inverse for the whole right side input vector, and use that for multiplication, but then you&#8217;re probably not gaining anything performance wise.</p>
<p>So yeah in that sense there is a difference between [/~] and [/~], depending on how you use them.</p>
						]]>
					</description>

					
					
				</item>

			
				<item>
					<guid>http://cycling74.com/forums/topic/msp-do-you-need-to-use-for-combining-signals/#post-229054</guid>
					<title><![CDATA[Re: Msp: Do you need to use + for combining signals?]]></title>
					<link>http://cycling74.com/forums/topic/msp-do-you-need-to-use-for-combining-signals/#post-229054</link>
					<pubDate>Fri, 11 May 2012 10:04:52 +0000</pubDate>
					<dc:creator>Thijs Koerselman</dc:creator>

					<description>
						<![CDATA[
						<p>Ah I was too slow :)</p>
						]]>
					</description>

					
					
				</item>

			
				<item>
					<guid>http://cycling74.com/forums/topic/msp-do-you-need-to-use-for-combining-signals/#post-229055</guid>
					<title><![CDATA[Re: Msp: Do you need to use + for combining signals?]]></title>
					<link>http://cycling74.com/forums/topic/msp-do-you-need-to-use-for-combining-signals/#post-229055</link>
					<pubDate>Fri, 11 May 2012 13:11:33 +0000</pubDate>
					<dc:creator>LiamCormacGould</dc:creator>

					<description>
						<![CDATA[
						<p>very interesting info guys, I love these forums :)</p>
						]]>
					</description>

					
					
				</item>

			
				<item>
					<guid>http://cycling74.com/forums/topic/msp-do-you-need-to-use-for-combining-signals/#post-229056</guid>
					<title><![CDATA[Re: Msp: Do you need to use + for combining signals?]]></title>
					<link>http://cycling74.com/forums/topic/msp-do-you-need-to-use-for-combining-signals/#post-229056</link>
					<pubDate>Fri, 11 May 2012 13:37:08 +0000</pubDate>
					<dc:creator>Roman Thilenius</dc:creator>

					<description>
						<![CDATA[
						<p>&#8220;Maybe it is good practice anyway?&#8221;</p>
<p>the application here was mixing an uncertain number of signals together, so i would<br />
say it could make sense to use a signal anyway: if the oscillator changes from 6 to 7<br />
partials, the gain scaling factor has to be changed &#8211; and you will probably want to<br />
interpolate that, so you will be using a signal.</p>
<p>and last but not least it is always only one [/~ ] object, no matter if you are summing<br />
7 or 700 signals.</p>
<p>if i had to build that i would 110ly end up with something like that:</p>
<p>&#8220;7.&#8221; &#8211; [!/ 1.] &#8211; [line~] &#8211; [*~ 0.]</p>
<p>and the dicussion about [/~ 0. ] theories is over.</p>
<p>-110</p>
						]]>
					</description>

					
					
				</item>

			
				<item>
					<guid>http://cycling74.com/forums/topic/msp-do-you-need-to-use-for-combining-signals/#post-229057</guid>
					<title><![CDATA[Re: Msp: Do you need to use + for combining signals?]]></title>
					<link>http://cycling74.com/forums/topic/msp-do-you-need-to-use-for-combining-signals/#post-229057</link>
					<pubDate>Sun, 13 May 2012 18:31:33 +0000</pubDate>
					<dc:creator>Peter Castine</dc:creator>

					<description>
						<![CDATA[
						<blockquote><p>
oh, ok, i see now. (too late i guess). you mean [/~ 2] with no signal as divisor only has to compute the inverse once every vector.</p>
</blockquote>
<p>Not even that often.</p>
<p>You know, it&#8217;s amazing what you can learn by reading the documentation. Here, straight from div~.maxhelp:</p>
<blockquote><p>
The /~ object is optimized to multiply a signal coming into the left inlet by the reciprocal of either the initial argument or an int or float received in the right inlet.
</p>
</blockquote>
<p>There is no need to recalculate the reciprocal of the initial argument on every signal vector if it hasn&#8217;t changed. The value just needs to be calculated once (in digits: 1 time) at instantiation time and cached. If a float or int (ie, non-signal) message comes in the right inlet, calculate the reciprocal once (1 time) then and there and update the cache.</p>
						]]>
					</description>

					
					
				</item>

			
				<item>
					<guid>http://cycling74.com/forums/topic/msp-do-you-need-to-use-for-combining-signals/#post-229058</guid>
					<title><![CDATA[Re: Msp: Do you need to use + for combining signals?]]></title>
					<link>http://cycling74.com/forums/topic/msp-do-you-need-to-use-for-combining-signals/#post-229058</link>
					<pubDate>Sun, 13 May 2012 19:42:32 +0000</pubDate>
					<dc:creator>Roman Thilenius</dc:creator>

					<description>
						<![CDATA[
						<p>but the /~ object could have received a new number during the last vector isnt it &#8230; that<br />
is what i meant, a _maximum of once every vector.</p>
<p>sorry about ignoring the docs. :/ but i have no time to do such regular amazing<br />
things, i have to finish all the extraordinary amazing things first.</p>
<p>maybe i should also look into the gainslider~ source code now, to get the whole picture<br />
about how object do deal with the possibilty of incoming data, and to confirm it totally<br />
that these cycling objects are really to much optimized. </p>
<p>not that i wouldnt trust you but sicher ist sicher.</p>
<p>-110</p>
						]]>
					</description>

					
					
				</item>

			
				<item>
					<guid>http://cycling74.com/forums/topic/msp-do-you-need-to-use-for-combining-signals/#post-229059</guid>
					<title><![CDATA[Re: Msp: Do you need to use + for combining signals?]]></title>
					<link>http://cycling74.com/forums/topic/msp-do-you-need-to-use-for-combining-signals/#post-229059</link>
					<pubDate>Mon, 14 May 2012 09:11:00 +0000</pubDate>
					<dc:creator>Peter Castine</dc:creator>

					<description>
						<![CDATA[
						<p>A common design pattern in MSP objects that need to calculate auxiliary values dependent upon Max messages is to precalculate those values <strong>when the Max message arrives</strong>. There&#8217;s no advantage to waiting for the next signal vector (if anything, there would be disadvantages). So the calculations are completely independent of signal processing and signal vectors and everything else MSP-ish. That is why I took exception to the previous comment.</p>
<p>In short: Max messages are normally processed in the Max event handling thread, not in the DSP processing thread. </p>
<p>At DSP signal vector processing time, at the start of an object&#8217;s perform routine (ie, the actual signal vector processing), the precalculated values are copied into registers for fast access. So, if the Max message thread interrupts the DSP thread (which can happen), any value changes are written to the object&#8217;s memory area, but the values in the CPU registers are unaffected during the processing of the current signal vector.</p>
<p>I cannot swear that /~ is doing it like that, although I recall that this approach is discussed in the MSP SDK, either with /~ or one of the other simple MSP objects as an example and source of sample code. </p>
<p>&#8211;</p>
<p>Vertrauen ist gut, Kontrolle besser.<br />
Kontrollier&#8217; mich ruhig, ich bin nicht unfehlbar. Es ist nur üblicherweise, dass ich Recht habe;-)</p>
						]]>
					</description>

					
					
				</item>

					
		
	</channel>
	</rss>

