- April 9, 2020

ECS623/730 Digital Audio Effects Assignment 2

Instructions:

Implement and evaluate an original audio effect. Your effect should go beyond any of the

examples in class, but the content and behaviour of the effect is up to you. You could

consider modifying the operation of an effect discussed in class, combining elements

from multiple effects, creating an effect in a programming language we haven’t covered,

or doing something completely original. The effect should be built as a VST plug-in using

MATLAB and the Audio Toolbox.

Once you have created the effect, create various audio examples of its operation on

different source material. Include block diagrams explaining how the effect operates, and

figures to demonstrate that your effect works as indicated. 1. You can use Audacity

or Reaper or any other Digital Audio Workstation to apply your effect to a recorded file,

then analyse the result in your preferred software (Sonic Visualiser, Matlab, Python) to

generate plots.

Provide a short video explaining and demonstrating your work.

The assignment will be marked in terms of originality, effort and the quality of

implementation and operation.

Turn In:

Using the online submission system, submit a ZIP archive containing:

• Audio files of your effect in action. Include at least two examples, with both input and

output audio files.

• A short video of you presenting and explaining your work.

• Commented Code used to run the effect. Please make your code legible and easy

to understand! Please also indicate how your code should be compiled.

• PDF Report, approximately 8 sides of A4 total, though this could be more or less as

needed. Figures, tables and bulleted lists, can be used throughout. This should include;

1. Explain your effect’s motivation and implementation.

2. Classify your effect. For instance, is it linear, time varying, memory dependent, causal,

stable?

3. Provide a mathematical explanation of the effect. What is the relationship between

output and input (for some effects, it may only be possible to ‘sketch this out’)?

4. Use a block diagram to present the signal chain behind your effect. Refer back to

your analysis while describing components of the signal chain.

5. Describe any parameters used to control the effect.

6. Include at least two plots showing the effect’s operation, illustrating how the effect

works.

7. Describe how it sounds and how it is perceived.

8. Give a short evaluation of how well you think you implemented the model and how

it could be improved or extended in future work.

Helpful MATLAB Functions for analysis: (use the ‘help’ function to learn more)

[y, fs, nbits] = audioread(‘filename’) Read a WAV file from disk audiowrite(y, fs, nbits,

‘filename’) Write a WAV file to disk sound(y, fs) Play a vector as sound with sample rate fs

plot(), semilogx(), semilogy(), loglog() Linear and log-scale plot functions fft(x, n) Calculate

the FFT of length n. You might want to window the signal first. Also note that the fft is complex. Use

abs(fft(…)) to get the magnitude. A discussion of using fft() to generate spectra can be found here:

http://www.mathworks.co.uk/support/tech-notes/1700/1702.html

spectrogram(x, window, ‘yaxis’) Plot the spectrogram of x. If window is an integer, x is divided into that

many evenly-spaced segments. ‘yaxis’ places frequency on the y axis and time on the x axis, as it often

appears in audio analysis

(0:(length(x)-1))/fs For a signal x and sample rate fs, go from sample number to time. Useful for the x-

axis of time-domain plots.