In the 1990s, I have designed an "Interpolating Scanner", a
CV-controlled linear crossfade over a certain number of VCAs, to be the
center module of my JH-3 modular synthesizer. You can read all about it
here,
including a block
diagram, schematics
using now obsolete SSM chips (not recommended any longer for
building), and a glimpse of its widely varying applications such as a
voltage controlled crossfader, a wavefolder with dynamic breakpoints, a
tracking generator with voltage controlled breakpoints, or voltage
controlled non-harmonic modulator.
Here are some sound samples:

Polysynth "enhanced" with
Interpolating Scanner
The Interpolating Scanner is used to create a complex nonlinearity,
basically acting as a parametric distortion device.
A sound from the OB-8 is fed into the Scan (!) input of teh
Interpolating Scanner, while the 8 signal inpots are fed with DC
voltages to set the piecewise-linear distortion courve. The Sample
starts with the dry OB-8 sound; then the Interpolating Scanner is
switched it.
Very short sample in .WAV format (mp3 is horrible here).

NEW: Waveshaper
First part of the :wav sample is dry signal (OB-8 sound), second part
is the same thing run thru the Interpolating Scanner set up as Wave
Shaper, with one Breakpoint set to a fixed value, and 5 breakpoints set
by 5 slow running triangle LFOs.

Right from the start, the Interpolating Scanner has also been intended
for an emulation of the Hammond (R)
Chorus / Vibrato. (Hammond is a Registered Trademark of Hammond Suzuki.
"Hammond Chorus / Vibrato" refers to a mecahnical / electrical device
that's found in vintage Hammond organs that predate the Hammond Suzuki
company. I'm using the words in order to describe these vintage devices
only, and am in no way affiliated with the Hammond Suzuki company, who
own the registered trademark of the name "Hammond", and still build
organs under that name.)

The Hammond Chorus / Vibrato consists of
two main parts: A tapped LC-delay line which provides a delay of up to
1ms for frequencies up to ca. 5kHz (the "Line Box"), and a mechanical /
capacitive device (the "Scanner") what continuously crossfades from one
tap of the Line Box to th enext, and then back again.
There have been many attempts to emulate the unique sound of the
Hammond Chorus / Vibrato, using different modulation waveforms, and a
combination of frequency and amplitude modulation.
I'm using a direct approach, a "physical modelling" approach if you
will: The huge "Line Box" is emulated by a smaller version, which is
still a LC-filter. It's just transformed to a lower line impedance that
makes it possible to use unexpensive off-the-shelf 33mH inductors. The
capacitors and termination resistors are re-calculated accordingly, as
is the compensation for the losses along the line.
The mechanical / capacitive scanning is replaced with a fully
electronic version - a 9-stage version of my Interpolating Scanner.
You need 9 stages because the Hammond Scanner had 16 positions, of
which the last 7 were hard-wired to 7 of the previous 9, thus
transforming a rotary motion into a linear scanning along the line Box
taps. So despite its rotary
implementation, Laurens Hammond has actually used a linear
back-and-forth scanning right from the beginning! Also, the
rotary motion does not introduce any sin- or cos-shaped modulation, as
one might think at first glance. There is a sort of sine-shaping going
on, but it's in the spacing of the taps along th edelay line, not in
the scanning circuitry!
So all in all I think my emulation is as close to the original from its
topology as it could possibly, theoretically be. There may be a few
parameters that could be tweaked for optimal realism - and there may be
quite some variation in original Hammond Scanner Vibratos from
model to model, and due to ageing of components. But it's important
that you get the right
topology - that means, all the little side effects from
crossfading like frequency-dependent phase cancellation, must all be
there "automatically", by design.
I leave it to you if the version I've implemented and made sound
samples with is realistic enough or not. What I'm going to provide is a
PCB that allows you building your own version by tweaking certain
component values, and a recommendation of what components I've used.

Unfortunately, I don't own a Hammod organ - just a Korg CX-3 (old
version), so the sound that goes into the Scanner Vibrato isn't that
realistiv to start with.
But hear for yourself how the Scanner Vibrato changes this sound:

These samples have been created with an old version of my circuit,
that used only two VCAs and a lot of CMOS switches instead of a full
Interpolating Scanner.
I'm keeping the documentation for this up on my web site here,
but I don't recommend building this.

The new version does
exactly the same in terms of periodic modulation (i.e. the Hammond
Vibrato application), but is not limited to these applications: You can
scan along the (on-board) Line Box with arbitrary control voltages.
(Random voltages, Envelope followers, aftertouch sensors - you name it.)

And you can use the same PCB and build a generic 9-Stage
Interpolating Scanner for your Modular Synthesizer (+/-15V power
supply) by simply omitting the Line Box stuff, omitting all the
inductors in particular.

IMO - and I know this is shameless advertising! - everybody needs at
least two of these PCBs: One as Chorus Vibrato, and one as a generic
Interpolating Scanner. But then again, you may want at least 3
Interpolating Scanners in a modular: One for Oscillator waveform
crossfade (a la RSF Kobol), one for Filter response crossfade, and one
as a tracking generator.
Oh, I forgot voltage controlled LFO waveform crossfade. :)

At this point, I would like to thank Don
Tillman. Based on my Interpolating Scanner idea, he created a very brilliant
implementation of his own, which is more elegant than my first
solution in several ways. Don kindly granted permission for me to use
his implementation in my PCB project, which I will gladly do, as it
needs less board space and a lot less current consumption. I've
slightly developped Don's circuit further, mainly using emitter
followers instead of diodes, and introducing emitter degeneration
resistors on the transistors that perform the crossfade in order to
linearize the transitions and get more independent of transistor
tolerances. I've also used a TL431 voltage reference for precise
control over all bias currents, turned the circuit upside down (current
sinks instead of current sources), and drive simple transistor pairs
instead of OTAs, for the VCA functions.

The driver stage for the LC delay line can be configured either as a
simple voltage buffer, or as a variable low pass filter.
The latter may be useful with synthesizer signals which aren't
band-limited like a Hammond organ.
The following pictures shows both options:

Mode
Switching for Chorus / Vibrato Version

The LC Delay Line has 25 Stages, of which 14 are buffered with opamps
and brought out to a connector. (Actually, to a 10pin connector and a
5pin connector, as I didn't find a nice 14pin version.)
A selection of 8 out of these 14 signals is sent to 8 Interpolating
Scanner inputs, via a 8pin connector. (The input of the LC delay line
is hard wired to the leftmost Scanner input.) Page 2 of the schematics
should make clearer what's going on.

Here's a suggestion for the input / output and potentiometer
connections of a 9-Stage Interpolating Scanner (Crossfader over 9
inputs).
Note that each input is normalized to the previous input, so you can
use it for less than 9 input signals without making any further
connections.
Potentiometers (input attenuators) for each input are optional. If you
crossfade between signals with similar amplitude (VCO waveforms, LFO
waveforms, different Reverb Devices, Filter Bank outputs) you probably
don't need these potentiometers.
The Voltage Controlled LFO that is on-board because of the Hammond
Scanner Vibrato emulation, could be useful as an additional source of
modulation for Interpolating Scanner applications, too. If you use it,
the LFO's output, the external CV, and the Manual control are all added
to control the momentary scan position.

Wiring
for Tracking Generator / Waveshaper / Nonlinear Function

Of course you can use the Interpolating Scanner to crossfade between a
set of fixed (manually controlled) voltages instead of audio signals,
too!
That's what is ofter refered to as "Tracking Generator". I'd call it
"Piecewise Linear Transfer Function".
Basically, with a set of 9 slide potentiometers, you "draw" a courve,
and any incoming CV is then "bent" according this nonlinear transfer
function.
There are no limits for such an application.
Run your V/Oct keyboard CV thru this, and you can create CVs that have
a non-typical tracking. Great for CS-80-like treatment of high and low
range tracking of the VCF. Or you can give the bass range of VCOs
slightly more detuning than the upper range.
Run your VCO's audio input into the Scanner CV, and bend the waveform
with a courve that has 9 breakpoints.
Most fixed-courve waveshapers pale in comparison.
Or better, run the VCO output thru a VCA (or a volume pedal) before you
feed it into the Scanner's CV input, and you have dynamic control over
which parts of the nonlinear courve you're using to warp the audio
signal. You can even do this with external synths, playing chords even.
(Sound sample)
Or you just use the internal LFO and warp its waveform using the 9
potentiometers.
Or use the internal LFO to perform a PWM-like offset modulation for an
incoming audio signal.
(Slide potentiometers are ideal for this because of the graphic aspect
("drawing" nonlinearities), but the circuit works with ordinary rotary
pots as well.)
So, here's how you wire the board for such applications:

Of course you can mix the Waveshaper and Scanner operations.
For instance, when you set one breakpoint to a fixed value, and some
other breakpoints to slowly changing values (by feeding LFOs into
different inputs), you can get this by running an audio
signal into the Scan CV input! It's like a waveshaper, but without a
waveshaper's static nature.

Starting with the Interpolating Scanner Version, it's reather easy to
also include the Waveshaper etc. functions, simply by normalizing the
first input jack to a DC voltage instead of GND. This DC voltage is
then propagated to alle the other inputs as long as nothing is plugged
in. (And of course you can
plug in other voltages - DC or LFOs or envelopes - in order to make a
breakpoint, and all those which follow, dynamic instead of static.)
Here's how such normalisation could be implemented with just two
resistors:

With such a simple method, you get normalisation to a positive DC
voltage only, but in practice, this is hardly a problem in a modular
synthesizer setup, as you always can shift voltages with other modules.
You may consider adding a 10uF capacitor (2 * 22uF electrolytic
back-to-back) between the "OUT" PCB connector and the output jack, and
a 100k resistor from the output jack to GND for optional AC coupling of
the output. A simple switch across the capacitor will allow choosing
between AC-coupled and DC-coupled.

And here is where the connections for the Interpolating Scanner and
Tracking Generator / Waveshaper are located on the PCB:

I'm convinced that everybody should have more than one of these
devices, specialized for the different functions, because in a modular
system, sooner or later you want to use the different functions at the
same time. But upon special request, I'll sketch a way to even combine
the Chorus/Vibrato device with a Scanner / Waveshaper module that has
individual inputs. But be warned: This
is not for the faint of heart!
The idea is that you have a 4-position switch with which to choose
Chorus Vibrato 1 ... 3, and in it's 4th position, the general Scanner /
Waveshaper function.
For this you need a 9-pole switch with 4 positions. Not just 8-pole,
because there are 9 VCAs, and in the ordinary
Chorus/Vibrato mode the 1st VCA input is always hard-wired to th estart
of the delay line. In the ordinary
Interpolating Scanner mode, there is no delay line at all, so the first
input channel is just connected to where the first VCA input is (with
the whole delay line missing on the PCB).
If we marry the two functions, we have to break that internal
connection, and close it via one pole of the 9-pole switch when
Chorus/Vibrato mode is selected.
Also, the resistor values to the VCA inputs are different in both
versions. We solve this problem by soldering the smaller ones (from the
Chorus/Vibrato version) into the PCB, and add eight 30k resistors and
one 24k resistor in series with the on-board resistors when the
Scanner/Waveshaper mode is selected. These Resistors can simply be
soldered between the solder lugs of the big switch and the wiper
connections of the input potentiometers.
That was the overview - now lets start in detail.

3. Connect the 9-pole 4-throw switch according to the following
table:

Here's a drawing that shows where the resistors go:

And here's the location of the Taps 1 ... 14 and Selected Taps I ...
VIII again:

My
Prototype (Scanner Vibrato Version)

Here's what I've built around my first prototype PCB of the 2008
Scanner. I decided to to for a Hammond Chorus / Vibrato version, but
with some extras:
There are 4 separate potentiometers for LFO Rate (two with big knobs,
and two trimpots), and switches that allow to choose between these 4
settings quickly. Here is a
crude drawing how I wired this, and a foot switch, with off-PCB
components.
Also, there is an inverting amplier, built around a LM358 that is wired
on a tiny veroboard on the front panel, to allow both polarities (left
or right scan) from an external control voltage.

Correction /
Improovement (17.07.2010)

I noticed there is a tiny, but not unimportant design flaw - I'm
surprised no one else mentioned it so far: The output amplifier gain is
too high. That means, the output will clip hard and nasty way before
the scanning transistors go into soft limiting action. Ok, there is a
lot of ugly/hard clipping gear out there, so probably that's the reason
nobody complained, but that's not the way I normally design my audio circuits.
My apologies. - Fortunately, this can easily be fixed, by just changing
two resistors. What has formerly been 13k, should now be 4k3. I won't
redraw the schematics diagram, but here is a correction of the PCB
layout (applies to all versions):