- use the Source
Sound design tutorials
(part 4 section III)
Page contains some sound design tutorials in PureData.
Sponsored by the number 1.844674e+19
Motor sounds are essential for all types of machine noises,
sliding spaceship doors, drills, killer robots and much more. There are
many motor designs, some use AC electricity, some use DC, some have a
rotor that surrounds a stationary core, some are normal axle motors,
some work on 3 phase power, some have brush contacts, others do not. We
will consider only one kind of motor but we will try to make our
generic motor sound be able to produce a wide range of effects like
other designs too. Let's quickly look at the operational theory. The
rotor is the bit that spins, it's usually in the middle and connected
to an axle. It has a coil wound around it and so is often the heaviest
component. The stator, that's the outside bit that stays still is a
cylinder of permanent magnets or coils. The rotor is held in the middle
by an axle fixed by two plates, the dimes, one at each end, which
usually have some kind of bearing to lubricate the axle. The typical DC
motor works by having two or more brushes which conduct power to the
rotor coil through a broken, slotted ring called the comutator. Lastly
the motor has some kind of housing or frame which will resonate.
The speed of a motor is a very important feature of its sound.
Because the rotor is heavy its mass means it takes a while to build up
angular velocity, the lighter and smaller the motor the faster this
usually happens. A big heavy motor, or one under a lot of load will
take longer. However in all cases we observe a certain shape. When the
motor is spinning slowly a big current flows through it and its torque
is very high. Its angular acceleration is high at this point. After a
while it reaches an optimal speed, even when not loaded, where it won't
spin any faster. As it approaches this point the torque and the change
in angular velocity decreases and flattens off at the motors top speed.
When the power is removed the decay in speed is almost perfectly linear
since only friction and load, which are constants, act against it.
The noise source is much too wide in spectrum, so lets use a few filters to bash it into a more banded metallic spectrum.The result now is getting better. On it's own it represents what the brushes on the comutator might sound like up very close.
FM as resonance
We need to model the body of the motor now, the effect that each pulse of rotational force has on the metal stator and housing. I'm going to use a bit of FM to get a cluster of sidebands. If we were to feed the phasor into a [cos~] function we would get a sinewave output, but that's much too clean. Instead lets modulate the carrier signal with another signal at a few hundred Hz to get a metal ringing sound. Normally we use FM by changing the modulator and modulation index to affect the sidebands in a signal. In this patch we doing something more unusual. The index and modulation frequency stay fixed while the carrier signal, our rotor sound, moves up and down. What we get is an effect that we hear in engines and motors quite a lot, as the speed hits certain frequencies it sets the body frame resonating, causing higher frequency sounds like rattling to happen, but as it moves past this resonant peak the rattle fades out. There are usually many points at which a resonant peak occurs so as the motor speeds up or slows down we hear these undulations of tone coming and going in slow waves. To make it work well we need to carefully control the spectrum of the carrier signal so I've added a filter. It's a [vcf~] because we have an audio rate signal to use as our center frequency parameter. This makes a bandpass which tracks the rotor pulses up and down and restricts the range of harmonics getting to the FM section, and hence the sidebands produced. The clip unit is something I found useful too. By clipping the rotor we can get more odd harmonics. We named this control fader "hardness" as it changes how hollow or solid the sound seems. Using a combination of "resonance", "hardness" and "harmonics" controls a very wide range of apparent body sizes and tones can be achieved. The last change to this stage is to add a [sqrt~] unit to the amplitude modulator, it makes the sound louder at low speeds so we get a more even volume. Notice also that the patch is less clttered by subpatching the metalic filters for the brush sound. The audio example demonstrates some different settings of resonance and harmonics.
Finally we want a slightly less brash and heavy sound, the loudness of the motor increases too much with its speed and it sounds much too bright at high speeds. A gentle resonant filter after the FM process helps to create the more mellow sound , it acts like a housing for our motor. Notice that I changed the frequency scaling immediately after the [ead~] unit to do this, there is an extra [*~ 0.125] just before the phasor. One very last thing to improve the range of effects is to modify the metallic noise source so we can change the size of the brush-comutator sound a bit. That gives us nine controls in total.
Subpatching the whole motor
Creating unique motors
Here is how we might go about using our motor patch. The control sliders we had in the previous versions have been pulled out of the subpatch and now make a "programmer". A pack unit combines all the slider settings into a single list. Notice the required trigger unit to make sure the list is rebuilt each time a slider moves. Using the "set" command in a message with dollar substitutions lets us store the good settings we discover in a new message as a list. This is the simplest form of "patch memory" we can make in Puredata. When you get settings you like just copy the message containing the numbers to use later.
Improvements and variations
A bunch of motors and a simple sequencer make a more complete scene. Note the wide range of sounds we can obtain with this patch. I haven't really stretched the use of parameters at all so have a play with the programmer patch yourself and see what kind of weird motor like sounds you can get.
Audio .mp3 Puredata file .pd
to the NEXT SECTION or back to the tutorials list or main page