Did you take out the function soundout_open as i mentioned before?

and also dont use this: psfout += count1;
   do {
		count1 = sf_readf_float(psfin, buffer1, def_len);
                                if(count1 <= 0)
		sf_writef_float(psfout, buffer1, count1);
                                 /* psfout += count1; */  
file pointer should automically be advanced as you read.

usually in a pointer, if you add a number with the pointer, it means your address is increased by that number ( depends on the size of the data to which pointer points) . Forget these and go ahead with the above.