gpt4 book ai didi

java - 如何在java中生成不同分贝的纯音?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:49:16 25 4
gpt4 key购买 nike

我需要在 java 中生成具有不同级别分贝 (dB) 的纯音。有没有如何做到这一点的例子?

最佳答案

使用 midi 合成器调音

您可以使用合成器生成音调:

import javax.sound.midi.*;

public class MidiSynthesizerSample {
public static void main(String[] args) {
int[] notes = new int[]{60, 62, 64, 65, 67, 69, 71, 72, 72, 71, 69, 67, 65, 64, 62, 60};
try {
Synthesizer synthesizer = MidiSystem.getSynthesizer();
synthesizer.open();
MidiChannel channel = synthesizer.getChannels()[0];

for (int note : notes) {
channel.noteOn(note, 50);
try {
Thread.sleep(200);
} catch (InterruptedException e) {
break;
} finally {
channel.noteOff(note);
}
}
} catch (MidiUnavailableException e) {
e.printStackTrace();
}
}
}

在这里你可以设置 channel 的音量,用

getSetChannelVolumeMessage(int, int)

http://www.springworldgames.com/rmleditor/javadoc/com/springworldgames/music/MidiUtils.html#getSetChannelVolumeMessage(int, int)

我不知道如何将它转换为分贝,也许这取决于您的声卡的音量级别。

关于java - 如何在java中生成不同分贝的纯音?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7147294/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com