import timbre.AudioInput;
import timbre.AudioOutput;
import timbre.AudioStream;
import timbre.AudioFormat;
import timbre.AudioProcessingException;
public class AudioStreamProcessingExample {
public static void main(String[] args) {
try {
AudioInput input = new AudioInput("input.wav");
AudioOutput output = new AudioOutput("output.wav");
AudioFormat format = input.getFormat();
AudioStream stream = new AudioStream(input, output);
stream.setProcessor(new AudioProcessor());
stream.start();
stream.join();
input.close();
output.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public static class AudioProcessor implements AudioStream.Processor {
@Override
public void process(AudioInput input, AudioOutput output) throws AudioProcessingException {
byte[] buffer = new byte[4096];
int bytesRead = input.read(buffer);
while (bytesRead != -1) {
for (int i = 0; i < bytesRead; i++) {
}
output.write(buffer, 0, bytesRead);
bytesRead = input.read(buffer);
}
}
}
}
import timbre.AudioInput;
import timbre.AudioStream;
import timbre.AudioFormat;
import timbre.analysis.fft.FFT;
public class AudioStreamAnalysisExample {
public static void main(String[] args) {
try {
AudioInput input = new AudioInput("input.wav");
AudioFormat format = input.getFormat();
AudioStream stream = new AudioStream(input);
FFT fft = new FFT(format.getSampleRate(), format.getFrameSize());
byte[] buffer = new byte[4096];
int bytesRead = input.read(buffer);
while (bytesRead != -1) {
float[] samples = format.bytesToSamples(buffer);
float[] spectrum = fft.computeSpectrum(samples);
for (float s : spectrum) {
System.out.println(s);
}
bytesRead = input.read(buffer);
}
input.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}