Questions about Filters for Note Onset Detection?
Forgive me if I may come as ignorant but I would like to ask some questions regarding using Filter Algorithms for Note Onset Detection.
Is 'Detection Function' the same as using Filters on the audio signal? Or generally, what is the difference between Detection Function, Filtering (pre-processing the signal), and Peak-Picking?
I've constantly heard about the Low-Pass (or High-Pass) filter, but I am confused. I read that it works on cancelling out certain frequencies that are below (or above) a certain threshold. However, I am using the Time-Domain for calculating Note Onsets (that is, using the change in signal amplitude/energy). So I am not sure on how I can apply low-pass filtering to the time-domain. Any other good filters for note-onset detection?
What is the difference between, Spectral and Phase energy? (I have an idea that spectral refers to the spectogram or frequencies, but I do not know what Phase is)
I am having difficulties with working with dynamic thresholding. Any suggestions for a good algorithm? For example, I have the following signal:
As shown in the image above, there are note onsets that I have missed. A brief description of my algorithm, I calculate and take note of the energy/amplitude changes that occur in the audio signal. Then I get the maximum 'energy change' and based on the sensitivity, I take a percentage of it and set it as the threshold. So this is where the problem of dealing with varying degrees of amplitude/energy comes in. If I set the sensitivity too low, I come up with 'ghost' onsets and if I set the sensitivity too high, I miss out on some onsets. Any suggestions to improve the algorithm (or suggest a new algorithm) that I am using?
I am sure that it is difficult to have 100% accuracy but I need to have a better algorithm for note onset detection compared with what I have now. I would appreciate开发者_Go百科 all the help I can get. Thank you very much!
One way is to detect sudden increases in the amplitude envelope. One way of calculating the amplitude envelope is to rectify the input signal (i.e. take the absolute value) and then low pass filter it. Check out the code examples in http://www.musicdsp.org for time domain filter examples and envelope followers.
精彩评论