我读过 1200 美分在 1 个八度音阶中。
所以,我尝试了以下方法:
const audioContext = new AudioContext();
function Oscillator(frequency, detune) {
this.oscillator = audioContext.createOscillator();
this.oscillator.connect(audioContext.destination);
this.oscillator.frequency.value = frequency;
this.oscillator.detune.value = detune;
this.oscillator.start(0);
this.oscillator.stop(3);
console.log('Playing new oscillator!');
}
情况1:
const x = 200;
new Oscillator(x, 1200);
new Oscillator(2 * x, 0);
两个振荡器分别为所有值产生相同的声音x
这对我来说很有意义,因为 1200 音分失谐是一个八度音阶(频率的两倍)。
案例二:
const x = 200;
new Oscillator(x, 600);
new Oscillator(x * 1.5, 0);
所以,我预计如果我得到一半的美分,那么频率应该会增加 50%。但是,当我单独听到它们时,对于许多不同的值,x
它们都产生了不同的声音。听起来这两种声音的频率相同,但幅度不同。
我无法理解为什么会这样。这个你能帮我吗。我对声音背后的物理学很陌生。