2016-04-20 11 views
0

F ist der Träger, und E und sind Modulatoren.Webaudio FM Synthese mit zwei Modulatoren

FM Synthesis with one modulator

Einfache FM-Synthese mit nur ein Modulator, ist ziemlich einfach in WebAudio.

FM Synthesis with one modulator

var ctx = new AudioContext || webkitAudioContext(); 
var out = ctx.destination; 

// Instantiating 
var E = ctx.createOscillator(); // Modulator 
var F = ctx.createOscillator(); // Carrier 

// Setting frequencies 
E.frequency.value = 440; 
F.frequency.value = 440; 

// Modulation depth 
var E_gain = ctx.createGain(); 
E_gain.gain.value = 3000; 

// Wiring everything up 
E.connect(E_gain); 
E_gain.connect(F.frequency); 
F.connect(out); 

// Start making sound 
E.start(); 
F.start(); 

Aber jetzt würde Ich mag so etwas machen.

FM Synthesis with two modulators

Zwei Modulatoren das ist. Wie kann dies in Webaudio umgesetzt werden?

Antwort

0

Antwort: Sie müssen eine Verbindung herstellen, um nicht zur Frequenz zu verstimmen.

Beispiel: Hey, ich habe ein Beispiel auf meiner Website für Sie: http://gtube.de/

Zum veröffentlichen Gebiet im Kopf und wählen Sie die FM-Synthesizer.

Dort können Sie die Verbindungen sehen und Sie können es live versuchen (verwenden Sie die Tastatur A-L)! :-)

Exampleobject:

{"name":"connection","Name":"Connection at Pos6","ConnectFrom":"1_#_MOD 1_#_object","ConnectTo":"3_#_GAIN MOD1_#_object"}, 
{"name":"connection","Name":"Connection at Pos7","ConnectFrom":"3_#_GAIN MOD1_#_object","ConnectTo":"0_#_OSC_#_detune"}, 
{"name":"connection","Name":"Connection at Pos8","ConnectFrom":"2_#_MOD 2_#_object","ConnectTo":"4_#_GAIN MOD2_#_object"}, 
{"name":"connection","Name":"Connection at Pos9","ConnectFrom":"4_#_GAIN MOD2_#_object","ConnectTo":"0_#_OSC_#_detune"} 
{"name":"connection","Name":"Connection at Pos10","ConnectFrom":"0_#_OSC_#_object","ConnectTo":"5_#_GAIN OSC_#_object"}, 
{"name":"connection","Name":"Connection at Pos11","ConnectFrom":"5_#_GAIN OSC_#_object","ConnectTo":"context.destination"}] 
+0

Dies scheint nicht in dem aktuellen Chrome-Browser zu arbeiten. Die Konsole zeigt 'TypeError: Kann die Eigenschaft 'detune' von undefined nicht lesen bei HTMLDocument.document.onkeydown (app.js: 5518)' – brainjam

+0

Bitte wählen Sie Keyboard A-L Input und nicht Midi Input. –