Hello again,
I obtain data for fbuffer in following way:
char *fbuffer = ( char * ) malloc ( 10240000 ); //10M bytes
long length = fread ( fbuffer, 1, 10240000, file );
I also set alsa in float mode:
snd_pcm_hw_params_set_format ( handle, params,
Nothing in the posted code fragment suggests that neither in nor out is
remotely related to floats. Where do you get yor in-data from? Why is
fbuffer[] a bytearray (if that is what it is?) How was ALSA opened?
/j
On Mon, 2009-10-26 at 15:05 -0700, Drip Stone wrote:
> while ( 1 )
> {
> for ( int i = 0; i < frames; i++ )
> {
> float t = 0;
> if ( left ) //for left channel
> {
> t = *((float*)&(fbuffer[pos+i*4])); //4 bytes each
> frame
> t*=2;
> //printf("%f ",t);
> for ( int j = 0; j < 4; j++ )
> buffer[i*8+j] = ((char*)&t)[j]; //8 bytes for 2
> channels
> }
>
> rc = snd_pcm_writei ( handle, buffer, frames );
> pos += frames * 4;
> }
>
> I think the value is not out of [-1.0,1.0]. BTW, what does it mean
> when a value is negative?
>
>
> Best,
> Dripstone
>
> 2009/10/26 Jörn Nettingsmeier <nettings@folkwang-hochschule.de>
> On 10/26/2009 11:38 AM, Victor Lazzarini wrote:
> > Well if the audio was clipped, there would probably be some
> audible
> > distortion.
> > Perhaps if a code fragment was posted we could give a more
> informed
> > opinion.
>
>
> i was thinking of operating on files, where clamping can be
> done with
> perfect fidelity. but i may have misunderstood the OP.
>
>
> _______________________________________________
> Linux-audio-dev mailing list
> Linux-audio-dev@lists.linuxaudio.org
> http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev
>
>
> _______________________________________________
> Linux-audio-dev mailing list
> Linux-audio-dev@lists.linuxaudio.org
> http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev