DSP Implementation
501
in RPM. To get Hz from RPM we divide by 60, so a motor that spins at 30,000
RPM will give us a signal frequency of 500Hz.
Materials
The components of a motor significant to its sound are usually metals. Motors
with plastic parts are common in low-power toys, but not in heavy-load appli-
cations like robots or electric doors. We need to remember that much of the
vibrations happen because the motor is connected physically to some mounting
or other material. A motor held freely in the air or mounted with a well-damped
rubber grommet makes far less noise. Therefore, we need to keep the overall
physical system in mind when designing the sound of complex machines, by
coupling some of the sound from the motor to other parts.
Method
We will start by constructing an envelope generator that behaves correctly for
speeding up and slowing down. Everything is synchronous, so a single phasor
will drive the model. Brushes and sparks produce noisy clicks which will be
modelled with a modulated noise source, while the pulsing movement of the
housing will be obtained from a raised cosine waveform.
DSP Implementation
The speed envelope generator, figure 44.2a, is made up of two parts. It looks
a lot like the logarithmic attack-decay envelopes we have made before, except
for the growth and decay rates.
(a) Subpatch
(b) Graph
Figure 44.2
Speed control envelope.
502
Motors
Figure 44.3
Rotor.
Beginning with the output of
which produces a single rising line seg-
ment, multiplication by 2
.
0 and then splitting the signal around 1
.
0 gives us
two branches that will be summed. To obtain the attack portion we raise the
complement to the power 6
.
0. This provides a fast-growing curve that levels off
approaching 1
.
0 when inverted. The right-hand branch provides a linear decay,
simply by inverting the line slope. Because the result is below the zero line we
add 1
.
0 to turn it back into a positive envelope curve. If you wish, split this
envelope generator component into two separate pieces, one for switching on
and one for switching off the motor, so that you can hold the envelope level
constant indefinitely. As it is there’s no sustain portion, because we just want to
demonstrate the main features of this sound effect. The graph of this envelope
generator is seen in figure 44.2b.
In figure 44.3 is a subpatch for the rotor. A phasor on its own is much too
pitched, like the police siren sound we made in an earlier exercise. We want a
sharper, more clicking sound. To obtain this we use the usual trick of shaping
the decay of each phasor cycle by taking its square or higher power; in this
case the quartic decay (4th power) seems fine. By mixing a little constant DC
against the noise with
we can get a mixture of noisy clicking sounds for
the brushes and a more pitched sound for the rotor spinning. The first graph in
figure 44.3 shows a mix of band-pass filtered noise and DC. Passing the noise
through a 4kHz filter with a wide bandwidth tames it by removing all the high
and low components. Adding the DC gives us a noise signal raised above zero,
so that when it’s modulated by the modified phasor we get unidirectional spikes
of noise, as shown in the second graph.
Do'stlaringiz bilan baham: |