My Proposal (Word didn’t upload)

My Project Proposal: Low-end Onset Detection

Abstract: I expect my result should be a graph that can map out low frequencies transients clearly. The issue is that low frequencies are more ‘muddy’ or have more energy than a high register sound (Guitar or flute) and thus to get accurate detection is challenging. My approach is to first try understanding low-pass filters or how they are set up in code. This is a great starting point to get an idea of how to implement a function that can filter out some of the mud noise and detect the true attacks that occur on that sound source. 


The main issue that needs to be addressed is getting Matlab and learning some of the API, creating a function to filter out some of the unwanted sound space to create more accurate detection, and low end sound file to test this on.  I need to create a testing code for normal frequency range detection first. So I need to learn how to use the Fourier Transform and the Hammond window functions in Matlab. I then need to record my bass guitar with a plectrum to get the strongest attack possible for the detector to register any musical attacks. 


My expected solution to my objective is ultimately detecting a bass riff that has at least 5 notes, hammer-on and pull offs to test the effectiveness of the detector and the threshold before a transient is registered. This result is what I expect from the onset graphing for the bass guitar after all the preparation is done. The played notes are gonna be evenly spread and the sample rate is 48000 for the graphing in Matlab and will be played through a PreSonus preamp. I will use Reaper (DAW)for any audio processing before it goes into the Matlab project, as I have experience in cleaning up sound files and I will need the cleanest quality possible to have more audible attacks on the bass notes. 



My name is Tariq Hinds, I am an ENT student whose concentration is in Game design/Game programming. My area of programming mostly deals with logic based programming and Arithmetic. I have been researching Onset Detection since the summer and have been interested in how I can use it for my theories on game design. 

Timeline, Calendar: My timeline for this project is in 3 phases: The research phase, the programming phase, the testing phase. This is gonna happen in 5 week increments (The whole semester). My Calendar from February 3rd to March 14 of this year is predominantly researching more on FFTs and Onset algorithms and real-life examples. The second phase is where I compile with all of that and try to create a simple onset detector. Doesn’t have to be perfect, but it has to function at detecting high frequency transients. This should be accomplished by April 14th. The test phase is  refining the code to register with low frequency sounds and to get those bass transients. This phase should be the last 3rd of the semester. 

Proposed budget and revenue source: The budget for the Pre-amp is 179.99 and Bass guitar is mostly 350 for some decent pick ups. So my proposed budget is at least 800 bucks. My revenue source is going to be working for Doordash. 

 Inventory: Alienware laptop, Matlab, Bass guitar, PreSonus Preamp, Reaper(Daw).  

Data collection and or event description experiences: Matlab plays the audio file after its been imported into the software. It plays the designated sound and analyzes it amongst 4 graphs. 

Summary: So far, I have only been able to get on Transient. The code needs more further refining and more experiments must follow. 

Conclusion; My next step is to hopefully improve this design and continue this work and try to apply it to a game project. I want to create more intuitive rhythm games and give the player some options as to how they can onset a note from their controller or instrument to use these Onset detection features to play the rhythm stages in the game. It is to be more interactive according to my hypothesis, but that’s to tell. 

Bibliography: Belto, Juan Pablo. A Tutorial on Onset Detection in Music Signals | IEEE Journals …, 2005,  

“Matlab.” MATLAB Documentation, 21 June 2019,