tone.js пульсовая волна неожиданно меняется
У меня есть следующий код tone.js, который играет небольшую мелодию с помощью пульсовой волны. В середине мелодии характер пульсовой волны меняется, как если бы ширина импульса изменилась. Почему это происходит, и как я могу это исправить?
import Tone from 'tone';
let synth = {
PULSE1: new Tone.Synth({
oscillator: {
type: 'pulse',
width: 0.5
}
}).connect(Tone.Master)
}
let track = {
transport: {
bpm: 100
},
instruments: {
PULSE1: {
notes: [
['0:0:0','C4','16n', {}],
['0:0:1','D4','16n', {}],
['0:0:2','D#4','16n',{}],
['0:0:3','D4','16n', {}],
['0:0:4','C4','16n', {}],
['0:0:5','G3','16n', {}],
['0:0:6','C4','16n', {}],
['0:0:7','D4','16n', {}],
['0:0:8','D#4','16n', {}],
['0:0:9','C4','16n', {}],
['0:0:10','Bb3','16n', {}],
['0:0:11','C4','16n', {}],
['0:0:12','D#4','16n', {}],
['0:0:13','C4','16n', {}],
['0:0:14','F4','16n', {}],
['0:0:15','D4','16n', {}]
]
}
},
}
Tone.Transport.bpm.value = track.transport.bpm;
track.instruments.PULSE1.notes.forEach(note => {
let [when, frequency, duration, options] = note;
Tone.Transport.schedule(time => {
synth.PULSE1.triggerAttackRelease(frequency, duration, time);
}, when);
});
Tone.Transport.start();