in.gain.linearRampToValueAtTime( 0.001, now + duration );

        // Layered oscillators for fullness
        const detunesInCents = [0, +6, -6];
        const oscillators = detunesInCents.map( ( cents ) => {
          const osc = audioContext.createOscillator();
          osc.type = "sine";
          osc.frequency.setValueAtTime( 800, now );
          osc.frequency.setValueAtTime( 600, now + 0.1 );
          osc.frequency.setValueAtTime( 800, now + 0.2 );
          osc.detune.setValueAtTime( cents, now );