title: Failing to execute `connect` on `AudioNode`
body: <p>I have this script in the header of an HTML file.  It works fine with the exception of the line <code>delay.connect(Tone.context.destination);</code> midway down that theoretically adds layering of the sounds in the DuoSynth by starting one of them on a delay.  </p>
  
  <p>When it is not commented out, I get this error in the console: <code>Uncaught TypeError: Failed to execute 'connect' on 'AudioNode': No function was found that matched the signature provided.</code></p>
  
  <p>What am I doing wrong?</p>
  
  <pre><code>&lt;script&gt;
        function makeSynth() {
        let envelope = {
            attack: 0.1,
            release: 4,
            releaseCurve: 'exponential'
        };
        let filterEnvelope = {
            baseFrequency: 440,
            octaves: 3,
            attack: 0,
            decay: 0,
            release: 1000
        };
  
        return new Tone.DuoSynth({
            harmonicity: .5, 
            detune : 5000,
            volume: -20,
            voice0: {
                oscillator: { type: 'triangle' },
                envelope,
                filterEnvelope
            },
            voice1: {
                oscillator: { type: 'sine' },
                envelope,
                filterEnvelope
            },
            vibratoRate: 0.5,
            vibratoAmount: 0.1 // THIS IS GOOD TO MANIPULATE
        });
    }
  
        let leftSynth = makeSynth();
        let rightSynth = makeSynth();
        let leftPanner = new Tone.Panner(-0.5).toMaster();
        let rightPanner = new Tone.Panner(0.5).toMaster();
        let echo = new Tone.FeedbackDelay('16n', 0.2);
        let delay = Tone.context.createDelay(6.0); // Borrow the AudioContext from Tone.js
        let delayFade = Tone.context.createGain();
  
        delay.delayTime.value = 6.0;
        delayFade.gain.value = 0.75;
  
        leftSynth.connect(leftPanner);
        rightSynth.connect(rightPanner);
        leftPanner.connect(echo);
        rightPanner.connect(echo);
  
  
  
        // var c = canvas.getContext('2d');
  
        echo.toMaster();
        echo.connect(delay);
        delay.connect(Tone.context.destination);
        delay.connect(delayFade);
        delayFade.connect(delay);
  
        new Tone.Loop(time =&gt; {
        leftSynth.triggerAttackRelease('C6', '1:2', time);
  
        leftSynth.setNote('G5', '+0:2');
        leftSynth.setNote('C4', '+0:4');
  
        leftSynth.triggerAttackRelease('G5', '0:2', '+6:0');
  
        leftSynth.triggerAttackRelease('E4', '0:2', '+11:2');
  
        leftSynth.triggerAttackRelease('E5', '2:0', '+19:0');
        leftSynth.setNote('G5', '+19:1:2');
        leftSynth.setNote('A5', '+19:3:0');
        leftSynth.setNote('G5', '+19:4:2');
    }, '34m').start();
  
    new Tone.Loop(time =&gt; {
  
  
  
        // Trigger D4 after 5 measures and hold for 1 full measure + two 1/4 notes
        rightSynth.triggerAttackRelease('G6', '1:2', '+5:0');
        // Switch to E4 after one more measure
        rightSynth.setNote('B6', '+6:0');
  
        // Trigger B3 after 11 measures + two 1/4 notes + two 1/16 notes. Hold for one measure
        rightSynth.triggerAttackRelease('D4', '1m', '+11:2:2');
        // Switch to G3 after a 1/2 note more
        rightSynth.setNote('G3', '+12:0:2');
  
        // Trigger G4 after 23 measures + two 1/4 notes. Hold for a half note.
        rightSynth.triggerAttackRelease('G4', '0:2', '+23:2');
    }, '37m').start();
  &lt;/script&gt;
  </code></pre>