I am a newbie to FMOD but I have audio playback working for mp3s.
I am writing a Smartphone 2003 application and would like to perform simple equalization on the audio stream.
I found a post in which Brett described the procedure for writing an EQ using the DSP interface (my only option since FSOUND_FX isn’t supported on Smartphone), and I just do not understand what values I should be plugging in. Can someone help me with the variables in Brett’s description, what they mean, and where I can get these values, your help will be greatly appreciated.
To write an equalizer, i recommend the following link and look up ‘Band pass filter’ or ‘BPF’ in this link
http://www.harmony-central.com/Computer … okbook.txt
To process fmod’s data, use a DSP callback. This is how you can get a chunk of audio data (in the mixer’s format, ie 16bit stereo) and filter it.
For FMOD Ex’s EQ I use the constant 0db peak gain BPF with
alpha = sin(w0)*sinh( ln(2)/2 * BW * w0/sin(w0) ) (case: BW)
This allows the user to specify a center frequency, and a bandwidth value in semitones, then i just interpolate between the filtered signal and the original signal to get a 0 to 1 level for the bandpass filter.
With 5 of these filters running at once at about 1 octave apart, you can have a 5 band equalizer.
- wlmapp3 asked 12 years ago
I have the Peaking EQ filter written using the Audio Cookbook.
Now I have another question.
When using the FSOUND_DSP_Callback function, there are two parameters I have a question about, originalBuffer and newBuffer.
Should I execute each EQ filter against the original buffer parameter for each of the various frequencies and then sum them up into the newBuffer parameter?
Or should I make it a running total and execute each filter against the value calculated from the previous filter?
31hzFilter * originalBuffer +
62hzFilter * originalBuffer +
// … ;
(31hzFilter * originalBuffer) +
62hzFilter * (31hzFilter * originalBuffer) +
Your help will be greatly appreciated.
Please login first to submit.