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();

0 ответов

Другие вопросы по тегам