My Target is to make an app that captures audio from mic then pass it to band-pass filter and multiply it by some gain then output result in real-time to the speaker
so I had edited FrequencyDomain.cpp Example in the Superpowered SDK to match my purpose , I tried this code but i can't hear the output audio ,,
what is missing in my Code ?
static SuperpoweredFrequencyDomain *frequencyDomain;
static float *inputBufferFloat;
// This is called periodically by the media server.
static bool audioProcessing(void * __unused clientdata, short int
*audioInputOutput, int numberOfSamples, int __unused samplerate) {
// Creating the filter.
SuperpoweredFilter *filter = new
SuperpoweredFilter(SuperpoweredFilter_Resonant_Lowpass, samplerate);
filter->setResonantParameters(1000.0f, 0.1f);
filter->enable(true);
filter->process(stereoBuffer, stereoBuffer, numberOfSamples);
SuperpoweredShortIntToFloat(audioInputOutput, inputBufferFloat, (unsigned int)numberOfSamples); // Converting the 16-bit integer samples to 32-bit floating point.
}
extern "C" JNIEXPORT void
Java_com_superpowered_frequencydomain_MainActivity_FrequencyDomain(JNIEnv *
__unused javaEnvironment, jobject __unused obj, jint samplerate, jint buffersize) {
inputBufferFloat = (float *)malloc(buffersize * sizeof(float) * 2 + 128);
SuperpoweredCPU::setSustainedPerformanceMode(true);
new SuperpoweredAndroidAudioIO(samplerate, buffersize, true, true, audioProcessing, NULL, -1, SL_ANDROID_STREAM_MEDIA, buffersize * 2); // Start audio input/output.
}