繁体   English   中英

环形调制使用 web 音频 api - javascript

[英]Ring modulation using web audio api - javascript

我想问一下是否有人可以使用 javascript 帮助我进行环形调制

这是我的代码。 我不确定我这样做是否正确。 在开始按钮上,它只播放带增益的振荡器。 不与音频文件混合。

我试过做这样的事情GitHub source

谢谢

function audioFileLoader(fileDirectory, impulseFileDirectory) {
  var audioContext = new AudioContext();
  var soundObj = [];
  soundObj.fileDirectory = fileDirectory;
  soundObj.impulseFileDirectory = impulseFileDirectory;

  // buffer loader code
  var getSound = new XMLHttpRequest();
  getSound.open("GET", soundObj.fileDirectory, true);
  getSound.responseType = "arraybuffer";
  getSound.onload = function() {
      audioContext.decodeAudioData(getSound.response, function(buffer) {
          soundObj.soundToPlay = buffer;
      });

  }

  getSound.send();

  soundObj.play = function() {

    var source = audioContext.createBufferSource();
    source.buffer = soundObj.soundToPlay;

    var oscillator = audioContext.createOscillator();
    oscillator.type = 'sine';
    oscillator.frequency.value = 500;

    var gainNode = audioContext.createGain();
    gainNode.gain.value = 0.5; 
     
    oscillator.connect(gainNode);
    source.connect(gainNode);  
    gainNode.connect(audioContext.destination);

    oscillator.start(audioContext.currentTime);
  };

   return soundObj;
};

var example = audioFileLoader("audio/AcGtr.wav");

document.getElementById('ringmodulation').addEventListener("click", example.play, 
false);

您的代码从不播放缓冲区源,它缺少source.start() 另外var soundObj = []应该是var soundObj = {}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM