FreeStreamer icon indicating copy to clipboard operation
FreeStreamer copied to clipboard

EQ Implementation

Open edward98 opened this issue 6 years ago • 2 comments

Hi, I have tried to implement an EQ using your library(which is great, thanks!), and I have read all previous issues but I found them not helping, so please don't think that this is a duplicate. Specifically, I'd like to intercept the raw audio data, which is a array of floats, equalize them, then have them played. I have tried to add an AudioQueueProcessingTap on the AudioQueue, but probably due to my limited knowledge to C++ and AudioQueue, I could not get the tap working. Other than that, I have also tried to modify the PCM data in the PCM delegate of the FSAudioStream, which failed to change how the audio sound but lead to numerous strange crashes.

Please give me a direction as to how should I implement an EQ. That is, should I still work on a AudioQueueProcessingTap or using the PCM delegate is fine? If the delegate would not work, in which file should I add the Tap and how should I make it work? The previous issue had a tutorial link, but all the example codes download links are broken :(

P.S. the PCM delegate gives a AudioBufferList, and I use bufferList.mBuffer.mData.bindMemory(to: Float.self, count: Int(frame)) to get the raw float array, which does seem to be functional as I am able to successfully do the casting each time. However, when I then pass this pointer to NVDSP, a library I use to do the EQ, either the app crashes with some "Hash table corruption" or some other cryptic messages. What should I do?

edward98 avatar Dec 10 '18 06:12 edward98

@edward98 https://github.com/canopas/FreeStreamer/tree/satish/eq resoleve crash but filter not work, i am getting noise only

satishVekariya avatar Feb 28 '20 09:02 satishVekariya

@muhku please give replay

satishVekariya avatar Feb 28 '20 09:02 satishVekariya