c++

I would like to generate waveforms which show the low, mid and high frequencies together: ala traktor for ipad http://www.dawsons.co.uk/blog/wp-content/uploads/2013/02/TRAKTOR_DJ_main-2_L.jpg

I have managed to get frequency data of the audio using fft, then sum up the amplitudes in the bins based on frequency ranges (low: 0 - 300Hz, mid: 300 - 2000Hz, high: 2000Hz +) but when plotted these do not resemble the usual RMS plot of the same sound.

Can someone please give me a pointer on how the Traktor waveforms are generated? Many thanks!


I would not use FFT data to do such a simple job. Instead, consider running the input signal through 3 simple time domain IIR filters that split the information into low, mid and high signals. This results in 3 time domain signals that are easy to plot. The advantage of this approach is that you do not have to worry about the inverse FFT process that would give you your time domain waveforms from each band. It should also be less processor intensive as you are doing everything in the time domain.

There is some simple code for a 2nd order Butterworth bandpass filter contained in one of my github repos at about line 120 of this file that you are welcome to use as a start point.

链接地址: http://www.djcxy.com/p/5794.html

上一篇: SDL回拨重复不停止?

下一篇: C ++