標準ライブラリabs()から誤った値を取得しています。以下の例では、minとmaxは-18635と3402として正しく評価されていますが、absMaxは3402になるため、18635になるはずです。これでうまくいくのでしょうか、それとも間違いでしたか?
double NormalizeWaveData(SInt16 *inData, long inlength)
{
int maxAmp = 0, minAmp=0, absMax=0;
for(long i=0; i<inlength; i++)
{
if( inData[i] > maxAmp)
maxAmp = inData[i];
if( inData[i] < minAmp)
minAmp = inData[i];
if( abs(inData[i]) > absMax)
absMax = inData[i];
}
...