miller-book/node123.html

176 lines
6.3 KiB
HTML
Raw Permalink Normal View History

<!DOCTYPE html>
<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
original version by: Nikos Drakos, CBLU, University of Leeds
* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
* with significant contributions from:
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML>
<HEAD>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<TITLE>Time-varying complex comb filter: shakers</TITLE>
<META NAME="description" CONTENT="Time-varying complex comb filter: shakers">
<META NAME="keywords" CONTENT="book">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
<LINK REL="STYLESHEET" HREF="book.css">
<LINK REL="next" HREF="node124.html">
<LINK REL="previous" HREF="node122.html">
<LINK REL="up" HREF="node116.html">
<LINK REL="next" HREF="node124.html">
</HEAD>
<BODY >
<!--Navigation Panel-->
2022-04-12 23:32:40 -03:00
<A ID="tex2html2389"
HREF="node124.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next"
SRC="next.png"></A>
2022-04-12 23:32:40 -03:00
<A ID="tex2html2383"
HREF="node116.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up"
SRC="up.png"></A>
2022-04-12 23:32:40 -03:00
<A ID="tex2html2377"
HREF="node122.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous"
SRC="prev.png"></A>
2022-04-12 23:32:40 -03:00
<A ID="tex2html2385"
HREF="node4.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents"
SRC="contents.png"></A>
2022-04-12 23:32:40 -03:00
<A ID="tex2html2387"
HREF="node201.html">
<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index"
SRC="index.png"></A>
<BR>
2022-04-12 23:32:40 -03:00
<B> Next:</B> <A ID="tex2html2390"
HREF="node124.html">Reverberator</A>
2022-04-12 23:32:40 -03:00
<B> Up:</B> <A ID="tex2html2384"
HREF="node116.html">Examples</A>
2022-04-12 23:32:40 -03:00
<B> Previous:</B> <A ID="tex2html2378"
HREF="node122.html">Non-recirculating comb filter as</A>
2022-04-12 23:32:40 -03:00
&nbsp; <B> <A ID="tex2html2386"
HREF="node4.html">Contents</A></B>
2022-04-12 23:32:40 -03:00
&nbsp; <B> <A ID="tex2html2388"
HREF="node201.html">Index</A></B>
<BR>
<BR>
<!--End of Navigation Panel-->
2022-04-12 23:32:40 -03:00
<H2><A ID="SECTION0011107000000000000000">
Time-varying complex comb filter: shakers</A>
</H2>
<P>
Example G07.shaker.pd (Figure <A HREF="#fig07.30">7.30</A>) shows a different way of extending the
idea of a comb filter. Here we combine the input signal at four different
time shifts (instead of two, as in the original non-recirculating comb filter),
each at a different positive or negative gain. To do this, we insert the
input signal into a delay line and tap it at three different points; the
2022-04-12 23:17:03 -03:00
fourth "tap" is the original, un-delayed signal.
<P>
2022-04-12 23:32:40 -03:00
<DIV ALIGN="CENTER"><A ID="fig07.30"></A><A ID="8287"></A>
<TABLE>
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 7.30:</STRONG>
2022-04-12 23:17:03 -03:00
A "shaker", a four-tap comb filter with randomly varying gains
on the taps.</CAPTION>
<TR><TD><IMG
WIDTH="591" HEIGHT="386" BORDER="0"
SRC="img845.png"
ALT="\begin{figure}\psfig{file=figs/fig07.30.ps}\end{figure}"></TD></TR>
</TABLE>
</DIV>
<P>
As a way of thinking about the frequency response of a four-tap comb filter,
we consider first what happens when two of the four gains are close to zero.
Then we end up with a simple non-recirculating comb filter, with the slight
complication that the gains of the two delayed copies may be different. If they
are both of the same sign, we get the same peaks and valleys as predicted
in Section <A HREF="node108.html#sect7.network">7.3</A>, only with the valleys between peaks possibly
more shallow. If they are opposite in sign, the valleys become peaks and
the peaks become valleys.
<P>
Depending on which two taps we supposed were nonzero, the peaks and valleys are
spaced by different amounts; the delay times are chosen so that 6 different
delay times can arise in this way, ranging between 6 and 30 milliseconds. In
the general case in which all the gains are non-zero, we can imagine the
frequency response function varying continuously between these extremes, giving
a succession of complicated patterns. This has the effect of raising and
lowering the amplitudes of the partials of the incoming signal, all
independently of the others, in a complicated pattern, to give a steadily
time-varying timbre.
<P>
The right-hand side of the patch takes care of changing the gains of the
input signal and its three time-shifted copies. Each time the <TT>metro</TT> object
fires, a counter is incremented (the <TT>f</TT>, <TT>+ 1</TT>, and
<TT>mod 4</TT> objects). This controls which of the amplitudes will be changed.
The amplitude itself is computed by making a random number and normalizing it to
lie between -0.7 and 1.3 in value. The random value and the index are packed
(along with a third value, a time interval) and this triple goes to the
<TT>route</TT> object. The first element of the triple (the
counter) selects which output to send the other two values to; as a result,
one of the four possible <TT>line~</TT> objects gets a message to ramp to
a new value.
<P>
If the time variation is done quickly enough, there is also a modulation
effect on the original signal; in this situation the straight line segments
used in this example should be replaced by modulating signals with more
controllable frequency content, for instance using filters (the
subject of Chapter 8).
<P>
<HR>
<!--Navigation Panel-->
2022-04-12 23:32:40 -03:00
<A ID="tex2html2389"
HREF="node124.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next"
SRC="next.png"></A>
2022-04-12 23:32:40 -03:00
<A ID="tex2html2383"
HREF="node116.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up"
SRC="up.png"></A>
2022-04-12 23:32:40 -03:00
<A ID="tex2html2377"
HREF="node122.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous"
SRC="prev.png"></A>
2022-04-12 23:32:40 -03:00
<A ID="tex2html2385"
HREF="node4.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents"
SRC="contents.png"></A>
2022-04-12 23:32:40 -03:00
<A ID="tex2html2387"
HREF="node201.html">
<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index"
SRC="index.png"></A>
<BR>
2022-04-12 23:32:40 -03:00
<B> Next:</B> <A ID="tex2html2390"
HREF="node124.html">Reverberator</A>
2022-04-12 23:32:40 -03:00
<B> Up:</B> <A ID="tex2html2384"
HREF="node116.html">Examples</A>
2022-04-12 23:32:40 -03:00
<B> Previous:</B> <A ID="tex2html2378"
HREF="node122.html">Non-recirculating comb filter as</A>
2022-04-12 23:32:40 -03:00
&nbsp; <B> <A ID="tex2html2386"
HREF="node4.html">Contents</A></B>
2022-04-12 23:32:40 -03:00
&nbsp; <B> <A ID="tex2html2388"
HREF="node201.html">Index</A></B>
<!--End of Navigation Panel-->
<ADDRESS>
Miller Puckette
2006-12-30
</ADDRESS>
</BODY>
</HTML>