- April 9, 2020
ECS623/730 Digital Audio Effects Assignment 2
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
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.
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,
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
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:
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.