首页 > 解决方案 > Tone.JS - 加法合成器

问题描述

我正在尝试使用和创建一个简单的加法合成Tone.JSWebAudioAPI

到目前为止,我已经建立了一个简单的合成器,它工作正常,我可以演奏任何我想要的音符。

我也可以自由更改参数ecc...

这是代码:

// synth declaration using Tone.JS

var synth = new Tone.Synth({
  oscillator: {
    type: 'fmsquare',
    modulationType: 'sawtooth',
    modulationIndex: 3,
    harmonicity: 2.4
  },
  envelope: {
    attack: 0.001,
    decay: 0.1,
    sustain: 5,
    release: 0.1
  }
}).toMaster()

//Possible added oscillator
 var synthB = new Tone.Synth({
   //Sample Data.......
 }).toMaster()

// Selection of piano keyboard from my HTML file

notes = document.querySelectorAll(".hex");

// Play note function

notes.forEach(function(note) {
    note.addEventListener("mouseover", function(event){
    x =  event.target.title;
    synth.triggerAttackRelease(x, "8n");
    //synthB.triggerAttackRelease(x, "8n");

    });
});

我试图添加另一个Tone.Synth,但我不知道如何“并行化”该过程。

查看文档,我发现了如何创建复音合成器,但它允许添加同一个合成器的多个实例以播放多个音符。

我想做的是用不同的合成器(每个都有它的波形)演奏相同的音符,获得一个加法合成器。

我试图简单地创建一个SynthB然后调用synthB.triggerAttackRelease(),它工作正常,但对我来说似乎并不“平行”。

有没有更好的方法?

标签: javascriptweb-audio-apisynthesizertone.js

解决方案


推荐阅读