<div dir="ltr">and it took me quite some time to figure it out :)</div><div class="gmail_extra"><br><br><div class="gmail_quote">2014-05-06 10:55 GMT-03:00 Oli Larkin <span dir="ltr">&lt;<a href="mailto:olilarkin@googlemail.com" target="_blank">olilarkin@googlemail.com</a>&gt;</span>:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">thanks everyone ... Alexandre that is just what i was looking for<br>
<div class="HOEnZb"><div class="h5"><br>
<br>
On 6 May 2014, at 06:09, Alexandre Torres Porres wrote:<br>
<br>
&gt; I did one and shared on the list<br>
&gt;<br>
&gt; you can check it at:<a href="https://drive.google.com/file/d/0B3AoiT0xk8fnNU9PRHdldVVFbU0/edit?usp=sharing" target="_blank">https://drive.google.com/file/d/0B3AoiT0xk8fnNU9PRHdldVVFbU0/edit?usp=sharing</a><br>
&gt;<br>
&gt;<br>
&gt; 2014-05-05 16:41 GMT-03:00 katja &lt;<a href="mailto:katjavetter@gmail.com">katjavetter@gmail.com</a>&gt;:<br>
&gt; Brute force time domain convolution for small kernel can be done with<br>
&gt; [fexpr~]. For zero phase filter kernels, fast convolution in Pd is<br>
&gt; relatively simple. Multiply real and imaginary part of the signal&#39;s<br>
&gt; spectrum with the filter&#39;s spectrum while using four times overlap and<br>
&gt; Hann windowing before FFT and after IFFT, and normalize. Pd&#39;s FFT<br>
&gt; routines assume x[0] at the start of the filter kernel, not at the<br>
&gt; center, so you have to rotate your zero phase filter kernel before<br>
&gt; taking it&#39;s Fourier Transform.<br>
&gt;<br>
&gt; Katja<br>
&gt;<br>
&gt; On Mon, May 5, 2014 at 8:49 PM, david medine &lt;<a href="mailto:dmedine@ucsd.edu">dmedine@ucsd.edu</a>&gt; wrote:<br>
&gt; &gt; For the FFT based convolution, you could easily modify the example patch<br>
&gt; &gt; I06.timbre.stamp.pd to do straight up convolution in the frequency domain. I<br>
&gt; &gt; wouldn&#39;t know how to do it in the time domain without an extern or a lot of<br>
&gt; &gt; painstaking work. It might be a nice thing to have, though.<br>
&gt; &gt;<br>
&gt; &gt; I can tell you, though, that the frequency domain method will out perform<br>
&gt; &gt; the time domain in terms of CPU usage. But, since you are windowing there<br>
&gt; &gt; will be a latency. Apart from that, the output is identical by both methods.<br>
&gt; &gt;<br>
&gt; &gt; y(n) = x(n) * g(n)<br>
&gt; &gt; Y(k) = X(k)G(k), y(n) = IDFT(Y(k))<br>
&gt; &gt;<br>
&gt; &gt; where g(n) is the impulse response, X(k) is the discrete Fourier transform<br>
&gt; &gt; of x(n) and * is the convolution operation.<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt; On 05/05/2014 09:33 AM, Oli Larkin wrote:<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; hi,<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; is anyone aware of an example of both a brute force time domain (e.g.<br>
&gt; &gt;&gt; buffir~ in Max) and an FFT-based fast convolution patch in pd-vanilla? I<br>
&gt; &gt;&gt; would like to do a comparison of the two. Can be using a small IR, just for<br>
&gt; &gt;&gt; demo purposes.<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; cheers,<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; Oli<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; _______________________________________________<br>
&gt; &gt;&gt; <a href="mailto:Pd-list@iem.at">Pd-list@iem.at</a> mailing list<br>
&gt; &gt;&gt; UNSUBSCRIBE and account-management -&gt;<br>
&gt; &gt;&gt; <a href="http://lists.puredata.info/listinfo/pd-list" target="_blank">http://lists.puredata.info/listinfo/pd-list</a><br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt; _______________________________________________<br>
&gt; &gt; <a href="mailto:Pd-list@iem.at">Pd-list@iem.at</a> mailing list<br>
&gt; &gt; UNSUBSCRIBE and account-management -&gt;<br>
&gt; &gt; <a href="http://lists.puredata.info/listinfo/pd-list" target="_blank">http://lists.puredata.info/listinfo/pd-list</a><br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; <a href="mailto:Pd-list@iem.at">Pd-list@iem.at</a> mailing list<br>
&gt; UNSUBSCRIBE and account-management -&gt; <a href="http://lists.puredata.info/listinfo/pd-list" target="_blank">http://lists.puredata.info/listinfo/pd-list</a><br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; <a href="mailto:Pd-list@iem.at">Pd-list@iem.at</a> mailing list<br>
&gt; UNSUBSCRIBE and account-management -&gt; <a href="http://lists.puredata.info/listinfo/pd-list" target="_blank">http://lists.puredata.info/listinfo/pd-list</a><br>
<br>
</div></div></blockquote></div><br></div>