2013-04-04 55 views

回答

1

你不保存您的实际节点,只是价值 - 所以,当你尝试连接到oscillator.frequency,你传递一个整数值(400 - 你保存的频率在节点中)。尝试http://jsfiddle.net/GCSEq/6/ - 这存储节点,并正确路由到AudioParam。

this.oscillator = context.createOscillator(); 
this.gain = context.createGainNode(); 

和 osctest2.play(osctest.oscillator.frequency,1000);

(你在控制台得到一个错误。)

+0

我得到一个错误,说:“未捕获的InvalidStateError:无法执行'开始'上的'振荡器节点':不能多次启动启动“。当多次使用启动和停止功能时。在停止振荡器之后是否有办法停止和启动振荡器?我正在尝试制作一个音序器。 – Emanegux 2014-02-14 00:44:56

7

https://coderwall.com/p/h1jnmg

var saw = context.createOscillator(), 
     sine = context.createOscillator(), 
     sineGain = context.createGainNode(); 

//set up our oscillator types 
saw.type = saw.SAWTOOTH; 
sine.type = sine.SINE; 

//set the amplitude of the modulation 
sineGain.gain.value = 10; 

//connect the dots 
sine.connect(sineGain); 
sineGain.connect(saw.frequency); 
+0

感谢它的工作。 – zya 2013-04-04 21:58:03

+0

但即时通讯尝试使一个易于使用的对象构造函数具有良好的路由功能。似乎我无法将第二个瞬间的输出传递给第一个。看看:http://jsfiddle.net/ehsanziya/GCSEq/2/ – zya 2013-04-04 22:01:07

+0

嗯,不 - 你不能直接把 – cwilso 2013-04-05 03:54:12