Hi Connor.

At first look when you do

in = malloc(sizeof(double));

you are allocating memory only for one double, so when you do fftbuffer++
it would access uninitialised memory.

Cant you just use the inputBuffer data buffer as the fftbuffer instead of
coying it ? If not you can just do the malloc outside the callback and
reuse it.

Hope that makes sense, good luck!

Daniel

2015-06-18 18:15 GMT+01:00 Connor Gettel <connorget...@me.com>:

> Hello Everyone,
>
> Ross, Bjorn, Danny, Richard and Bogac, Thank you for your insightful
> feedback and advice with my project. I haven’t had time to look over all
> the material just yet, but i surely will over the next couple days. I’ve
> hit a bit wall with one specific part of the code, this mainly comes down
> to syntax I think and lack of experience with C. If anyone could tell me
> what i’m doing wrong in this instance, please let me know if i’m on the
> right track.
>
> inside the memory allocations in the main function I’ve got this line:
>
> in = (fftw_complex*) fftw_malloc(sizeof(fftw_complex)*N);
>
> This is my input array, i need to fill it with data from portaudio’s
> inputBuffer (I think).
>
> As far as I know the way to do this is to use the *userData Parameter of
> the callbaack which is type void*.
>
> So now I want to make ‘in’ the userData Parameter… i need to cast inside
> the callback from double to void*, and then to float to match the
> inputBuffer… I’ve done this with:
>
> int i;
> double *in;
> in = malloc(sizeof(double));
> userData=(void*)in;
> userData=in;
> float *inp = (float*) inputBuffer, *fftbuffer = (float *) userData;
> for (i=0;i<framesPerBuffer;i++) *fftbuffer++ = *inp++;
>
> So my thought process now is that inputBuffer should be feeding the
> fftbuffer (which is the input array of the fft) with data… which means I
> can now execute my plan…
>
> Compiling fine! Unfortunately i’m crashing. I’m pretty sure it’s because
> i’m calling malloc in the callback. Which isn’t meant to be done
> (obviously).
>
> Question are:
> 1) Am I on the right track at all?
> 2) Is there a malloc free way to cast from double to void* ?
> 3) Am I right in thinking the ‘in’ is the FFT Buffer?
>
> Cheers,
>
> Connor.
> --
> dupswapdrop -- the music-dsp mailing list and website:
> subscription info, FAQ, source code archive, list archive, book reviews,
> dsp links
> http://music.columbia.edu/cmc/music-dsp
> http://music.columbia.edu/mailman/listinfo/music-dsp
--
dupswapdrop -- the music-dsp mailing list and website:
subscription info, FAQ, source code archive, list archive, book reviews, dsp 
links
http://music.columbia.edu/cmc/music-dsp
http://music.columbia.edu/mailman/listinfo/music-dsp

Reply via email to