Approximating real-world timbres in the Vibro Wavetable Synthesizer Rack Extension
Posted: 21 Jul 2016
(This is tutorial is specific for the Vibro Wavetable Synthesizer, https://shop.propellerheads.se/product/ ... nthesizer/)
Hi!
In this short tutorial, I will try to explain how some of Vibro's bell-like patches (such as the "Big Ben" patch or the two "Prayer Bowl" patches) were constructed by analysing real-world recordings.
Vibro's custom wave editor allows you to sculpt a sound by adding together sine waves. In Vibro, these sine waves are referred to as "harmonic partials", which is another way of saying that their frequencies are integer multiples of the root note (that is, the MIDI note you are playing). Now, most sounds where you can hear a clear tone usually contains a number of prominent “spikes” in their frequency spectrum. And for many pitched sounds, these spikes are at integer multiples of some root frequency (or at least reasonably close). If we know the frequency and amplitude of these spikes, we can create someting in Vibro's custom wave editor that sounds similar.
For example, here is an image of an audio spectrum (which I found by Googling) with six prominent peaks between 0 and 5 kHz:
So let’s say that we have a mono recording of a bell. If we open that recording in an audio editor like Audacity (which can be downloaded for free from http://www.audacityteam.org), we can select a short section of the recording where the pitch and timbre is stable and use Audacity's frequency analysis window to examine the frequency spectrum. If the sound is relatively free of noise, there should be a number of obvious spikes in the spectrum.
Let's assume that the first six spikes we see are at about 215 Hz, 388 Hz, 517 Hz, 732 Hz, 904 Hz, and 1120 Hz. If we take the lowest spike to be the root pitch of the sound, we can divide the frequency of each spike by that root pitch:
215 / 215 = 1.0
388 / 215 = 1.8
517 / 215 = 2.4
732 / 215 = 3.4
904 / 215 = 4.2
1120 / 215 = 5.2
In other words, we would like to set a non-zero amplitude for partials 1.0, 1.8, 2.4, 3.4, 4.2, and 5.2 in Vibro's custom wave editor. Unfortunately, we can’t do that since all partial numbers in Vibro are integers! But what if our bell sound had been pitched three octaves higher? Let’s multiply the spike frequencies by 8 (i.e., three octaves up) and see what that gives us:
8 * (215 / 215) = 8.0
8 * (388 / 215) = 14.4
8 * (517 / 215) = 19.2
8 * (732 / 215) = 27.2
8 * (904 / 215) = 33.6
8 * (1120 / 215) = 41.6
If we round those numbers to the nearest integer, we get partials 8, 14, 19, 27, 34, and 42. So if we set these partials to the appropriate amplitudes and then tune the oscillator back down three octaves (by setting Vibro's OCT knob for the oscillator to -3), we will get a spectrum that’s reasonably close to the one in the recording!
The thing that remains to be done is to figure out what amplitudes we should use for the partials. Vibro’s partial editor shows decibels on the right-hand side, so we can use Audacity (or whatever audio editor you prefer) to increase the volume of the recording so that the highest spike ends up at 0 dB. Then, for each spike, we can check what its amplitude is (in dB) in the audio editor and set the same amplitude for the corresponding partial in Vibro. Voila!
The more partials we include, the closer to the original recording we will get, though it’s usually more difficult to spot the peaks in the higher frequencies, and their amplitudes are usually so small that you can’t set them properly in Vibro. Once the peak amplitudes go below, say, -30 dB it doesn’t make a lot of sense to try to include them.
Of course, no real-life sounds have a completely stationary timbre - the frequency spectrum usually evolves a fair amount over short periods of time. The really fun part begins when you have a recording of something where the timbre changes noticeably over time. With such a sound, you can pick four different points in time in the recording and repeat the above procedure and store the results in the four different wave slots of an oscillator in Vibro. That allows you to “evolve” the sound from the first timbre through to the fourth by turning the oscillator's POS knob (or by modulating it). And for even more complex sounds, you can use all four oscillators and put different timbres in each of the 16 slots!
You will probably discover that this technique for creating timbres works better for some sounds than others. But regardless of how similar the results are to your recording, you'll probably end up with interesting timbres!
Have fun!
Gustav
Hi!
In this short tutorial, I will try to explain how some of Vibro's bell-like patches (such as the "Big Ben" patch or the two "Prayer Bowl" patches) were constructed by analysing real-world recordings.
Vibro's custom wave editor allows you to sculpt a sound by adding together sine waves. In Vibro, these sine waves are referred to as "harmonic partials", which is another way of saying that their frequencies are integer multiples of the root note (that is, the MIDI note you are playing). Now, most sounds where you can hear a clear tone usually contains a number of prominent “spikes” in their frequency spectrum. And for many pitched sounds, these spikes are at integer multiples of some root frequency (or at least reasonably close). If we know the frequency and amplitude of these spikes, we can create someting in Vibro's custom wave editor that sounds similar.
For example, here is an image of an audio spectrum (which I found by Googling) with six prominent peaks between 0 and 5 kHz:
So let’s say that we have a mono recording of a bell. If we open that recording in an audio editor like Audacity (which can be downloaded for free from http://www.audacityteam.org), we can select a short section of the recording where the pitch and timbre is stable and use Audacity's frequency analysis window to examine the frequency spectrum. If the sound is relatively free of noise, there should be a number of obvious spikes in the spectrum.
Let's assume that the first six spikes we see are at about 215 Hz, 388 Hz, 517 Hz, 732 Hz, 904 Hz, and 1120 Hz. If we take the lowest spike to be the root pitch of the sound, we can divide the frequency of each spike by that root pitch:
215 / 215 = 1.0
388 / 215 = 1.8
517 / 215 = 2.4
732 / 215 = 3.4
904 / 215 = 4.2
1120 / 215 = 5.2
In other words, we would like to set a non-zero amplitude for partials 1.0, 1.8, 2.4, 3.4, 4.2, and 5.2 in Vibro's custom wave editor. Unfortunately, we can’t do that since all partial numbers in Vibro are integers! But what if our bell sound had been pitched three octaves higher? Let’s multiply the spike frequencies by 8 (i.e., three octaves up) and see what that gives us:
8 * (215 / 215) = 8.0
8 * (388 / 215) = 14.4
8 * (517 / 215) = 19.2
8 * (732 / 215) = 27.2
8 * (904 / 215) = 33.6
8 * (1120 / 215) = 41.6
If we round those numbers to the nearest integer, we get partials 8, 14, 19, 27, 34, and 42. So if we set these partials to the appropriate amplitudes and then tune the oscillator back down three octaves (by setting Vibro's OCT knob for the oscillator to -3), we will get a spectrum that’s reasonably close to the one in the recording!
The thing that remains to be done is to figure out what amplitudes we should use for the partials. Vibro’s partial editor shows decibels on the right-hand side, so we can use Audacity (or whatever audio editor you prefer) to increase the volume of the recording so that the highest spike ends up at 0 dB. Then, for each spike, we can check what its amplitude is (in dB) in the audio editor and set the same amplitude for the corresponding partial in Vibro. Voila!
The more partials we include, the closer to the original recording we will get, though it’s usually more difficult to spot the peaks in the higher frequencies, and their amplitudes are usually so small that you can’t set them properly in Vibro. Once the peak amplitudes go below, say, -30 dB it doesn’t make a lot of sense to try to include them.
Of course, no real-life sounds have a completely stationary timbre - the frequency spectrum usually evolves a fair amount over short periods of time. The really fun part begins when you have a recording of something where the timbre changes noticeably over time. With such a sound, you can pick four different points in time in the recording and repeat the above procedure and store the results in the four different wave slots of an oscillator in Vibro. That allows you to “evolve” the sound from the first timbre through to the fourth by turning the oscillator's POS knob (or by modulating it). And for even more complex sounds, you can use all four oscillators and put different timbres in each of the 16 slots!
You will probably discover that this technique for creating timbres works better for some sounds than others. But regardless of how similar the results are to your recording, you'll probably end up with interesting timbres!
Have fun!
Gustav