微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使基本的 Tone.js 合成器声音保持一致?

如何解决如何使基本的 Tone.js 合成器声音保持一致?

我想要一个恒定的音高,没有可听见的裂纹来开始包络,在开始时具有超快的音量加速(没有音量破裂),并且在短时间内缓慢释放,就像声音一样快速完成的快速长笛,但比这更简单。我有的是这个:

const flute1 = new Tone.Synth({
  oscillator: {
    type: 'sine',},envelope: {
    attack: 0.01,decay: 0,sustain: 1,release: 1
  }
}).toDestination()

但是,如果我循环调用它,第一个声音会使音量变大,您可以听到每个节拍的声音音量逐渐增大。我如何使它们每个都统一相同的声音?

let fluteRhythm = [1,1,0]
let fluteRhythmI = 0

const loopA = new Tone.Loop(time => {
  let play = fluteRhythm[fluteRhythmI++]
  if (fluteRhythmI == fluteRhythm.length) {
    fluteRhythmI = 0
  }
  if (play) {
    flute1.triggerAttackRelease("C2","8n",time);
  }
},"4n").start(0)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。