Convert 16 bit PCM audio to 32 bit float audio in Mac OS X

Using C and the Accelerate signal processing framework:

int numSamples = 1024;

short *samples = malloc(numSamples * sizeof(short));

int convLen = numSamples * sizeof(float);
float *convertedSamples = malloc(convLen);

// convert 16 bit ints to 32 bit floats
vDSP_vflt16(samples, 1, convertedSamples, 1, numSamples);

// normalize to -1.0/1.0 range
float div = 32767.0;
vDSP_vsdiv(convertedSamples, 1, &div, convertedSamples, 1, numSamples);

// ... do something with convertedSamples