package sound;
public final class Audio {
private double audioData[];
private int sampleRate = 8000;
private final static double twopi = Math.PI * 2;
public Audio(double doubleArray[]) {
audioData = doubleArray;
}
public Audio(UlawCodec ulc) {
audioData = ulc.getDoubleArray();
}
public double[] getAudioData() {
return audioData;
}
public int getSampleRate() {
return sampleRate;
}
public int getLength() {
return audioData.length;
}
public double getDuration() {
return
((double) audioData.length /
(double) sampleRate);
}
public double getMin() {
double min = audioData[0];
for (int i = 0; i < audioData.length; i++) {
if (audioData[i] < min)
min = audioData[i];
}
return min;
}
public double getMax() {
double max = audioData[0];
for (int i = 0; i < audioData.length; i++) {
if (audioData[i] > max)
max = audioData[i];
}
return max;
}
public void normalize() {
double min = Math.abs(getMin());
double max = Math.abs(getMax());
double biggest;
double amp;
if (min > max)
biggest = min;
else
biggest = max;
amp = 0.98 / biggest;
System.out.println(
"Normalize:" +
"The min is:" + min +
"The max is:" + max);
for (int i = 0; i < audioData.length; i++)
audioData[i] =
audioData[i] * amp;
}
}