top of page
Vibrato Oscillator

The vibrato oscillator effects the time, amplitude, and frequency of the output signal over time. It is controlled by two knobs as shown in Figure 1.

2274200000_amp_ctrlpnldtl_001_nr.jpg

Figure 1.

In order to understand the effects of the speed and intensity knobs, we completed a process similar to that of the tone-stack because we knew this effect should also be linear time-variant and could be modeled as amplitude modulation. We took recordings of the amplifier with white noise as the input and varied the speed and intensity from 1-10 individually. Figures 2-3 describe the data that we gathered surrounding these knobs. 

TremeloIntensity.png

Figure 2. Intensity Knob Variatons 1-10.

TremeloSpeed.png

Figure 3. Speed Knob Variatons 1-10.

In studying the vibrato effect, it seemed clear that amplitude modulation with different speeds and gain factors would be an effective way to create this effect. First, we decided to analyze the shape of the modulation. It was clear from Figures 2-3 that the shape of the modulation was not exactly sinusoidal. We used the Matlab smoothing function and afterwards strategically selected a range of samples from the recording with speed 5 intensity 10 that seemed to best represent the general shape that was shown by the full recording. Figure 4 shows the full recording smoothed and the sample range used for the fit.

TremSmoothed.png

Figure 4. Smoothed Samples and Range to Fit

We then explored the Matlab fit function with various Fourier sizes and how good the fits were. Figure 5 shows the plots fitted with Fourier 1, 2, 4, and 8 as well as Matlab's "goodness of fit" (gof) statistics for each. We ended up using the Fourier8 fit for the shape of our amplitude modulation.

TremShapeF.png

Figure 5. Various Fourier Fits.

Screen Shot 2022-04-14 at 10.55.01 PM.png
Screen Shot 2022-04-14 at 10.55.09 PM.png
Screen Shot 2022-04-14 at 10.55.19 PM.png
Screen Shot 2022-04-14 at 10.55.25 PM.png

Figure 6. Goodness Of Fit Statistics.

Next, we wanted to analyze the range of frequencies that were used in the amplitude modulation effect. We used the fit function on the magnitude plot of the data to estimate the frequency of the modulation at speed 1 and speed 10. Figure 7 shows the resulting frequencies and Figure 8 shows the input/output relationship determined by plotting the frequency of speeds 1-10 also using the fit function. The goodness of fit statistics are also included here.

TremFreqs.png

Figure 7. Frequency Fit.

TremFreqFit.png
Screen Shot 2022-04-14 at 11.10.21 PM.png

Figure 8. Input/Output Relationship Fit and gof Statistics.

We repeated a similar process to analyze the intensity ranges for the gain before the modulation effect. First, we smoothed the data with a rather large smoothing factor to get a better idea of what the difference actually looked like between high and low amplitude, as shown in Figure 9. We then took the range of each signal with intensity 1-10 and again used the fit function to create an input/output relationship. Figure 10 shows the resulting relationship, equation, and goodness of fit.

TremIntensityRange.png

Figure 9. Plots of Intensity Ranges.

TremIntensityFit.png
Screen Shot 2022-04-14 at 11.17.24 PM.png

Figure 9. Plot of Range I/O Relationship and gof Statistics.

After all of this analysis, we were finally able to write a Matlab function for the vibrato effect that took a matrix of the samples, the sampling frequency, a speed value, and an intensity value as the input, and output a matrix of samples including the effect. Below is an image of the Matlab code of the equation as well as a downloadable link with the .m file including function. Notice how we applied the amplitude modulation as we learned in our coursework through matrix multiplication.

Screen Shot 2022-04-14 at 11.27.33 PM.png

Figure 10. Resulting Matlab Function for Vibrato Effect.

Finally, below are examples of the output that we ended up with compared to the output we recorded directly from the amplifier. It is important to note that these files were created using the completely dry signal of a slightly different recording, so any frequency content differences are from other aspects of the amp and are not apart of the function of this effect. However, even though the recordings are slightly different, the onset of any note on the guitar is all that is needed to get a good idea of the effect.

Speed=1 Intensity=10

Recorded

Calculated

Speed=5 Intensity=1

Recorded

Calculated

Speed=6 Intensity=10

Recorded

Calculated

Speed=5 Intensity=6

Recorded

Calculated

Speed=10 Intensity=10

Recorded

Calculated

Speed=5 Intensity=10

Recorded

Calculated

In general, I think the shape and speed of the calculated wave files compared to the recorded wave files sounds pretty accurate. The intensity feels more off and I think this is also apparent in the data analysis as well, as in that it looks like there is more variation purely because of previous processing changing the intensity inconsistently over time in the recordings that were analyzed. It made it look like there was more range at intensity 1 then there actually was and this was then apparent in the recreation. Overall, we are proud of the result and changes that are made would have to be made subjectively by someone who has an accurate ear and would likely not be made due to the analysis of data.

Video. With and without Vibrato

bottom of page