Professional Documents
Culture Documents
Summer Term B
i
Executive Summary
The purpose of this project is to provide musicians, audiophiles, and audio engineers an
audio comparison application. The main goal for this project is to empower musicians to make
This will be achieved by the main objective–to build out side-by-side graph comparisons of the
Musicians. Audiophiles, and audio engineers are a wide group of people with varying
diversity. According to the American Federation of Musicians, they represent nearly 80,000
musicians in the United States and Canada. The count refers only to professional musicians that
are part of this union, but the amount may be greater due to the open availability of music. Using
the audiophile subreddit, we can see that there are at least 1.8 million users. Musicians and
people who appreciate music can be anywhere in the world, so it is important to develop a
solution that makes people with more specific requirements able to make decisions that suit their
tastes. We expect users to be able to take this app into music stores and be able to record while
shopping.
ii
TABLE OF CONTENTS
PAGE
PART I
● INTRODUCTION .......................................................................................................................... 1
● FEASIBILITY ................................................................................................................................ 1
PART II
○ Overview ............................................................................................................................ 4
○ Platform .............................................................................................................................. 5
PART III
○ Timeline/Budget ................................................................................................................ 7
○ Discussion .......................................................................................................................... 9
REFERENCES ........................................................................................................................................... 11
APPENDIX ................................................................................................................................................ 12
1
Part I
Introduction
Our team plans on developing a mobile application that allows musicians to analyze and
compare the sonic characteristics of two different instruments. Once the user finds an instrument
they want to analyze, they will record themselves playing a chord or a few notes. Next, they will
record themselves on another instrument playing the same thing they did in the first recording.
This will allow the app to make a proper comparison of two instruments both playing the same
thing. The user will then be able to view side-by-side comparisons of the frequency spectrums,
the amplitudes, and the spectrograms of both instruments. The musician can then save the audio
Feasibility
Environmental Scan
Upon completing an environmental scan, there exists many different sound analyzing
applications. Searching the google app store with the terms ‘Sound Spectrum Analysis’ or any
variation of those terms, leads users to the Spectroid App. At the time of writing, Spectroid has
4.6 stars based on 11 thousand reviews and sitting at over 1 million downloads. Other apps
recommended are as follows: Audizr - Spectrum Analyzer, Advanced Spectrum Analyzer PRO,
Sound Spectrum Analyzer and the list goes on, but none of the apps share the same success as
2
Spectroid. On further review of all applications, a trend appears where only real-time analysis is
allowed for one instrument at a time. Spectroid, for example, analyzes real-time audio to
The Musical Instrument Acoustic Comparison app will differentiate from Spectroid and
other similar applications. The first difference is that our application will attempt to utilize four
different parameters for our sound analysis. Another difference, as you can see from our title, is
our application will provide a comparison between two similar instruments and return the results
of the comparison. The con to the approach we are taking is that it makes analyzing real-time
audio nigh impossible because we will be taking audio samples from two different instruments.
Our team believes this approach will allow users to record different samples while at a music
store, and make the best informed decision based on their needs.
Evidence of Need
The project is needed because it has the potential to optimize the decision making process
for musicians looking to purchase an instrument that meets certain criteria. This project will also
be useful to audiophiles trying to make informed decisions on audio peripherals. The range of
difference that two of the same instruments can have makes comparison paramount, lest the
consumer overpays for an instrument ill-suited for their needs. Music is a hobby loved by many
as made apparent by the 30 million users on the Music Subreddit and nearly 2 million users on
appreciators in the world, there is a huge market for musical instruments and music-related
peripherals. Musical instruments have a myriad of nuances that even the most well-trained ear
3
struggles to hear; those struggles can be alleviated via technology with only a few taps on their
phone.
Ethical Considerations
Mobile Applications have one obstacle to entry: Prospective users must have an
android-based phone with access to the internet. The necessity of owning a phone may impact
low-income individuals. However, programs such as the Federal Lifeline Assistance program can
distribute phones to the low-income population for free. Our specific application does have an
optional requirement of requiring instruments for sound analysis which may be difficult for
disadvantaged users, but the app would still be functional by using any saved recordings.
One ethical concern that comes to mind would be the accessibility for the blind. A lot of
smartphone applications that provide accessibility for the blind allows for text-to-speech
descriptions of many visual images or icons. As we will be comparing statistics between two
audio files, a lot of our comparisons will be heavily visual-based, and thus difficult to rely to
blind users. One possible work around would be to relay only the numerical differences between
the two files to the user through text-to-speech, if they require so.
Legal Considerations
One possible legal challenge may be the storage of a user’s audio and recordings. This
could potentially conflict with copyright laws if any of our users have a copyright to any audio
uploaded on the app. No other user will be able to hear or access another’s audio files, however
the storing them itself could potentially be an issue. One work around could possibly be a terms
4
and conditions page that a user must accept in order to use our app, and through said terms and
conditions we can gain formal permission to store any copyrighted material they want to upload
Our final product will be an android application available as a free download online. We
will provide a link for our client to download this application onto their mobile device upon its
completion, however it is not an end goal for the project to be uploaded onto the Google Play
Part II
Overview
The expectations user’s should have of our solution are that of a complete audio analysis
program for recording and analyzing short audio samples between two different audio sources.
The end user can expect the ability to record their own audio samples, load and playback the
audio snippets, make calls to analyze the two chose audio samples, and view a display of the
chosen audio samples. What the user is required to do is enable permissions on their device that
allow the device to record and save files to a created folder. The user is assumed to know basic
functions of a mobile application and have some knowledge of audio statistics to be able to
Platform
Our product will be created using several platforms, including SpringBoot for the
backend, and Ionic for the frontend. SpringBoot was chosen for the backend because of our prior
experience with it in another class, as it was a platform the team was all already familiar with.
Ionic was chosen because it is a cross platform toolkit that allows programmers to create mobile
applications using web technologies such as React and Node.js which our team members are
familiar with. Our app will most likely be used in music stores by musicians who wish to analyze
instruments before making a purchase, so it’s important that the app is mobile.
Major Functions
● Goals for usability test plan: Have target audience get hands-on experience and get
accustomed to our application; have users test the recording function, the loading audio
function to test audio selection and playback, the analyzing audio function to test sending
audio to our server, and the graphing audio function to test displaying the chosen samples
in a meaningful graph.
● Evaluation: Due to hands-on nature of the test plan, the test plan evaluation will be a
straightforward survey conducted by the team thats asks for feedback on the functional
● Procedure of actual project testing: One of our team members will physically go to a
music store to obtain real-life audio clips with the app. Using these clips, our app should
be able to compare the two. This form of testing can be repeated across different types of
Usability Testing/Evaluation
The app was tested by a team member and out client. Audio was able to be recorded and
played back. Two previously recorded audio files can be selected and played back. These two
files can be compared and graphed. Multiple trial runs have verified all these steps are
operational.
The results of the testing showed that all functionals were functioning and that navigating
between the screens was seamless. Issues arose with login functionality, but a workaround was
7
implemented to allow testing to continue. Everything recorded fine and it was noted that
Part III
Final Discussion/Reflection
Timeline/Budget
Our milestones for this project in large part were able to be met in the timeline. One
element of the time allotted that took more resources and time than previously anticipated would
be the integration of the front and back end of our project. We had previously estimated that it
would be able to be accomplished in a week, perhaps two if need be. However, the integration of
the front and back end ended up being a multi-week process that went through many iterations to
Another time sink that caught us by surprise was the Google authentication process.
Originally, we sharply underestimated how long it would take to do the sign in process on our
login page, mainly because we were relying on the functionality of Google authentication to step
encountered a myriad of problems that began consuming more and more of our time, to the point
where it was decided that we cut the Google authentication process and instead introduce our
own authentication and login to the application. While the extra time wasn’t something that we
had accounted for, the control over the sign in granted us the means to be able to finish this stage
Finally, our budget for the project laid within a three hundred dollar budget. Originally,
no budget was anticipated, but one of our services we utilized was a paid one, but had a trial of
three months or three hundred dollars of their service, depending on which came first. We
Final Implementation
samples, analyzes those samples, and returns graphical information on two selected audio
samples. The application also stores the user’s save files on a database on the backend; the
As for the backend portion of the application, it is currently run on a Google Cloud
Platform (GCP) engine. This allows for many users to access the backend and get their audio
analyzed. Using GCP, also made it easier for us to store the user’s data on the backend, and made
Discussion
Like previously mentioned in the timeline section, multiple problems have arisen during
our project. These issues hindered our progress, but at every hurdle we have either managed to
overcome it, or find an alternative solution that accomplishes the same feature seamlessly.
One of the issues we encountered was finding a way to send information back and forth
between the frontend and backend. Initially, we were going to host our backend on Heroku, and
use Google Drive API to store and retrieve files. After struggling to install the Google Cloud API
10
without errors via Node.js we decided to run our Spring Boot backend on a Google Cloud virtual
machine. The files were stored on the virtual machine and retrieved using a python server script.
Another issue we faced was during deployment of the app. Our REST API was using the
HTTP protocol to send information; however, Google App Engine (the deployment service we
used) only permits the HTTPS protocol. We had to learn how to implement HTTPS requests last
minute, which still has some errors because we would have to store a digital certificate with a
certificate authority which is expensive. This made implementing our login system difficult.
11
REFERENCES
About Community. reddit. (2008, September 15). Retrieved June 18, 2022, from
\https://www.reddit.com/r/audiophile/
Reinke, C. (2018, August 6). Spectroid. Google. Retrieved June 18, 2022, from
https://play.google.com/store/apps/details?id=org.intoorbit.spectrum&hl=en_US&gl=US
12
Appendix
Bryan Aguiar: Purely backend work - Java/Python. Receiving Audio Files and working with the
GCP to allow our solution to run continuously in the backend.
Trenton Fengel: Mostly frontend work - Used React and D3.js to create the data visualization.
Helped setup communication between the frontend and backend.
Emerald Kunkle: Purely frontend work - React and Typescript work, login page layout,
frontend-only features.