Thank you for your help, I've probably identified the problem - one of the input parameters was a char (8 bit). I've tried to fix it using the following code to reformat it so that it can be used properly for 16 bit but I keep getting the same problem
/* Function with char as one of the parameters - qint64 XYSeriesIODevice::writeData(const char *data, qint64 maxSize) - same as in the Qt audio example**/
int bitsPerSample = 16;
int bytesPerSample = (bitsPerSample / BITS_IN_BYTE);
int signalLength = (strlen(data) ) / numChannels / bytesPerSample;
short* signal = (short*)malloc(sizeof(short) * signalLength);
for(int i = 0; i < signalLength; i++){
int index = i * numChannels * bytesPerSample;
memcpy(&signal[i], &data[index], sizeof(short));
}
Any suggestions?