我应该在java中实现一个sinus-generator。作为输入,您给出频率、幅度和相位,作为输出,应该生成一个 .wav 文件。
private static byte[] generateSineWavefreq(int frequencyOfSignal, int seconds) {
// total samples = (duration in second) * (samples per second)
byte[] sin = new byte[seconds * sampleRate];
double samplingInterval = (double) (sampleRate / frequencyOfSignal);
System.out.println("Sampling Frequency : "+sampleRate);
System.out.println("Frequency of Signal : "+frequencyOfSignal);
System.out.println("Sampling Interval : "+samplingInterval);
for (int i = 0; i < sin.length; i++) {
double angle = (2.0 * Math.PI * i) / samplingInterval;
sin[i] = (byte) (Math.sin(angle) * 127);
//System.out.println("" + sin[i]);
}
return sin;
}
我生成了一个像这样的鼻窦,但是我在创建一个 .wav 时遇到了很大的问题。我尝试了一些库,但尤其是标题让我头疼。
关于如何轻松实现这一点的任何想法?