September 7, 2018 at 2:10 pm #19814Bill LearParticipant
This preset is meant to be an example of how to model the doppler effect
of a moving source that emits a sound as it passes an observer.
Without going into the details of the math behind it, as the source
starts off toward the observer, the frequency of the sound is
increased proportionate to the speed of the source in the direction of
the observer. As the source approaches, the frequency of the sound
heard by the observer at first slowly drops, and the closer the source
comes to the observer, the faster the frequency will drop, until the
point at which the source passes by the observer, when the frequency
heard by the observer is briefly exactly that emitted at the source.
As the source passes, the frequency rapidly drops, then drops more
gradually as the source recedes.
For example, if a train one mile distant, blowing its horn
continuously at 400Hz, travels at 525 feet per second (a very, very
fast train) toward an intersection from which an observer stands at a
distance of 300 feet, the train will take approximately 10 seconds to
reach the intersection. Initially, the horn will sound to the
observer as if it were blowing just above 760Hz, and as it gets the
the intersection it drops very rapidly through 440Hz and as the train
recedes, down to just about 310Hz.
In addition to the change of the frequency, the volume of the sound
increases as the train approaches, reaches its maximum at the
intersection, and decreases as the train recedes.
Other secondary effects are the distortion of the sound when it is
farther away, due to atmospheric effects (changes in air density,
temperature, dust, water vapor, etc.), and the lessening of this
distortion as the train passes through the intersection.
Following is how I set up Serum to model this phenomenon.
LFO 1 embodies the change in frequency heard by the observer, and has
the characteristic S-curve shape of a doppler shift in frequency. It
is used to modulate the coarse tuning of the main oscillators.
Env 1 is set to increase linearly over 2 seconds to a maximum, and
then decrease linearly over 2 seconds, with a long release of six
seconds. This is characteristic of the change in volume of the sound
as the train approaches, passes, and recedes.
In addition to the modulating the levels of the two main oscillators,
as it does by default, Env 1 is used to modulate the following:
o The cutoff level of the filter which is set to its default shape
(12dB lowpass). This simulates attenuation of higher frequencies at a
distance (again, due to atmospheric effects).
o The Drive of the Distortion FX (set to default Tube). With the
modulation inverted, this simulates greater overall distortion of the
sound at a distance which decreases as the train approaches, then
increases as it recedes.
o The Mix of the Distortion FX. This helps keep the overall loudness
that comes from the distortion effect relatively constant.
o The level of the sub — this increases low frequency volume as
train passes, perhaps simulating the physical effect of a train
transmitting more energy through the earth to the observer as it gets
o The level of the noise oscillator, which is routed through the main
filter. This adds a bit of high-end sizzle as the filter opens (train
LFO 2 is used to modulate the amount of reverb, as a ramp function.
This allows the sound to linger, as if bouncing off of nearby
My initial efforts to synthesize a train horn sound were not very
successful. I happened to be watching Dan Worrall give an
introduction to the Repro-5 synth on YouTube
(https://www.youtube.com/watch?v=UVruPLS53ys) when he created a sound
that seemed a decent approximation to a train horn sound.
Even though I have Repro-5, I decided to try to recreate what he had
done, with a slight variation, in Serum.
Essentially, Worrall used unison mode with two oscillators, each with
two voices and detuned the first oscillator’s two voices apart from
each other by 4 semitones, a perfect third, and then tuned the second
oscillator’s first of two voices up by 7 semitones (a fifth) and the
second up by 11 semitones (a seventh), thus creating a chord
consisting of the root and major third (oscillator A) and the fifth
and seventh (oscillator B), which is a major seventh chord.
Worrall also changed the global tuning, to ensure that the lowest
voice played what he played on the keyboard. This is because when you
detune the voices, it detunes them plus and minus from the central
frequency associated with the note being played. So, for example, if
you detune the two voices by a maximum of two semitones, and you play
an A on the keyboard, you will hear a lower voice of A minus one
semitone, and an upper voice of A plus one semitone.
Since Worral tuned the first oscillator’s voices by 4 semitones (plus
and minus 2 semitones), he bumped the global tuning up by 2 semitones.
Here is a summary his tuning of the voices:
A first voice: -2 semitones detune +2 semitones global tuning = 0
A second voice: +2 semitones detune +2 semitones global tuning = 4
B first voice: oscillator frequency up by 7 semitones, -2 semitones
detune +2 semitones global tuning = 7 semitones
B second voice: oscillator frequency up by 7 semitones, +2 semitones
detune +2 semitones global tuning = 11 semitones
To set the range of detune for the oscillators in Serum I set unison
for both oscillators to 2, then turned up detune all the way (by
default it detunes by a max of 2 semitones). Then, on the Global tab,
I changed the max range of detune for oscillator 1 from 2 semitones to
4 semitones, and left that for oscillator B at its default of 2
Since I had read that some train horns were essentially a more
dissonant major sixth chord, I tuned the second voice of the second
oscillator up by 9 semitones instead of 11.
Instead of using global tuning, I just tuned the oscillators up to
get the proper chord. Here is a summary of my voice tunings:
A first voice: oscillator frequency up by 2 semitones, -2 semitones
detune = 0 semitones
A second voice: oscillator frequency up by 2 semitones, +2 semitones
detune = 4 semitones
B first voice: oscillator frequency up by 8 semitones, -1 semitone
detune = 7 semitones
B second voice: oscillator frequency up by 8 semitones, +1 semitone
detune +2 semitones global tuning = 9 semitones
Set BPM to 125, play a note that lasts about 2 seconds, until Envelope 1
hits its maximum, then release.
I don’t think the train horn aspect of this is terribly convincing,
perhaps someone here can figure out a better approach.
I’m sure more tweaks could make this better, but I’ll leave that to others.
The Serum patch is attached.
You must be logged in to access attached files.
You must be logged in to reply to this topic.