GUIProject
GUIProject
net/publication/345081619
CITATIONS READS
0 836
3 authors, including:
Josia Jacob
University of South Florida
6 PUBLICATIONS 1 CITATION
SEE PROFILE
All content following this page was uploaded by Josia Jacob on 31 October 2020.
The main objective for this project was to create a Graphical User Interface (GUI) through
MATLAB in order to process audio files. Through the GUI, we used convolution and filtering to
create sound effects in the input audio files and then we plotted the power spectral density of the
Project Approach
An impulse response of a system can be described as the output signal of a system when
an impulse is added to the original or input signal. When it comes to audio, an impulse response
is usually used in order to add reverb to an audio file, or alter it in a way that is useful to the user.
The technical definition of convolution is that it is an integral of the product between an input
signal and a filter. Basically convolution is used to combine two different signals into one output
signal and has characteristics of both input signals. For this project, we used convolution to
combine the input audio file (such as a song) with the impulse responses audio files of cathedral,
cave, and stadium to produce an altered output audio signal that has the characteristics of both the
GUI Development
To create the GUI through MATLAB, we used the App Designer application that already
is embedded into the MATLAB program. The App Designer allows users to create apps by being
able to edit the visual representation of the GUI and be able to configure the functions of the
different components that the user adds to the GUI. On the visual representation of our GUI, we
added four different Graphs, the top two are used to see the input audio file in the time domain and
frequency domain and the bottom two are used to see the output audio signal after the audio file
has been processed through convolution and filtering in the time and frequency domain. We also
added six different push buttons, five of which are used for the different ways the audio file is able
to be altered, such as if the user wants the audio file to sound like it is being played in a cathedral
or a karaoke version of the audio file. When these buttons are pressed the output audio will start
playing and the graphs for the time and frequency domains will be displayed. The last button is a
stop button, this is used when the user would like to stop the audio from playing. We also added
in multiple text boxes in that allows the user to add in measurements for frequencies, gains and
orders of filters.
The way the GUI should work is that an audio file will be put into the interface. The GUI
would then read the audio file and be able to produce a plot in the time and frequency domains.
The user then has the choice of whether they want the output audio to sound like if it is being
played in a Cathedral, a Cave, a Stadium, a karaoke version or with no instrumental music (voice
only). Each button is configured to process in order to get the intended effect. So when the user
pushes the desired button, the GUI will go through the process of altering the input audio file and
display the input and output audio signals on the corresponding graphs for visual representation of
the GUI. At the end, the user is also able to press the stop button in order to stop the output audio
from playing. For the Karaoke and Off-Instrument options, the user is able to input values for the
different frequencies, gain and order of filters into the GUI. We can then use these values to help
filter out the audio file in order to have it sound the way the user would like.
Demonstration
Cave
Cathedral
Stadium
Karaoke
Off-Instrument
Conclusion
While working on this project we were able to learn more about graphical user interfaces
and audio processing through MATLAB. For instance, we were able to learn how to efficiently
create a GUI through MATLAB. There are two different ways to create a GUI in MATLAB, either
through GUIDE or App Designer. At first we tried to create it through GUIDE, but we soon
realized that App Designer is more efficient when it comes to GUI development simply because it
allows the user to have more component options for when they are building the visual
representation of their GUI. Also the code file for the GUI is easier to understand on App Designer
than the one in GUIDE because it has all the component laid out in order and allows the user to
add the functions for the components just by adding a callback. We also were able to learn more
about the different functions on MATLAB, such as how to utilize Fourier transformation in order
to graph the frequency domains for the input and output audio files. Also, we learned how to use
convolution to create sound effects for the input audio signal using brief input audio sounds.
Overall, this project was a great opportunity to gain more experience with GUI and MATLAB and
to learn more about how they can go hand in hand when it comes to creating Apps and other web
applications.
References