<?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: PM.Ladder~: Implementation of the Moog Ladder Filter</title>
		<atom:link href="http://cycling74.com/forums/topic/pm-ladder-implementation-of-the-moog-ladder-filter/feed" rel="self" type="application/rss+xml" />
		<link>http://cycling74.com/forums/topic/pm-ladder-implementation-of-the-moog-ladder-filter/feed</link>
		<description></description>
		<pubDate>Tue, 18 Jun 2013 16:12:12 +0000</pubDate>
		<generator>http://bbpress.org/?v=2.2.4</generator>
		<language></language>

		
														
					
				<item>
					<guid>http://cycling74.com/forums/topic/pm-ladder-implementation-of-the-moog-ladder-filter/#post-61635</guid>
					<title><![CDATA[PM.Ladder~: Implementation of the Moog Ladder Filter]]></title>
					<link>http://cycling74.com/forums/topic/pm-ladder-implementation-of-the-moog-ladder-filter/#post-61635</link>
					<pubDate>Tue, 07 Feb 2012 21:56:44 +0000</pubDate>
					<dc:creator>Peter McCulloch</dc:creator>

					<description>
						<![CDATA[
						<p>I&#8217;ve ported the ICST&#8217;s Moog ladder filter code to gen~.  It self-oscillates and has built-in saturation, as well as extra modes such as bandpass, highpass, etc.  </p>
<p>It&#8217;s also not the lightest thing in the world, CPU-wise, but it has a nice, warm sound to it.</p>
<p>I&#8217;ve also included a demo of a monosynth using it.</p>
<p><a href="http://cycling74.com/toolbox/pm-ladder-moog-ladder-filter/" rel="nofollow">http://cycling74.com/toolbox/pm-ladder-moog-ladder-filter/</a></p>
						]]>
					</description>

					
					
				</item>

			
				<item>
					<guid>http://cycling74.com/forums/topic/pm-ladder-implementation-of-the-moog-ladder-filter/#post-222486</guid>
					<title><![CDATA[Re: PM.Ladder~: Implementation of the Moog Ladder Filter]]></title>
					<link>http://cycling74.com/forums/topic/pm-ladder-implementation-of-the-moog-ladder-filter/#post-222486</link>
					<pubDate>Sun, 15 Jul 2012 22:02:06 +0000</pubDate>
					<dc:creator>julien breval</dc:creator>

					<description>
						<![CDATA[
						<p>Hi Peter,</p>
<p>I am interested in Moog filters and thought about making one in Gen. Well, your version looks great, thank you very much. I will test it very soon. </p>
<p>Just one question about oversampling.<br />
In the ICST paper they say that part of the algorithm should be oversampled by a factor of 2 (at least). See the details from page 28 here:</p>
<p><a href="http://www.cs.washington.edu/education/courses/cse490s/11au/Readings/Digital_Sound_Generation_2.pdf" rel="nofollow">http://www.cs.washington.edu/education/courses/cse490s/11au/Readings/Digital_Sound_Generation_2.pdf</a></p>
<p>So should we use 2x oversampling? As far as I know gen~ does not support oversampling at the moment, so poly~ would be required for this. I did not study it in depth, but it should be possible to use a combination of gen~, poly~ and MSP for making an oversampled version of this filter. I will try it very soon!</p>
<p>Cheers</p>
						]]>
					</description>

					
					
				</item>

			
				<item>
					<guid>http://cycling74.com/forums/topic/pm-ladder-implementation-of-the-moog-ladder-filter/#post-222487</guid>
					<title><![CDATA[Re: PM.Ladder~: Implementation of the Moog Ladder Filter]]></title>
					<link>http://cycling74.com/forums/topic/pm-ladder-implementation-of-the-moog-ladder-filter/#post-222487</link>
					<pubDate>Mon, 16 Jul 2012 03:08:13 +0000</pubDate>
					<dc:creator>Peter McCulloch</dc:creator>

					<description>
						<![CDATA[
						<p>Hi Julien, that particular filter algorithm uses internal oversampling.  It&#8217;s not using a higher sampling-rate per se, but if you look at the calculation of the poles, you&#8217;ll see that that operation appears eight times instead of four, so it&#8217;s doing it twice as often.  (8 poles @ 44.1 kHz vs 4 poles at 88.2 kHz)   There&#8217;s a decimation filter that then down-samples the result. (check page 31)  </p>
<p>My filter is adapted from their source code.  I added some fixes for low-Q situations and added the additional filter modes.</p>
<p>Also, the ICST filter uses a fun trick for self-oscillation: it uses an envelope follower to control the volume of the self-oscillation, and you can use the self-noise from the anti-denormal table to generate output even without input.  The paper describes how to add self-oscillation to other filters using this technique, IIRC.  The other interesting side effect is that the volume of the self-oscillation is fairly constant regardless of the volume of the input, which allows for the peak control that I added.</p>
						]]>
					</description>

					
					
				</item>

			
				<item>
					<guid>http://cycling74.com/forums/topic/pm-ladder-implementation-of-the-moog-ladder-filter/#post-222488</guid>
					<title><![CDATA[Re: PM.Ladder~: Implementation of the Moog Ladder Filter]]></title>
					<link>http://cycling74.com/forums/topic/pm-ladder-implementation-of-the-moog-ladder-filter/#post-222488</link>
					<pubDate>Mon, 16 Jul 2012 22:56:43 +0000</pubDate>
					<dc:creator>stkr</dc:creator>

					<description>
						<![CDATA[
						<p><a href='http://cycling74.com/forums/users/julien/' rel='nofollow' class='bbp-mention-link julien'>@julien</a> breval, Peter&#8217;s PM.Ladder~ is indeed what you want for great sounding, efficient and musical filtering. I am particularly in admiration of the &#8216;low-Q situations&#8217; fix. and it is a great example of quasi in-code oversampling.</p>
<p>However, for learning sake, there is a more simple moog ladder implementation in the gen examples folder &#8211; start with the file called &#8216;gen~.moogladder.maxpat&#8217;. this example does exactly what you mention in your post &#8211; poly~ upsampling. the &#8216;moogLadderFilter.genexpr&#8217; document demonstrates what has to be done to the samplerate maths inside the gen~. it is also an example of how simple it is to port Csound udo&#8217;s to GenExpr-land. i think you need 6.0.4 or later.</p>
<p>have fun.</p>
						]]>
					</description>

					
					
				</item>

			
				<item>
					<guid>http://cycling74.com/forums/topic/pm-ladder-implementation-of-the-moog-ladder-filter/#post-222489</guid>
					<title><![CDATA[Re: PM.Ladder~: Implementation of the Moog Ladder Filter]]></title>
					<link>http://cycling74.com/forums/topic/pm-ladder-implementation-of-the-moog-ladder-filter/#post-222489</link>
					<pubDate>Tue, 31 Jul 2012 21:05:38 +0000</pubDate>
					<dc:creator>julien breval</dc:creator>

					<description>
						<![CDATA[
						<p><a href='http://cycling74.com/forums/users/peter/' rel='nofollow' class='bbp-mention-link Peter'>@Peter</a> McCulloch<br />
Thank you very much for your explanation about oversampling. From some quick tests, mostly as part of a classic envelope filter for instruments, it sounds great. I will try it for synthesis when I have some time.</p>
<p><a href='http://cycling74.com/forums/users/stkr/' rel='nofollow' class='bbp-mention-link stkr'>@stkr</a><br />
Thanks for this other version of the Moog filter. It should help me a lot indeed because I still have no gen~ practice. It&#8217;s been a few weeks since I upgraded to Max 6, but no time at all at the moment!</p>
						]]>
					</description>

					
					
				</item>

			
				<item>
					<guid>http://cycling74.com/forums/topic/pm-ladder-implementation-of-the-moog-ladder-filter/#post-222490</guid>
					<title><![CDATA[Re: PM.Ladder~: Implementation of the Moog Ladder Filter]]></title>
					<link>http://cycling74.com/forums/topic/pm-ladder-implementation-of-the-moog-ladder-filter/#post-222490</link>
					<pubDate>Tue, 31 Jul 2012 21:43:43 +0000</pubDate>
					<dc:creator>Peter McCulloch</dc:creator>

					<description>
						<![CDATA[
						<p>Now that gen~ displays its bytecode (don&#8217;t know if that&#8217;s the actual term), it might be good for me to clean up the implementation at some point&#8230;</p>
						]]>
					</description>

					
					
				</item>

					
		
	</channel>
	</rss>

