4007 Project Idea: Music synthesizer with digitally-controlled
The earliest synthesizers developed in the 60s and 70s were based on analog
electronics. Sounds were defined by the setting of various front-panel
controls, such as switches and knobs, and sometime patch cords used to
connnect various synthesizer modules.
If the musician wanted to recreate a particular
sound, they would need to write down the various control settings (and cord
configurations if appropriate). This sound-defining information is usually
called a “patch.” Recreating
the sound required painstakingly going through all the controls and changing
the settings, which was quite time consuming and could be problematic when
changing sounds between songs during a live performance.
In the 70s, affordable microprocessors allowed the creation of instruments
that could store patch settings and recall them with the touch of a few
buttons. Instead of a knob being directly part of the sound generating
ciruit, the knob would create a voltage read by a microprocessor via an
A/D converter, and the microprocessor used a D/A converter to
either pass this value on
to the sound generating circuitry or use some other value in a patch
recalled by the user.
The sound generating mechanisms were still analog hardware, since
the computing power needed to generate audio in real-time at a reasonable
price was still many years off.
In early 1980s, custom digital VLSI design started to evolved
to the point that it became cheaper to do synthesis via digital signal
processing than analog electronics. This trend continued to the present day;
modern laptops contain enough power to generate many synthesized voices,
and most synthesizers you will find at places like Guitar Center are
essentially dedicated computers with keyboards and knobs stuck to them.
Against this backdrop of an an almost total takeover by digital technology,
a curious thing happened – musicians began to yearn for the old analog
sounds of yesteryear. Analog synthesizers could be picked up cheaply at
garage sales during the 1980s, since everyone was dumping them in favor
of new shiny all-digital toys. Budding producers that couldn’t afford the
new digital synthesizers picked up old cheap analog synthesizer and developed
new sounds as they pushed them to the limits. Acid House, a genre of dance
music built on the sounds of the
Roland TB-303, is an example of
this; I recall times in the 1980s when TB-303s were going for $50 as
music stores desperately tried to get rid of them, and they now go for
over $1,000 on ebay. (In fact, someone is now trying to sell one with
a $2,500 Buy-it-Now price!)
Its success inspired Limor,
a graduate of the MIT Media Lab, to create a modern clone called the
(She reverse engineered the functionality of the
TB-303s microcontroller and created a new implementation of it.)
This renewed interest in analog sounds made instrument designers pursue to
parallel paths: 1) “virtual analog,” which tries to emulate the many
idiosyncracies of analog hardware in DSP, and 2) new design that use
old-fashioned analog circuitry controlled by modern microcontrollers. In
terms of (1), there are both systems that use dedicated DSP hardware
here for a small list) and programs that run entirely on ordinary
computers. In terms of (2), one of the earliest examples is the
Oberheim OB-Mx, which I’ve been collecting information about.
More recent examples include the
and Little Phatty and
Prophet 08 by
Dave Smith Instruments.
Part of the allure of analog synthesis vs. digital is that analog circuits
tend to be a little bit quirky in a way that many musicians claim to like.
Modeling those quirks using DSP turns
out to be quite difficult, and those
quirks – for instance, nonlinearities in circuits the original designer tried
to make linear – are important to the sound. DSP renditions that do not
account for these nonlinear effects often sound “cold” or “too clean” to
So, my main idea for 4007 projects this semester is to design and build some
synths along the lines of (2) above, in which the audio signal path is
primarily analog, but the analog circuity is controlled by a microcontoller.
The synth should be able to respond to note data from a
MIDI keyboard. There are many, many approaches to this, so I can easily
envision many teams working on different versions of this same overarching
To keep things simple, I generally recommend that we (at least for starters)
focus on monophonic synthesizers – i.e. synthesizers that only need to do
one note at a time – but that we keep an eye towards making architectures
that are easy to expand to handle more voices in the future.
At a minimum, the synth needs some sort of oscillator to create the basic
sound, some sort of
voltage-controlled filter (VCF) to shape the sound,
and then a
voltage-controlled amplifier (VCA) to be able to smoothly turn
the sound on and off. The cutoff of the VCF and volume of the VCA should
be controlled by envelopes, at the very least of the
The envelopes may be generated by hardware or software. Software is
cheaper and more flexible, and hence would be my recommendation,
but there are some “true analog believers” out
there that swear by hardware-generated envelopes, so you might want to
explore that option too.
I envision this as largely a system integration task. You will find various
schematics for oscillators, VCFs, VCAs, etc. all over the web, which you are
welcome to adapt. The issue will be getting it all together and working
harmoniously under the guidance of a microcontroller and some A/D and D/A
converters. (A microcontroller with some sort of built-in A/D and D/A may
As far as oscillators go, there are many possibilities:
- The most hardcore approach
is a true voltage controlled oscillator (VCO). This requires quite a bit
of hardware and careful tuning, but it carries the most “analog street cred.”
These usually employ a BJT
to exponentially convert a control voltage into a current. This exponential
conversion is nice since humans perceive pitch logarithmally, not linearlly;
many modular synths are design with a 1 volt per octave standard. This
current is fed into an integrator whose output is tied to a comparitor;
depending on how this is arranged you can generate either a triangular or
a sawtooth waveform, and various other bits of circuitry can transform one
kind of waveform to another.
- Although I’m asking that the VCF and VCA be analog, you can also explore
generating the basic waveform digitally, perhaps by reading values out
of tables at different rates and shoving them to an audio rate D/A
coverter. One well known instrument that did
this is the PPG Wave series, which
you can hear on Depeche Mode albums from the 1980s. Paul Maddox’s
is an example of a homebrew instrument that takes
- A digitally controlled oscillator (DCO)
typically uses some analog circuitry,
but it uses a digital timer to control when the waveform
needs reset. Examples of digital timers include the 82C53, but modern
microcontrollers often have these built-in.
In Spring 2008, I taught a special topics class called “Electronics for Music
that covered a lot of these issues. I’ve posted videotapes of
the lectures on
the class website;
there is a wealth of information there, including my
DIY Datasheet and Ap Note Collection.
I know there are some people signed up for this section than have either
taken the EMS class (or an
I taught under the name of
“Theory and Design of Music Synthesizers”). I’d like to spread the people
who took this class out among the different teams so that each team has one
such person. However,
it’s not essential that each team has one such person as long
as a team has at least one person that is comfortable with analog electronics
at the “op amp level” (we won’t get down too deep into discrete transistors.)
reports of some
projects (they were either single person or a team of at
most two) from those classes. (Note the reporting requirements for 4007
are much more formal than what I required in those classes.)
Each team will also need at least one person who is zen with microcontrollers.
I am not personally zen with microcontrollers so I have no particular
Here’s some possible themes to explore:
- A Buchla-inspired vactrol-centric design: Vactrols are a
current-controlled resistors created by combining a light-emitting diode
with a light-dependent resistor in a single package. They offer a unique sort
of sound that no one has been able to replicate digitally. The Buchla lowpass
gate, which uses vactrols,
is a combined VCF/VCA that can be used as either a VCF, a VCA, or a
combination of both. See the Buchla 292 schematics and the B2080-10A and
B2080-11A schematics on
Magnus’s Buchla page. For maximum Buchla goodness, you could use a
triangle-core VCO (see the Buchla 258 and 259 schematics, as well as
B2080-7A through B2080-9A.). Don’t let Buchla’s strange
way of drawing schematics scare you; I can guide you through it.
- A SSM2164-centric design:
this is a “voltage controlled amplifier” chip
with an exponential control characteristic.
Here’s an example of
a state variable filter made with it, and
an example of a four-pole filter with feedback, and here is
Siddarth Bhandari’s variant of the latter. The SSM2164 is a rather nice
- Memorymoog-inspired design: See the upper right corner
of Sheet 1 of this set of Memorymoog schematics. The transistor
ladder is the VCF – it’s called a “Moog ladder” and is well liked by
analog synthesizer afficianados.
One of the 3080s controls how much sound gets fed back to
the input of the VCF (this is called “resonance” or “emphasis”), and the other
3080 is the VCA. The 3080 is a special device called an “operational
transductance amplifier.” It turns takes a voltage in and gives a current out,
where the current out is multiplied by an amount determined by a totally
different control current input. The 3080 is out of print, but the LM13700 is
dual version of the same thing. Alas, the CEM3340 VCO chip used in the
Memorymoog is long out of production, so you’d have to come up with something
else for the VCO.
That’s just a few things that came to mind – don’t let any of the above
descriptions limit your imagination. Do some google searching.
Poke around. Read about synthesizers.
If you choose a synthesizer design project, note that there is a
“Synth DIY” mailing list with many knowledgeable participants that will be
able to assist your efforts.
I sent Lynx Crowe, who did the software for many Buchla instruments and
the OB-Mx, an e-mail about this project idea, and here is what he wrote
Sounds like fun. We did something like that with the Buchla 300. It used
digital control of analog modules, kind of like what Don’s done with the
200e series stuff he’s been doing lately. This gives you digital repeatability
for your low data rate control signals, with high speed processing for your
higher data rate analog signals. One of Don’s more penetrating insights was
to recognize that control signals require generally less bandwidth than the
audio (or video) signals that they’re controlling, and that the kinds of
processing they need is best done with a separate path. Bob Moog processed
control and signal data with the same elements, which meant that you couldn’t
optimize the processing for either of them. Don separated them, and was thus
able to optimize them.