Hi... I have the function:
Code:
unsigned int flanger(short int left, short int right){
unsigned int retVal;
/* process samples and put into variable delay buffer */
retVal = 0;
if (lReadPtr == 0){
retVal = (calculateAverage(leftArray[lReadPtr],leftArray[(((SAMPLE_RATE/1000)*MAX_DELAY)-1)])) << 16;
printf("1.left: %8d,",calculateAverage(leftArray[lReadPtr],leftArray[(((SAMPLE_RATE/1000)*MAX_DELAY)-1)]));
}
else{
retVal = (calculateAverage(leftArray[lReadPtr],leftArray[lReadPtr-1])) << 16;
printf("1.left: %8d,",calculateAverage(leftArray[lReadPtr],leftArray[lReadPtr-1]));
}
if (startLFO != 0){
if (rReadPtr == 0){
retVal |= (calculateAverage(rightArray[rReadPtr],rightArray[(((SAMPLE_RATE/1000)*MAX_DELAY)-1)]));
printf(" Right: %8d\n",calculateAverage(rightArray[rReadPtr],rightArray[(((SAMPLE_RATE/1000)*MAX_DELAY)-1)]));
}
else{
retVal |= (calculateAverage(rightArray[rReadPtr],rightArray[rReadPtr-1]));
printf(" Right: %8d\n",calculateAverage(rightArray[rReadPtr],rightArray[rReadPtr-1]));
}
}
else{
retVal |= dataR; /* return original data! */
printf(" Right: %8d\n",dataR);
}
return retVal;
}
main{
short int left, right, outputL, outputR;
unsigned int stuffed;
left = getAudioData();
right = getAudioData();
stuffed = flanger(left, right);
outputL = 0;
outputR = 0;
/* extract stereo information from raw int! */
outputL = stuffed >> 16;
outputR = stuffed & 0x0000FFFF;
printf("2.Left: %8d, Right: %8d\n",outputL,outputR);
}
and for the output...
Code:
Flanger Audio Effect Program
1.left: -2203, Right: -10
2.Left: -1, Right: -10
1.left: 7580, Right: -21
2.Left: -1, Right: -21
1.left: 6985, Right: -8
2.Left: -1, Right: -8
1.left: 14154, Right: 19
2.Left: 14154, Right: 19
1.left: 21780, Right: 64
2.Left: 21780, Right: 64
1.left: 21172, Right: 26
2.Left: 21172, Right: 26
1.left: -5451, Right: 58
2.Left: -5451, Right: 58
1.left: -4244, Right: 37
2.Left: -4244, Right: 37
1.left: 22508, Right: -34
2.Left: -1, Right: -34
1.left: 29264, Right: 21
2.Left: 29264, Right: 21
1.left: 18884, Right: 3
2.Left: 18884, Right: 3
1.left: 3400, Right: -38
2.Left: -1, Right: -38
1.left: 5340, Right: 21
2.Left: 5340, Right: 21
1.left: 13028, Right: 12
2.Left: 13028, Right: 12
1.left: 14227, Right: 4
2.Left: 14227, Right: 4
1.left: 14244, Right: 6
2.Left: 14244, Right: 6
1.left: 13285, Right: 34
2.Left: 13285, Right: 34
1.left: -3112, Right: 5
2.Left: -3112, Right: 5
1.left: -4776, Right: 5
2.Left: -4776, Right: 5
1.left: 9548, Right: -19
2.Left: -1, Right: -19
1.left: 11018, Right: -37
2.Left: -1, Right: -37
1.left: 22291, Right: -15
2.Left: -1, Right: -15
1.left: 24025, Right: 43
2.Left: 24025, Right: 43
1.left: 14800, Right: 17
2.Left: 14800, Right: 17
1.left: 13260, Right: -42
2.Left: -1, Right: -42
I dont understand why the left output keeps going to -1 randomly! is it an obvious thing Im doing wrong??? Thanks!