DIGITAL AUDIO SYSTRMS: FINAL REVIEW

Adrian Clarke 306164981(SID)

Digital Audio Systems, DESC9115, Semester 1 2012 Graduate Program in Audio and Acoustics Faculty of Architecture, Design and Planning, The University of Sydney

Vibrato as an instrumental effect performed by musicians has been around for centuries in various genres to help musicians and composers add warmth and expression to a sound. During the 1950’s came the development of electronic analogue effects units, part of a greater family of modulated delay based effects that would follow, such as and flanging [1]. With the technological advances of solid‐state circuitry and digital signal processing (DSP) the implementation of vibrato as an effect has continued to evolve. Vibrato can be defined as a periodic variation in time of pitch, above and below the fundamental frequency of a sound [2]. The two fundamental parameters used to control a vibrato effect are the delay length (this determines the amount of pitch variation) and the rate at which the pitch is varied. The delay length (often referred to as depth) is typically an average of between 5‐10ms causing a variation of less than a semitone. The rate of vibrato is the frequency of the low frequency oscillator (LFO) used to modulate the delay length and is typically 5‐ 14Hz [3].

Problem Description Whilst depth and rate are the fundamental elements that go into creating a vibrato effect there are other ways we can modify the sound to get different results for different purposes. A limitation of most other vibrato effects, whether digital or analogue, is that they only offer control of these parameters. This limits the ability to truly customise the sound of your vibrato effect. An example of this would be most vibrato effects only offering the use of a sinusoidal signal to modulate the delay length. Although a sine wave produces a smooth sounding vibrato in some instances, it will not provide the desired result for every application. If one wanted to create vibrato akin to that made on an instrument such as a , a sine wave used to modulate the delay length would sound too even and would not match the subtly quasi‐periodic nature of how an actual violinist would perform a vibrato. The addition of a modulating signal that shifts around a central frequency in a random nature would help to ‘humanise’ a vibrato sound and also better enable the vibrato effect to match the vibrato created by a stringed instrument such as a violin. The addition of various other types of modulating signal would also be an improvement over conventional vibrato effects and could be useful in the creation of electronic music, creating a more unusual electronic sounding vibrato effect.

One of the unique parts of the vibrato sound of an instrument such as a violin is that the vibrato is happening independently of the instruments own unique resonant structure (or formants). As the pitch shifts above and below the centre frequency the formants remain stationary causing subtle variations in amplitude for different frequencies. Another limitation of existing vibrato effects is that they apply vibrato to the entire sound including the formants, causing certain instruments to sound unnatural when vibrato is applied. A vibrato effect that left the formants of a recorded instrument intact would be of great benefit to creating a natural sounding violin (or other stringed instrument) vibrato. Specification

The problems and limitations outlined above are what I hope to overcome with the vibrato tool that I have created. My tool applies a vibrato to an input wave by modulating the delay length with an LFO. The solution I have created has been adapted from more traditional vibrato effects with the purpose of trying to create a more realistic natural vibrato sound, particularly with the violin in mind whilst also offering a wider range of control parameters to foster experimentation and aid in the creation of new and interesting sounds.

In addressing the goal of recreating a realistic violin vibrato my solution utilises a technique known as Linear Predictive Coding (LPC). Originally developed as a tool for processing speech, LPC takes an input wave and separates the excitation sound (source) from the formants (filter). This allows us to apply vibrato only to the excitation of a sound, leaving the position of the formants static. It has been included so that when an instrument such as a violin is processed, its complex resonant structure is left unaltered by the vibrato, as it would be when vibrato is performed acoustically on a violin [4]. LPC uses inverse filtering to remove the formants from the input signal, estimating the intensity and frequency of the remaining buzz. By approximating the inverse of the filter that will eventually be used for synthesis, LPC analysis should give us just the excited signal. The effect of the spectral envelope is cancelled out by the inverse filter that is itself then inverted to create the filter used for resynthesis [5][6]. In addressing the second goal of creating a vibrato that more accurately matches how a human player would perform a vibrato on an instrument such as a violin, two different types of modulating signal have been provided with this aim in mind. These two modulating signals are created by filtering noise (fractal noise and white noise) to a specified frequency, the aim of this being to create a quasi‐ periodic variation in frequency that is again more akin to a vibrato performed by a human. Aside from these two types of modulation that have been included for the specific purpose mentioned above, I have also provided the choice of sine, square and sawtooth waves as modulating signals. These other types of modulation are included to allow user experimentation and to provide a more full featured vibrato unit appealing to a wide range of users. Implementation I have implemented the proposed solution to the limitations of existing vibrato effects units using the program Matlab and titled it ‘Vibratool.m’. The code is complete and works as specified, requiring only for a graphical user interface to be designed to easily alter the input parameters affecting the sound of the vibrato. The first stage of my solution executes the LPC analysis of the input signal and separates the “source” part of the input which can then have vibrato applied, the “filter” part of the LPC analysis constitutes a variety of coefficients representing the frequency and intensity of the input that are then used on the output for resynthesis. The two functions used for LPC analysis are called proclpc and synlpc and have been taken from Matlab’s AT2 Toolbox. Figure 1 is taken from The Computer Music Tutorial by C. Roads and shows a visual representation of the separation of source from filter during LPC analysis.

Figure 1. Relation of formant and inverse filters. (a) Result of formant filter. (b) Result of inverse formant filter. (C. Roads, “The Computer Music Tutorial”)

The second stage of my solution is where the modulating signal is created based on what the user has selected. There are five options for modulation type specified by the input parameter ‘type’ with the range 0‐4. As mentioned previously the five types of modulating signal are filtered fractal noise, filtered random noise, sine wave, square wave and sawtooth wave. The first two are created from functions adapted from William Martens (‘get_LP_filtered_mod.m’, ‘M_fq2coef.m’, ‘normsig.m’ and ‘randsig’). The input parameter ‘frequency’ specifies the frequency of the modulating signal with a useful range for vibrato of around 5‐14Hz [7]. In the case of the two filtered noise modulating signals the input parameter ‘q’ is used to determine how wide or narrow the filter is that filters the noise to the desired frequency, a higher value for ‘q’ gives a sharper filter with a the useful range being 15‐60. Figure 2 shows a comparison between a straight sine wave signal and filtered fractal noise, both with a frequency of 5Hz and the latter with a q of 15. As can be seen the filtered noise is quasi‐ periodic and more accurately represents the subtle variations created by a human playing a violin. Another input parameter ‘fade’ also allows a choice of between 0‐3 seconds of fade‐in for the modulating signal, this also contributes to humanising the vibrato sound.

Figure 2. Comparison showing the difference between a sine wave modulating signal and filtered fractal noise. A low ‘q’ value of 15 has been used to better highlight the difference between the two. Both signals have a frequency of 5Hz.

The next stage is then to apply vibrato to the source component of our earlier LPC analysis. The code for the vibrato component of my solution has been adapted from Udo Zoelzer’s book DAFX and the underlying principles of which are shown mathematically in Equation 1. The output is purely the input x(n) being delayed by M samples to create the output y(n) [3]. M in the equation is chosen by the input parameter “width” and is a value in seconds, the optimum values depend on the application but usually around 2ms‐10ms with the lower end of the range advised for a violin. The value of width is then modulated by the modulation signal created earlier which is what gives us our vibrato effect. � � = �(� − �) Equation 1. Equation of a vibrato effect.

The final stage is for our “source” signal, which now has vibrato applied, to be resynthesised with its “filter” component. “Violin_openD.wav” has been provided to experiment with the various parameters for evaluation purposes. Evaluation By specifying a range of recommended values for all parameters, we can easily test our max and min values for each parameter in multiple combinations. We can then be assured that our solution meets our engineering specs for our specified ranges. We do not guarantee that our program will provide useful results (or results at all) for values outside of the specified ranges but by allowing the end user to try different values we believe this allows more room for experimentation and provides opportunity to create results not originally intended but that could be nonetheless useful. There are many instances of new effects emerging from an incorrect application of what is currently available and our goal is to in no way limit the user from the pursuit of this goal.

In terms of evaluating for a user group it is advised to set up some listening experiments with a variety of people with a background in music or music production. With a focus on evaluating the input parameters designed to emulate the acoustic vibrato of stringed instruments, particularly the violin. Listeners should be submitted to a blind listening test of sound samples, some of which are performed vibrato and some of which are sounds that have been processed using my solution and we can then ask them to assess each sound. The basis for assessment should be to rank how natural each sound is, whether they believe it has been processed in any way and how pleasing they find the sound to be. This should give us an understanding of whether we have succeeded in our end goal.

References [1] Zack Engineering, “Vibrato or Tremelo?” Internet: http://www.vibroworld.com/magnatone/vibrato.html, Updated 30 January 2000 [accessed 1 March 2012]

[2] D Hunter, Effects Pedals: The Practical Handbook, Backbeat Books, 2004. Available: http://www.gibson.com/en‐us/Lifestyle/Features/vibrato‐ ‐octave‐divider/

[3] A Clarke, Digital Implementation of Vibrato, 2012 May 1st, Available: http://ses.library.usyd.edu.au/handle/2123/8302 [4] A Clarke, Lab Report 2, 2012, Available: http://ses.library.usyd.edu.au/handle/2123/8331 [5] Wikipedia. “Linear Predictive Coding.” Internet: http://en.wikipedia.org/wiki/Linear_predictive_coding [6] C. Roads, The Computer Music Tutorial, MIT Press, 1998. [7] Udo Zölzer, “Delays”, in DAFX: Digital Audio Effects. West Sussex: John Wiley & Sons, 2002, Chapter 3, pp. 63‐73.