<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:st1="urn:schemas-microsoft-com:office:smarttags" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<meta name=Generator content="Microsoft Word 11 (filtered medium)">
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]--><o:SmartTagType
namespaceuri="urn:schemas-microsoft-com:office:smarttags" name="country-region"/>
<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
name="City"/>
<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
name="place"/>
<!--[if !mso]>
<style>
st1\:*{behavior:url(#default#ieooui) }
</style>
<![endif]-->
<style>
<!--
/* Font Definitions */
@font-face
{font-family:Tahoma;
panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
margin-bottom:.0001pt;
font-size:12.0pt;
font-family:"Times New Roman";}
a:link, span.MsoHyperlink
{color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{color:blue;
text-decoration:underline;}
p
{mso-margin-top-alt:auto;
margin-right:0in;
mso-margin-bottom-alt:auto;
margin-left:0in;
font-size:12.0pt;
font-family:"Times New Roman";}
span.EmailStyle18
{mso-style-type:personal-reply;
font-family:Arial;
color:navy;}
@page Section1
{size:8.5in 11.0in;
margin:1.0in 1.25in 1.0in 1.25in;}
div.Section1
{page:Section1;}
-->
</style>
</head>
<body lang=EN-US link=blue vlink=blue>
<div class=Section1>
<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>Thing 1: I had a look at the MFOS vocoder
schematic, and lo and behold, Ray used single opamp filters! Giving this some
thought, I can design a single opamp filter which will give more or less the
same frequency response near the corner as a double (or quadruple) opamp
filter.<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>Thing 2: Looking at Jurgen Haible’s
overall frequency response for all the filters together, it looks like a series
of peaks with a “floor” at about -3dB, and the peaks at about -1dB –
yes, that’s right, the whole action of the filters altogether is only
within about a 2-dB range of amplitude. Hence, what is happening further down
with these individual responses is of absolutely no consequence. I would
probably opt for slightly pointier responses near the tops to give more of a
comb effect and better separation of the channels.<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>Conclusions: I can achieve more or less
exactly the same results as the JH Living Vocoder with a quarter of the filter
circuitry. With the double feedback filter design, one has complete control
over the frequency, gain, and bandwidth. Hence, I would strive to position the
peak at 0 dB, and to make the slope of the response near the peak similar to
the 8-pole filters with low Q employed by JH. With the filter design I’m
using, the frequency will be tuned by a 500-ohm trimpot – I’m using
single turn trimpots to make tuning less suicide-inducing (I bought a bag of
100 from Electronic Goldmine for 20 cents each). I will simply tinker with the
design until I have a frequency response which looks very similar to JH’s
filters – it’s all on a spreadsheet – all I have to do is
specify f_0, Q and the amplitude at f_0, and pick a standard capacitor value,
and the design is calculated automatically. Depending upon the Q value chosen,
the filters can all take a combination of the same two standard resistor values
once the capacitor is chosen, with the third resistor value represented by the
trimpot (which is 500 ohms based on selecting a Q value of 10).<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>This is all an experiment, so I don’t
expect to succeed completely on the first attempt. I also must confess that I
haven’t really given much thought to things such as compression, pre-amplifying
the vocals, sibilance, etc, etc, so I still have a lot of work to do. However,
I’m going to start with the basic vocoder and expand on it as needed,
rather than try to design the whole thing from the ground up right away. I
make all my PCBs in a modular fashion anyway, so no big deal.<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>My original idea was to make a vocoder
with 88 channels – one for each semitone of the piano range – with resonating
filters that would ring out with a sine wave when excited. In this way, the
device would “sing” some ethereal version of whatever music was fed
to it, in tune. Maybe, with single opamp filters, this is doable.<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'> <o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
<div>
<div class=MsoNormal align=center style='text-align:center'><font size=3
face="Times New Roman"><span style='font-size:12.0pt'>
<hr size=2 width="100%" align=center tabindex=-1>
</span></font></div>
<p class=MsoNormal><b><font size=2 face=Tahoma><span style='font-size:10.0pt;
font-family:Tahoma;font-weight:bold'>From:</span></font></b><font size=2
face=Tahoma><span style='font-size:10.0pt;font-family:Tahoma'> Mattias
Rickardsson [mailto:mr@analogue.org] <br>
<b><span style='font-weight:bold'>Sent:</span></b> Sunday, September 01, 2019
8:55 AM<br>
<b><span style='font-weight:bold'>To:</span></b> David G Dixon<br>
<b><span style='font-weight:bold'>Cc:</span></b> David Moylan; Synth DIY<br>
<b><span style='font-weight:bold'>Subject:</span></b> Re: [sdiy] vocoder
filters</span></font><o:p></o:p></p>
</div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p> </o:p></span></font></p>
<div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>The next level is to ponder on the unwanted higher-frequency AM effects
from controlling a vocoder band VCA with the "best" (fastest)
envelope follower, and whether a slower response could be more optimal. So much
fun! :-)<o:p></o:p></span></font></p>
<div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p> </o:p></span></font></p>
</div>
<div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>/mr<o:p></o:p></span></font></p>
</div>
<div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p> </o:p></span></font></p>
</div>
</div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p> </o:p></span></font></p>
<div>
<div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>Den lör 31 aug. 2019 23:23David G Dixon <<a
href="mailto:dixon@mail.ubc.ca">dixon@mail.ubc.ca</a>> skrev:<o:p></o:p></span></font></p>
</div>
<blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;
margin-left:4.8pt;margin-right:0in'>
<div link=blue vlink=blue>
<div>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 color=navy face=Arial><span style='font-size:10.0pt;font-family:Arial;
color:navy'>Not really. It’s a full-wave rectifier followed by a
standard LP filter stage tuned to about 1/4 of the expected incoming frequency
followed by a notch filter tuned to twice the incoming frequency. I also
use a full wave rectifier instead of the normal half wave rectifier, because I
figure this gives faster integration. This is why the ripple is at twice
the incoming frequency, and a notch filter knocks it out nicely. Through
the judicious choice of gain at the LP filter, the envelope follows the
waveform tops more or less exactly, and comes up to full strength within two
periods of the incoming waveform, with ripple which is inconsequential.
For a 10Vpp waveform coming in, the envelope rides at 5V, which will turn on my
favored linearized 2164 VCA design to unity gain.</span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 color=navy face=Arial><span style='font-size:10.0pt;font-family:Arial;
color:navy'> </span></font><o:p></o:p></p>
<div>
<div class=MsoNormal align=center style='text-align:center'><font size=3
face="Times New Roman"><span style='font-size:12.0pt'>
<hr size=2 width="100%" align=center>
</span></font></div>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><b><font
size=2 face=Tahoma><span style='font-size:10.0pt;font-family:Tahoma;font-weight:
bold'>From:</span></font></b><font size=2 face=Tahoma><span style='font-size:
10.0pt;font-family:Tahoma'> David Moylan [mailto:<a
href="mailto:dave@expeditionelectronics.com" target="_blank">dave@expeditionelectronics.com</a>]
<br>
<b><span style='font-weight:bold'>Sent:</span></b> Saturday, August 31, 2019
5:26 AM<br>
<b><span style='font-weight:bold'>To:</span></b> David G Dixon<br>
<b><span style='font-weight:bold'>Cc:</span></b> <a
href="mailto:synth-diy@synth-diy.org" target="_blank">synth-diy@synth-diy.org</a><br>
<b><span style='font-weight:bold'>Subject:</span></b> Re: [sdiy] vocoder
filters</span></font><o:p></o:p></p>
</div>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=3 face="Times New Roman"><span style='font-size:12.0pt'> <o:p></o:p></span></font></p>
<div>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=3 face="Times New Roman"><span style='font-size:12.0pt'>Curious about this
envelope follower you mention. Trade secret?<o:p></o:p></span></font></p>
</div>
<div>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=3 face="Times New Roman"><span style='font-size:12.0pt'> <o:p></o:p></span></font></p>
<div>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=3 face="Times New Roman"><span style='font-size:12.0pt'>On Aug 31, 2019
03:48, David G Dixon <<a href="mailto:dixon@mail.ubc.ca" target="_blank">dixon@mail.ubc.ca</a>>
wrote:<o:p></o:p></span></font></p>
<div>
<div>
<p><font size=2 color=navy face=Arial><span style='font-size:10.0pt;font-family:
Arial;color:navy'>Well, I know that the higher-Q filters have a longer delay,
so that they take longer to respond to the incoming waveform. I’m
thinking that a Q of about 3 is probably about right, and with that, only a
4-pole filter is required.</span></font><o:p></o:p></p>
<p><font size=2 color=navy face=Arial><span style='font-size:10.0pt;font-family:
Arial;color:navy'> </span></font><o:p></o:p></p>
<p><font size=2 color=navy face=Arial><span style='font-size:10.0pt;font-family:
Arial;color:navy'>I’ve got a nice design for an envelope follower which
responds quickly and has little or no ripple, so that’s not a problem.</span></font><o:p></o:p></p>
<p><font size=2 color=navy face=Arial><span style='font-size:10.0pt;font-family:
Arial;color:navy'> </span></font><o:p></o:p></p>
<p><font size=2 color=navy face=Arial><span style='font-size:10.0pt;font-family:
Arial;color:navy'>On a related note, does anyone here have problems getting the
Bode plotter in Multisim to work consistently? I am finding with this
simulation that sometimes if I change the component values, the Bode plotter
doesn’t work at all. Also, for some simulations, changing the
component values doesn’t change the filter response at all.
Multisim is sure glitchy. It’s very frustrating. I can
sometimes fix it if I erase all of the passive components and load new ones
with the new values, rather than just changing them, but that sort of thing is
just complete bullshit. Multisim is a sad excuse for a professional
program. There must be something better out there (?).</span></font><o:p></o:p></p>
<p><font size=2 color=navy face=Arial><span style='font-size:10.0pt;font-family:
Arial;color:navy'> </span></font><o:p></o:p></p>
<div>
<div class=MsoNormal align=center style='text-align:center'><font size=3
face="Times New Roman"><span style='font-size:12.0pt'>
<hr size=2 width="100%" align=center>
</span></font></div>
<p><b><font size=2 face=Tahoma><span style='font-size:10.0pt;font-family:Tahoma;
font-weight:bold'>From:</span></font></b><font size=2 face=Tahoma><span
style='font-size:10.0pt;font-family:Tahoma'> Paul Perry [mailto:<a
href="mailto:paulfrancisperry@gmail.com" target="_blank">paulfrancisperry@gmail.com</a>]
<br>
<b><span style='font-weight:bold'>Sent:</span></b> Friday, August 30, 2019
10:22 PM<br>
<b><span style='font-weight:bold'>To:</span></b> David G Dixon<br>
<b><span style='font-weight:bold'>Subject:</span></b> Re: [sdiy] vocoder
filters</span></font><o:p></o:p></p>
</div>
<p><font size=3 face="Times New Roman"><span style='font-size:12.0pt'> <o:p></o:p></span></font></p>
<div>
<p><font size=3 face="Times New Roman"><span style='font-size:12.0pt'>I don't
think there is a "right" answer. To my mind, it depends on what one
wants to do with the unit. Think about what will happen when a single swept
tone is used to modify white noise. The low pass filter on the VCAs probably
has a significant effect as well.<o:p></o:p></span></font></p>
<div>
<p><font size=3 face="Times New Roman"><span style='font-size:12.0pt'>paul
perry <st1:City w:st="on">Melbourne</st1:City> <st1:country-region w:st="on"><st1:place
w:st="on">Australia</st1:place></st1:country-region><o:p></o:p></span></font></p>
</div>
</div>
<p><font size=3 face="Times New Roman"><span style='font-size:12.0pt'> <o:p></o:p></span></font></p>
<div>
<div>
<p><font size=3 face="Times New Roman"><span style='font-size:12.0pt'>On Sat,
31 Aug 2019 at 14:50, David G Dixon <<a href="mailto:dixon@mail.ubc.ca"
target="_blank">dixon@mail.ubc.ca</a>> wrote:<o:p></o:p></span></font></p>
</div>
<blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;
margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt'>
<div>
<div>
<p><font size=2 color=navy face=Arial><span style='font-size:10.0pt;font-family:
Arial;color:navy'>Well, I think I might have answered my own question.
Looking again at the JH Living Vocoder, since Jurgen Haible’s filter
responses overlap at about the 8dB mark, it really should not matter at all
what’s going on around the skirt of the response, and higher-Q filters
with two 2-pole stages should give very similar results to low-Q filters with
four 4-pole stages (and be much much cheaper to build).</span></font><o:p></o:p></p>
<p><font size=2 color=navy face=Arial><span style='font-size:10.0pt;font-family:
Arial;color:navy'> </span></font><o:p></o:p></p>
<p><font size=2 color=navy face=Arial><span style='font-size:10.0pt;font-family:
Arial;color:navy'>I’d still appreciate if anyone has any specific
insights into this problem. Cheers.</span></font><o:p></o:p></p>
<p><font size=2 color=navy face=Arial><span style='font-size:10.0pt;font-family:
Arial;color:navy'> </span></font><o:p></o:p></p>
<div>
<div class=MsoNormal align=center style='text-align:center'><font size=3
face="Times New Roman"><span style='font-size:12.0pt'>
<hr size=2 width="100%" align=center>
</span></font></div>
<p><b><font size=2 face=Tahoma><span style='font-size:10.0pt;font-family:Tahoma;
font-weight:bold'>From:</span></font></b><font size=2 face=Tahoma><span
style='font-size:10.0pt;font-family:Tahoma'> Synth-diy [mailto:<a
href="mailto:synth-diy-bounces@synth-diy.org" target="_blank">synth-diy-bounces@synth-diy.org</a>]
<b><span style='font-weight:bold'>On Behalf Of </span></b>David G Dixon<br>
<b><span style='font-weight:bold'>Sent:</span></b> Friday, August 30, 2019 9:05
PM<br>
<b><span style='font-weight:bold'>To:</span></b> <a
href="mailto:synth-diy@synth-diy.org" target="_blank">synth-diy@synth-diy.org</a><br>
<b><span style='font-weight:bold'>Subject:</span></b> [sdiy] vocoder filters</span></font><o:p></o:p></p>
</div>
<p><font size=3 face="Times New Roman"><span style='font-size:12.0pt'> <o:p></o:p></span></font></p>
<p><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>Hey
SDIY Team!</span></font><o:p></o:p></p>
<p><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'> </span></font><o:p></o:p></p>
<p><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>I’m
thinking about building a vocoder, and I have a general question about the
bandpass filters.</span></font><o:p></o:p></p>
<p><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'> </span></font><o:p></o:p></p>
<p><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>I’ve
looked at Jurgen Haible’s Living Vocoder, and he used 8-pole filters with
low Q. These give a reasonably broad band with fairly steep slopes.
He makes the filters from two pairs of LP and HP.</span></font><o:p></o:p></p>
<p><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'> </span></font><o:p></o:p></p>
<p><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>I
was thinking about using BP filter sections, but just 4-pole, and with higher Q
(around 10). This gives a somewhat narrower band, and the slope is steep
near the corner, but fairly shallow around the skirt. This idea uses a
lot fewer components (about half as many).</span></font><o:p></o:p></p>
<p><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'> </span></font><o:p></o:p></p>
<p><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>What
I’m asking is, does anybody here have any insight into what the
“proper” approach to vocoder filters would be? What is the
design goal? Do you want significant overlap from one band to the next,
or should they be fairly distinct? I guess I’m just looking for
some general guidelines and conventional wisdom.</span></font><o:p></o:p></p>
<p><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'> </span></font><o:p></o:p></p>
<p><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>Cheers,</span></font><o:p></o:p></p>
<p><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>Dave
Dixon</span></font><o:p></o:p></p>
</div>
</div>
<p><font size=3 face="Times New Roman"><span style='font-size:12.0pt'>_______________________________________________<br>
Synth-diy mailing list<br>
<a href="mailto:Synth-diy@synth-diy.org" target="_blank">Synth-diy@synth-diy.org</a><br>
<a href="http://synth-diy.org/mailman/listinfo/synth-diy" target="_blank">http://synth-diy.org/mailman/listinfo/synth-diy</a><o:p></o:p></span></font></p>
</blockquote>
</div>
</div>
</div>
</div>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=3 face="Times New Roman"><span style='font-size:12.0pt'> <o:p></o:p></span></font></p>
</div>
</div>
</div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>_______________________________________________<br>
Synth-diy mailing list<br>
<a href="mailto:Synth-diy@synth-diy.org" target="_blank">Synth-diy@synth-diy.org</a><br>
<a href="http://synth-diy.org/mailman/listinfo/synth-diy" target="_blank">http://synth-diy.org/mailman/listinfo/synth-diy</a><o:p></o:p></span></font></p>
</blockquote>
</div>
</div>
</body>
</html>