<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://cycling74.com/wiki/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://cycling74.com/wiki/index.php?title=MSP_Filter_Tutorial_4:_Subtractive_Synthesis&amp;feed=atom&amp;action=history</id>
		<title>MSP Filter Tutorial 4: Subtractive Synthesis - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://cycling74.com/wiki/index.php?title=MSP_Filter_Tutorial_4:_Subtractive_Synthesis&amp;feed=atom&amp;action=history"/>
		<link rel="alternate" type="text/html" href="http://cycling74.com/wiki/index.php?title=MSP_Filter_Tutorial_4:_Subtractive_Synthesis&amp;action=history"/>
		<updated>2013-06-20T06:37:05Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.19.1</generator>

	<entry>
		<id>http://cycling74.com/wiki/index.php?title=MSP_Filter_Tutorial_4:_Subtractive_Synthesis&amp;diff=827&amp;oldid=prev</id>
		<title>Gtaylor@rtqe.net at 15:31, 28 June 2012</title>
		<link rel="alternate" type="text/html" href="http://cycling74.com/wiki/index.php?title=MSP_Filter_Tutorial_4:_Subtractive_Synthesis&amp;diff=827&amp;oldid=prev"/>
				<updated>2012-06-28T15:31:53Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 15:31, 28 June 2012&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Click here to open the tutorial patch: [[04fSubtractiveSynthesis.maxpat]]		&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Click here to open the tutorial patch: [[&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Media:&lt;/ins&gt;04fSubtractiveSynthesis.maxpat]]		&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;In this tutorial, we'll look at using filters creatively with a group of MSP audio generators that create different kinds of {{maxword|name=noise~}}. Noise generation is a core component of ''subtractive synthesis'', a sound design methodology that works by taking complex signsl and sculpting them with filters, subtracting energy from the original signal (compare this with additive synthesis, which works in the opposite fashion). Along the way, we'll discuss ways to shape this noise using an object that creates and controls a ''bank'' of parallel filters.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;In this tutorial, we'll look at using filters creatively with a group of MSP audio generators that create different kinds of {{maxword|name=noise~}}. Noise generation is a core component of ''subtractive synthesis'', a sound design methodology that works by taking complex signsl and sculpting them with filters, subtracting energy from the original signal (compare this with additive synthesis, which works in the opposite fashion). Along the way, we'll discuss ways to shape this noise using an object that creates and controls a ''bank'' of parallel filters.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Gtaylor@rtqe.net</name></author>	</entry>

	<entry>
		<id>http://cycling74.com/wiki/index.php?title=MSP_Filter_Tutorial_4:_Subtractive_Synthesis&amp;diff=776&amp;oldid=prev</id>
		<title>Admin at 21:19, 25 June 2012</title>
		<link rel="alternate" type="text/html" href="http://cycling74.com/wiki/index.php?title=MSP_Filter_Tutorial_4:_Subtractive_Synthesis&amp;diff=776&amp;oldid=prev"/>
				<updated>2012-06-25T21:19:47Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;http://cycling74.com/wiki/index.php?title=MSP_Filter_Tutorial_4:_Subtractive_Synthesis&amp;amp;diff=776&amp;amp;oldid=725&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://cycling74.com/wiki/index.php?title=MSP_Filter_Tutorial_4:_Subtractive_Synthesis&amp;diff=725&amp;oldid=prev</id>
		<title>Admin at 21:25, 22 June 2012</title>
		<link rel="alternate" type="text/html" href="http://cycling74.com/wiki/index.php?title=MSP_Filter_Tutorial_4:_Subtractive_Synthesis&amp;diff=725&amp;oldid=prev"/>
				<updated>2012-06-22T21:25:10Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 21:25, 22 June 2012&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 103:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 103:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;where we can 'tap' each bandpass filter individually:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;where we can 'tap' each bandpass filter individually:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:Filterchapter04d.gif&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;quot;/&amp;gt;&amp;lt;img src=&amp;quot;images/filterchapter04e&lt;/del&gt;.png|border]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:Filterchapter04d.gif&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|border]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[[Image:Filterchapter04e&lt;/ins&gt;.png|border]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;''Output of the lowest and highest two filters in our {{maxword|name=fffb~}} object:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;''Output of the lowest and highest two filters in our {{maxword|name=fffb~}} object:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://cycling74.com/wiki/index.php?title=MSP_Filter_Tutorial_4:_Subtractive_Synthesis&amp;diff=724&amp;oldid=prev</id>
		<title>Admin at 21:23, 22 June 2012</title>
		<link rel="alternate" type="text/html" href="http://cycling74.com/wiki/index.php?title=MSP_Filter_Tutorial_4:_Subtractive_Synthesis&amp;diff=724&amp;oldid=prev"/>
				<updated>2012-06-22T21:23:41Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 21:23, 22 June 2012&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 104:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 104:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:Filterchapter04d.gif&amp;quot;/&amp;gt;&amp;lt;img src=&amp;quot;images/filterchapter04e.png|border]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:Filterchapter04d.gif&amp;quot;/&amp;gt;&amp;lt;img src=&amp;quot;images/filterchapter04e.png|border]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;''Output of the lowest and highest two filters in our {{maxword|name=fffb~}} object:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;''Output of the lowest and highest two filters in our {{maxword|name=fffb~}} object:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;waveform and spectrogram.''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;waveform and spectrogram.''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://cycling74.com/wiki/index.php?title=MSP_Filter_Tutorial_4:_Subtractive_Synthesis&amp;diff=723&amp;oldid=prev</id>
		<title>Admin: Created page with &quot;Click here to open the tutorial patch: 04fSubtractiveSynthesis.maxpat		  In this tutorial, we'll look at using filters creatively with a group of MSP audio generators that...&quot;</title>
		<link rel="alternate" type="text/html" href="http://cycling74.com/wiki/index.php?title=MSP_Filter_Tutorial_4:_Subtractive_Synthesis&amp;diff=723&amp;oldid=prev"/>
				<updated>2012-06-22T21:23:05Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;quot;Click here to open the tutorial patch: &lt;a href=&quot;/wiki/index.php?title=04fSubtractiveSynthesis.maxpat&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;04fSubtractiveSynthesis.maxpat (page does not exist)&quot;&gt;04fSubtractiveSynthesis.maxpat&lt;/a&gt;		  In this tutorial, we&amp;#039;ll look at using filters creatively with a group of MSP audio generators that...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Click here to open the tutorial patch: [[04fSubtractiveSynthesis.maxpat]]		&lt;br /&gt;
&lt;br /&gt;
In this tutorial, we'll look at using filters creatively with a group of&lt;br /&gt;
MSP audio generators that create different kinds of {{maxword|name=noise~}}.&lt;br /&gt;
Noise generation is a core component of ''subtractive synthesis'',&lt;br /&gt;
a sound design methodology that works by taking complex signsl and&lt;br /&gt;
sculpting them with filters, subtracting energy from the original&lt;br /&gt;
signal (compare this with additive synthesis, which works in the&lt;br /&gt;
opposite fashion). Along the way, we'll discuss ways to shape this&lt;br /&gt;
noise using an object that creates and controls a ''bank'' of&lt;br /&gt;
parallel filters.&lt;br /&gt;
&lt;br /&gt;
===Noise===&lt;br /&gt;
&lt;br /&gt;
Take a look at our tutorial patcher. It consists of three patcher regions.&lt;br /&gt;
If we look at the area labeled &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;, we can see that we have three new&lt;br /&gt;
MSP objects connected through {{maxword|name=*~}} objects to the {{maxword|name=dac~}}.&lt;br /&gt;
&lt;br /&gt;
* Turn on the audio in the patcher by clicking on the {{maxword|name=ezdac~}} object. Adjust the {{maxword|name=number}} box&lt;br /&gt;
that controls the volume for the {{maxword|name=noise~}} object and listen to&lt;br /&gt;
the result. Turn it down and turn up the volume for the {{maxword|name=pink~}} object.&lt;br /&gt;
Do the same for the {{maxword|name=rand~}} object. Click in the {{maxword|name=number}} box&lt;br /&gt;
that is connected to the inlet of the {{maxword|name=rand~}} object (labeled 'Frequency').&lt;br /&gt;
Type &amp;lt;code&amp;gt;100&amp;lt;/code&amp;gt; and hit return. Try &amp;lt;code&amp;gt;1000&amp;lt;/code&amp;gt; and hit return.Experiment with&lt;br /&gt;
other values.&lt;br /&gt;
&lt;br /&gt;
The {{maxword|name=noise~}}, {{maxword|name=pink~}}, and {{maxword|name=rand~}} objects all generate ''noise''&lt;br /&gt;
at a signal rate. Noise, at its essence, is a type of random number generation;&lt;br /&gt;
as a result, these objects behave in a similar manner to Max objects&lt;br /&gt;
such as {{maxword|name=random}} and {{maxword|name=drunk}}.&lt;br /&gt;
&lt;br /&gt;
The {{maxword|name=noise~}} object generates ''white noise'', which means that all&lt;br /&gt;
possible frequencies in the audio spectrum are equally represented over time.&lt;br /&gt;
The process of generating white noise digitally is quite simple: every sample,&lt;br /&gt;
pick a random number between &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
[[Image:Filterchapter04a.png|border]]&lt;br /&gt;
''A waveform and spectrogram plot of white noise.''&lt;br /&gt;
&lt;br /&gt;
The {{maxword|name=pink~}} object generates ''pink noise'', which means that&lt;br /&gt;
every ''octave'' in the audio spectrum has equal weight. This is&lt;br /&gt;
sometimes referred to as ''1/f'' noise, as the probability of a&lt;br /&gt;
frequency occuring is the inverse of its value, e.g. frequencies of&lt;br /&gt;
100 Hz are twice as probable as 200 Hz. The aural difference between&lt;br /&gt;
the two is fairly obvious: white noise has far more high frequency&lt;br /&gt;
content and sounds 'harsher' than pink noise:&lt;br /&gt;
&lt;br /&gt;
[[Image:Filterchapter04b.png|border]]&lt;br /&gt;
''Pink (1/f) noise: waveform and spectrogram.''&lt;br /&gt;
&lt;br /&gt;
The {{maxword|name=rand~}} object is a random number generator that generates a&lt;br /&gt;
signal, picking a new random value for that signal at a variable rate.&lt;br /&gt;
It takes an argument (or a value at its inlet) to set the frequency of&lt;br /&gt;
the random number selection. A frequency of &amp;lt;code&amp;gt;44100&amp;lt;/code&amp;gt; makes the object&lt;br /&gt;
indistinguishable from white noise. This allows us to create ''band-limited'' noise&lt;br /&gt;
that has an upper boundary we can specify:&lt;br /&gt;
&lt;br /&gt;
[[Image:Filterchapter04c.png|border]]&lt;br /&gt;
''A {{maxword|name=rand~}} object picking values at &amp;lt;code&amp;gt;1000&amp;lt;/code&amp;gt; Hz: waveform and spectrogram.''&lt;br /&gt;
&lt;br /&gt;
===Filtering noise===&lt;br /&gt;
&lt;br /&gt;
Because noise has such broadband frequency content, it can be filtered&lt;br /&gt;
and sculpted to create very precise timbres. The compositional technique&lt;br /&gt;
of subtractive synthesis relies on this attribute of noise generation; it's&lt;br /&gt;
often easier (or more efficient) to start with noise and filter it down then&lt;br /&gt;
attempt to create the desired timbre through adding oscillators.&lt;br /&gt;
&lt;br /&gt;
* Turn down the volumes in patcher area &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; and take a look at patcher&lt;br /&gt;
area &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;. Turn up the volume using the {{maxword|name=number}} box at the bottom&lt;br /&gt;
of the signal chain (controlling the {{maxword|name=*~}} object connected to the {{maxword|name=dac~}}).&lt;br /&gt;
Click in the {{maxword|name=number}} box labeled 'Frequency' connected to&lt;br /&gt;
the {{maxword|name=phasor~}} object, type &amp;lt;code&amp;gt;0.1&amp;lt;/code&amp;gt; and hit return. Type a higher&lt;br /&gt;
frequency (e.g. &amp;lt;code&amp;gt;3.0&amp;lt;/code&amp;gt;) and hit return. Experiment with different values.&lt;br /&gt;
&lt;br /&gt;
Patcher area &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; contains a {{maxword|name=noise~}} object sending its signal into&lt;br /&gt;
a {{maxword|name=lores~}} filter. The frequency of the lowpass filter is being modulated&lt;br /&gt;
by a {{maxword|name=phasor~}}, which we've scaled to ramp between &amp;lt;code&amp;gt;100&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;600&amp;lt;/code&amp;gt;&lt;br /&gt;
at the frequency we specify. As a result, the cutoff frequency of the filter 'sweeps'&lt;br /&gt;
at regular intervals. This is an example of an ''LFO'', or ''low-frequency oscillator'',&lt;br /&gt;
being used to modulate a parameter of an audio processing system. As you can hear,&lt;br /&gt;
the {{maxword|name=lores~}} object attenuates the high frequencies output from the {{maxword|name=noise~}} object.&lt;br /&gt;
In addition, the resonance value of the {{maxword|name=lores~}} causes the filter to&lt;br /&gt;
have a peak just below its cutoff frequency, giving a notably 'pitched' sound&lt;br /&gt;
to the filtered noise.&lt;br /&gt;
&lt;br /&gt;
===Banks of filters===&lt;br /&gt;
&lt;br /&gt;
* Turn down the volume on area &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; in the tutorial patcher and take&lt;br /&gt;
a look at area &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt;. One-by-one, turn up and down the {{maxword|name=gain~}} sliders&lt;br /&gt;
connected to the {{maxword|name=dac~}} object.&lt;br /&gt;
&lt;br /&gt;
The {{maxword|name=fffb~}} object stands for ''Fast, Fixed, Filter Bank''. Unlike&lt;br /&gt;
the {{maxword|name=cascade~}} object, which implements a number of {{maxword|name=biquad~}} filters&lt;br /&gt;
in series, the {{maxword|name=fffb~}} object arranges a number of {{maxword|name=reson~}} objects&lt;br /&gt;
in ''parallel'', which is to say that the settings of one filter will not&lt;br /&gt;
affect any of the others. The {{maxword|name=fffb~}} object takes a number of arguments&lt;br /&gt;
which set its behavior: the ''number'' of filters, the ''base frequency'' of&lt;br /&gt;
the filter bank, the ''ratio'' between filters, and the ''Q'' of the filters.&lt;br /&gt;
All of the parameters of the object with the exception of the number of filters&lt;br /&gt;
can be changed with Max messages; the number is fixed because, as we can see,&lt;br /&gt;
each filter connects to a separate outlet. This allows us to create filter banks,&lt;br /&gt;
where we can 'tap' each bandpass filter individually:&lt;br /&gt;
&lt;br /&gt;
[[Image:Filterchapter04d.gif&amp;quot;/&amp;gt;&amp;lt;img src=&amp;quot;images/filterchapter04e.png|border]]&lt;br /&gt;
''Output of the lowest and highest two filters in our {{maxword|name=fffb~}} object:&lt;br /&gt;
waveform and spectrogram.''&lt;br /&gt;
&lt;br /&gt;
* Using the mouse, click and drag on the {{maxword|name=dial}} object in patcher area &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt;.&lt;br /&gt;
This has the audible effect of shifting the entire filter bank upwards or&lt;br /&gt;
downwards. Turn up different {{maxword|name=gain~}} sliders to hear the results.&lt;br /&gt;
&lt;br /&gt;
The value from the {{maxword|name=dial}} is interpreted as a MIDI pitch, converted&lt;br /&gt;
to frequency (via the {{maxword|name=mtof}}) object, and used to format the &amp;lt;code&amp;gt;freqRatio&amp;lt;/code&amp;gt;&lt;br /&gt;
message to the {{maxword|name=fffb~}} object. The &amp;lt;code&amp;gt;freqRatio&amp;lt;/code&amp;gt; message takes&lt;br /&gt;
two arguments: the center frequency of the first (lowest) filter,&lt;br /&gt;
and the ''ratio'' between it and subsequent filters. The&lt;br /&gt;
letter &amp;lt;code&amp;gt;H&amp;lt;/code&amp;gt;, when used as the ratio, tells the {{maxword|name=fffb~}} object&lt;br /&gt;
to set the filters in the bank to ''harmonic'' multiples of the base&lt;br /&gt;
frequency. So the message &amp;lt;code&amp;gt;freqRatio 100. H&amp;lt;/code&amp;gt; would set our ten&lt;br /&gt;
filters up to be centered to &amp;lt;code&amp;gt;100&amp;lt;/code&amp;gt; Hz increments.&lt;br /&gt;
&lt;br /&gt;
* Click in the &amp;lt;link type=&amp;quot;refpage&amp;quot; name=&amp;quot;number&amp;quot;&amp;gt;number box&amp;lt;/link&amp;gt; objects connected to the {{maxword|name=pak}} object.&lt;br /&gt;
Type &amp;lt;code&amp;gt;200.&amp;lt;/code&amp;gt; in the lefthand {{maxword|name=number}} box, and &amp;lt;code&amp;gt;1.5&amp;lt;/code&amp;gt; in&lt;br /&gt;
the righthand {{maxword|name=number}} box. Click on the {{maxword|name=number}} box connect&lt;br /&gt;
to the &amp;lt;code&amp;gt;message&amp;lt;/code&amp;gt; box containing the message &amp;lt;code&amp;gt;QAll $1&amp;lt;/code&amp;gt;. Enter&lt;br /&gt;
the value &amp;lt;code&amp;gt;100.&amp;lt;/code&amp;gt; and hit return. Turn up and down the&lt;br /&gt;
different {{maxword|name=gain~}} sliders to hear the results.&lt;br /&gt;
&lt;br /&gt;
We can easily set our filters in a frequency ratio other than a&lt;br /&gt;
harmonic series. Setting our base frequency to &amp;lt;code&amp;gt;200.&amp;lt;/code&amp;gt; and&lt;br /&gt;
our ratio to &amp;lt;code&amp;gt;1.5&amp;lt;/code&amp;gt; results in a bank of ten filters set to&lt;br /&gt;
the frequencies &amp;lt;code&amp;gt;200, 300, 450, 675, 1012.5, 1518.75, 2278.125,&lt;br /&gt;
3417.1875, 5125.78125, 7688.671875, and 11533.0078125&amp;lt;/code&amp;gt; Hz,&lt;br /&gt;
respectively. As with the {{maxword|name=reson~}} object, we have direct&lt;br /&gt;
control over the ''Q'' of these filters. A Q of &amp;lt;code&amp;gt;100&amp;lt;/code&amp;gt; r&lt;br /&gt;
esults in a bandwidth of 1/100 the frequency, creating narrow,&lt;br /&gt;
pitched filters.&lt;br /&gt;
&lt;br /&gt;
* Click the &amp;lt;code&amp;gt;message&amp;lt;/code&amp;gt; box to the right of patcher area &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt;&lt;br /&gt;
that contains a series of lists. Listen to the results by adjusting&lt;br /&gt;
the {{maxword|name=gain~}} sliders.&lt;br /&gt;
&lt;br /&gt;
The {{maxword|name=fffb~}} object takes many other messages, enabling&lt;br /&gt;
us to set the filters not in ratio at all. Sending lists in&lt;br /&gt;
the format &amp;lt;code&amp;gt;filter_# frequency Q&amp;lt;/code&amp;gt; allows us to set each&lt;br /&gt;
filter in the bank individually. In our example, we've set the&lt;br /&gt;
ten filters to frequencies from a musical chord.&lt;br /&gt;
&lt;br /&gt;
===Metering===&lt;br /&gt;
&lt;br /&gt;
Next to each {{maxword|name=gain~}} slider in patcher area &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt; is a&lt;br /&gt;
user-interface object that registers the amplitude of the signal&lt;br /&gt;
connected to it. These {{maxword|name=meter~}} objects allow us to see the&lt;br /&gt;
gain of each filter in the {{maxword|name=fffb~}} ''pre-fader'',&lt;br /&gt;
i.e. before we listen to it.&lt;br /&gt;
&lt;br /&gt;
* Turn down all the {{maxword|name=gain~}} sliders in patcher area &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt;. Click&lt;br /&gt;
in the {{maxword|name=number}} box that triggers the &amp;lt;code&amp;gt;Qall&amp;lt;/code&amp;gt; message.&lt;br /&gt;
Type &amp;lt;code&amp;gt;0.5&amp;lt;/code&amp;gt; and hit return. Type &amp;lt;code&amp;gt;10.&amp;lt;/code&amp;gt; and hit return. Listen&lt;br /&gt;
to the results and notice the effect of the Q on the gain of each filter,&lt;br /&gt;
and look at how the {{maxword|name=meter~}} objects respond.&lt;br /&gt;
&lt;br /&gt;
Because the {{maxword|name=fffb~}} object works in parallel, the output gain of&lt;br /&gt;
all the filters in the bank will typically be ''greater'' than the&lt;br /&gt;
gain of the incoming signal. Depending on the Q values and the frequencies&lt;br /&gt;
used, the potential volume output from the {{maxword|name=fffb~}} can be quite&lt;br /&gt;
high. The {{maxword|name=meter~}} object lets you observe your volumes visually&lt;br /&gt;
in the patcher window ''before'' you listen (and potentially hurt&lt;br /&gt;
your ears).&lt;br /&gt;
&lt;br /&gt;
===Summary===&lt;br /&gt;
&lt;br /&gt;
MSP has three simple-to-use noise generator objects, which generate white&lt;br /&gt;
noise ({{maxword|name=noise~}}), pink noise ({{maxword|name=pink~}}), and band-limited random&lt;br /&gt;
signals ({{maxword|name=rand~}}). These objects are ideal candidates for filtering.&lt;br /&gt;
The {{maxword|name=fffb~}} object implements a fixed filter bank of parallel bandpass&lt;br /&gt;
filters which can be controlled via ratios of a base frequency or individually.&lt;br /&gt;
The {{maxword|name=meter~}} object allows you to visually see the amplitude of any part&lt;br /&gt;
of the MSP signal path, and is incredibly useful for metering and debugging&lt;br /&gt;
your audio patchers.&lt;br /&gt;
&lt;br /&gt;
===See Also===&lt;br /&gt;
&lt;br /&gt;
{{maxword|name=noise~}} - White noise generator&lt;br /&gt;
&lt;br /&gt;
{{maxword|name=pink~}} - Pink noise generator&lt;br /&gt;
&lt;br /&gt;
{{maxword|name=rand~}} - Band-limited random signal&lt;br /&gt;
&lt;br /&gt;
{{maxword|name=fffb~}} - Fast fixed filter bank&lt;br /&gt;
&lt;br /&gt;
{{maxword|name=meter~}} - Visual peak level indicator&lt;br /&gt;
&lt;br /&gt;
[[Category:Teaching Material]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>