<?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[How to implement a compressor in Pd as a patch?]]></title><description><![CDATA[<p>Howdy, I'm giving a try at how to implement a compressor as a Pd patch. This is what I came up with, it needs cyclone 0.3!  ==&gt; <a href="/uploads/files/1554691694015-compression.zip">compression~.zip</a></p>
<p>I'm using rms average to detect the gain level and rampsmooth~ to perform attack/release. I wouldn't know how to do it in Vanilla...</p>
<p>Seems rough and rudimentary. It's more of an intuitive approach, as I don't know much about compressor design.</p>
<p>I'm hoping to get feedback from you people on how to implement a compressor in Pd as a patch and how and why this approach is &quot;ok&quot; and can be improved, or if it's all terribly wrong.</p>
<p>Are there any other attempts to implement compession in Pd out there?</p>
<p>Thanks<br />
Cheers</p>
]]></description><link>http://forum.pdpatchrepo.info/topic/11995/how-to-implement-a-compressor-in-pd-as-a-patch</link><generator>RSS for Node</generator><lastBuildDate>Sat, 14 Mar 2026 08:58:56 GMT</lastBuildDate><atom:link href="http://forum.pdpatchrepo.info/topic/11995.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 08 Apr 2019 02:48:19 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to How to implement a compressor in Pd as a patch? on Mon, 08 Apr 2019 02:50:25 GMT]]></title><description><![CDATA[<p>Howdy, I'm giving a try at how to implement a compressor as a Pd patch. This is what I came up with, it needs cyclone 0.3!  ==&gt; <a href="/uploads/files/1554691694015-compression.zip">compression~.zip</a></p>
<p>I'm using rms average to detect the gain level and rampsmooth~ to perform attack/release. I wouldn't know how to do it in Vanilla...</p>
<p>Seems rough and rudimentary. It's more of an intuitive approach, as I don't know much about compressor design.</p>
<p>I'm hoping to get feedback from you people on how to implement a compressor in Pd as a patch and how and why this approach is &quot;ok&quot; and can be improved, or if it's all terribly wrong.</p>
<p>Are there any other attempts to implement compession in Pd out there?</p>
<p>Thanks<br />
Cheers</p>
]]></description><link>http://forum.pdpatchrepo.info/topic/11995/how-to-implement-a-compressor-in-pd-as-a-patch</link><guid isPermaLink="true">http://forum.pdpatchrepo.info/topic/11995/how-to-implement-a-compressor-in-pd-as-a-patch</guid><dc:creator><![CDATA[porres]]></dc:creator><pubDate>Mon, 08 Apr 2019 02:50:25 GMT</pubDate></item><item><title><![CDATA[Reply to How to implement a compressor in Pd as a patch? on Mon, 08 Apr 2019 07:40:59 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-a" href="http://forum.pdpatchrepo.info/user/porres">@porres</a> Explanation and patch from <a class="plugin-mentions-a" href="http://forum.pdpatchrepo.info/user/katjav">@katjav</a> is now updated for Vanilla....... <a href="http://www.katjaas.nl/compander/compander.html" rel="nofollow">http://www.katjaas.nl/compander/compander.html</a><br />
The main problem in the digital domain is knowing the power of the signal in advance so as to reduce it according to that power.  It can be done but introduces a delay to the signal that will be disturbing in a live environment, or it is not done and a fast attack will get through the compressor.<br />
That looks (no delay) to be the case with the cyclone abstraction.<br />
It can be acceptable..... analogue compressors have an &quot;attack&quot; control that controls the delay before compression, but in the digital domain you normally have no choice.<br />
She has solved that problem.<br />
David.</p>
]]></description><link>http://forum.pdpatchrepo.info/topic/11995/how-to-implement-a-compressor-in-pd-as-a-patch/2</link><guid isPermaLink="true">http://forum.pdpatchrepo.info/topic/11995/how-to-implement-a-compressor-in-pd-as-a-patch/2</guid><dc:creator><![CDATA[whale-av]]></dc:creator><pubDate>Mon, 08 Apr 2019 07:40:59 GMT</pubDate></item><item><title><![CDATA[Reply to How to implement a compressor in Pd as a patch? on Mon, 08 Apr 2019 07:08:28 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-a" href="http://forum.pdpatchrepo.info/user/porres">@porres</a> you can try my compressor/expander abstraction <a href="/uploads/files/1554706781403-dynamics.zip">dynamics.zip</a> It uses the same Olli Niemitalo's quadrature transformer from <a class="plugin-mentions-a" href="http://forum.pdpatchrepo.info/user/katjav">@katjav</a> for peak detection and an amplitudes lookup table. The fexpr~ works like cyclone/rampsmooth~</p>
]]></description><link>http://forum.pdpatchrepo.info/topic/11995/how-to-implement-a-compressor-in-pd-as-a-patch/3</link><guid isPermaLink="true">http://forum.pdpatchrepo.info/topic/11995/how-to-implement-a-compressor-in-pd-as-a-patch/3</guid><dc:creator><![CDATA[solipp]]></dc:creator><pubDate>Mon, 08 Apr 2019 07:08:28 GMT</pubDate></item><item><title><![CDATA[Reply to How to implement a compressor in Pd as a patch? on Mon, 08 Apr 2019 15:15:20 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-a" href="http://forum.pdpatchrepo.info/user/whale-av">@whale-av</a> &quot;The main problem in the digital domain is knowing the power of the signal in advance so as to reduce it according to that power. It can be done but introduces a delay to the signal that will be disturbing in a live environment&quot;</p>
<p>It can be done without a delay, the main problem is how to set attack and release times seperatly. It can be done with a slew filter like [cyclone/rampsmooth~] or something like [fexpr~ max($f2, min($f3, ($x1-$y1[-1])))+$y1[-1] ] in vanilla. If you don't need separate attack/release parameters, you could just use a lowpass filter. This filter also acts as the averaging filter for the amplitude detection, so there is no need to average the amplitude beforehand like in <a class="plugin-mentions-a" href="http://forum.pdpatchrepo.info/user/porres">@porres</a> patch.<br />
Of cause, very short attack/release times would induce distortion, but this is often desired as the &quot;characteristic sound&quot; of a compressor.</p>
]]></description><link>http://forum.pdpatchrepo.info/topic/11995/how-to-implement-a-compressor-in-pd-as-a-patch/4</link><guid isPermaLink="true">http://forum.pdpatchrepo.info/topic/11995/how-to-implement-a-compressor-in-pd-as-a-patch/4</guid><dc:creator><![CDATA[solipp]]></dc:creator><pubDate>Mon, 08 Apr 2019 15:15:20 GMT</pubDate></item><item><title><![CDATA[Reply to How to implement a compressor in Pd as a patch? on Mon, 08 Apr 2019 17:15:34 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-a" href="http://forum.pdpatchrepo.info/user/porres">@porres</a> And I forgot that [limiter~] from the zexy library was a lightweight, easy to use compressor back in the days of extended.  The compressor settings were buried in a sub-patch in the help file. It might not be updated for 64-bit though.<br />
<a class="plugin-mentions-a" href="http://forum.pdpatchrepo.info/user/solipp">@solipp</a> Thank you for the correction.<br />
David.</p>
]]></description><link>http://forum.pdpatchrepo.info/topic/11995/how-to-implement-a-compressor-in-pd-as-a-patch/5</link><guid isPermaLink="true">http://forum.pdpatchrepo.info/topic/11995/how-to-implement-a-compressor-in-pd-as-a-patch/5</guid><dc:creator><![CDATA[whale-av]]></dc:creator><pubDate>Mon, 08 Apr 2019 17:15:34 GMT</pubDate></item><item><title><![CDATA[Reply to How to implement a compressor in Pd as a patch? on Mon, 08 Apr 2019 22:25:43 GMT]]></title><description><![CDATA[<p>it's messy, but possible, to use a single sample delay with clipped feedback to generate a typical compressor envelope. i don't have this patched up in an intelligible way but i could clean it up if anyone is interested.</p>
]]></description><link>http://forum.pdpatchrepo.info/topic/11995/how-to-implement-a-compressor-in-pd-as-a-patch/6</link><guid isPermaLink="true">http://forum.pdpatchrepo.info/topic/11995/how-to-implement-a-compressor-in-pd-as-a-patch/6</guid><dc:creator><![CDATA[LarsXI]]></dc:creator><pubDate>Mon, 08 Apr 2019 22:25:43 GMT</pubDate></item><item><title><![CDATA[Reply to How to implement a compressor in Pd as a patch? on Wed, 10 Apr 2019 10:03:13 GMT]]></title><description><![CDATA[<p>Not sure if this is of any use, but someone sent me this a while ago: <a href="http://designingsound.org/2013/06/tutorial-a-compressor-in-pure-data/" rel="nofollow">http://designingsound.org/2013/06/tutorial-a-compressor-in-pure-data/</a></p>
<p>I never really got the hang of using it though. But it is Vanilla!</p>
]]></description><link>http://forum.pdpatchrepo.info/topic/11995/how-to-implement-a-compressor-in-pd-as-a-patch/7</link><guid isPermaLink="true">http://forum.pdpatchrepo.info/topic/11995/how-to-implement-a-compressor-in-pd-as-a-patch/7</guid><dc:creator><![CDATA[s.elliot.perez]]></dc:creator><pubDate>Wed, 10 Apr 2019 10:03:13 GMT</pubDate></item><item><title><![CDATA[Reply to How to implement a compressor in Pd as a patch? on Thu, 11 Apr 2019 12:51:22 GMT]]></title><description><![CDATA[<p>also worth mentioning is compressor.mmb~ from <a href="https://github.com/dotmmb/mmb" rel="nofollow">https://github.com/dotmmb/mmb</a> This one has a soft knee function implemented but it needs some externals.</p>
<p><a class="plugin-mentions-a" href="http://forum.pdpatchrepo.info/user/larsxi">@LarsXI</a> thats what's happening in the fexpr~ i mentioned above.  <a href="/uploads/files/1554986899586-slewfilter.pd">slewfilter.pd</a></p>
]]></description><link>http://forum.pdpatchrepo.info/topic/11995/how-to-implement-a-compressor-in-pd-as-a-patch/8</link><guid isPermaLink="true">http://forum.pdpatchrepo.info/topic/11995/how-to-implement-a-compressor-in-pd-as-a-patch/8</guid><dc:creator><![CDATA[solipp]]></dc:creator><pubDate>Thu, 11 Apr 2019 12:51:22 GMT</pubDate></item></channel></rss>