音量調整
今までのアプリケーションはあまりに音量が大きすぎました。すみません。そこで、gainNode で音量を調節します。具体的には 1 以下の値を与えることで、音量を下げます。
index.js
1
import convertMidiNoteToFrequency from '/src/convertMidiNoteToFrequency'
2
3
const audioContext = new AudioContext()
4
const destination = audioContext.destination
5
6
const MidiNoteArray = [60, 64, 67, 71]
7
8
const oscArray = MidiNoteArray.map(frequency => {
9
const osc = audioContext.createOscillator()
10
osc.frequency.value = convertMidiNoteToFrequency(frequency)
11
12
// 音量調節用の nord
13
const gain = audioContext.createGain()
14
15
// 1が default の値なので、それより下げる
16
gain.gain.value = 0.2
17
// osc -> gain -> destination
18
// となるようにつなぐ
19
osc.connect(gain)
20
gain.connect(destination)
21
22
return osc
23
})
24
25
const now = audioContext.currentTime
26
27
oscArray.forEach((osc, index) => {
28
osc.start(now + index)
29
})
30
31
setInterval(() => {
32
oscArray.forEach(osc => osc.stop())
33
}, 6000)
Copied!

ルーティングのポイント

osc -> gainNode -> destination と順番につなぎます。gainNode を通る際に音量が小さくなるわけですね。
Last modified 3yr ago