1
我應該在java中實現一個正弦發生器。作爲一個輸入,你給出頻率,幅度和相位,並且輸出一個.wav文件應該被生成。用於從二進制文件寫入wav文件的簡單Java庫
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出這個巨大的問題。我嘗試了一些圖書館,但特別是頭部讓我頭痛。
有關我如何輕鬆實現這一點的任何想法?