2016-06-28 1 views
3

J'ai trouvé un javascript qui capture l'entrée microphone actuelle juste pour l'envoyer à nouveau. Vous pouvez le voir ici:Comment générer des ondes audio négatives à partir du son d'entrée en JavaScript?

https://codepen.io/MyXoToD/pen/bdb1b834b15aaa4b4fcc8c7b50c23a6f?editors=1010 (fonctionne uniquement avec https). Je me demandais comment je pouvais générer les ondes "négatives" du son capturé. Tout comme "l'annulation du bruit" fonctionne. Donc, le script détecte le bruit actuel autour de moi et chaque fois qu'une vague se lève, je veux générer une onde qui s'annule. Existe-t-il un moyen de le faire en javascript?

donc cette commande affiche le son actuel recored:

var input = audio_context.createMediaStreamSource(stream); 
volume = audio_context.createGain(); 
volume.gain.value = 0.8; 
input.connect(volume); 
volume.connect(audio_context.destination); 

La question est de savoir comment produire le négatif de ce son et la sortie de cette place.

Répondre

1

Vous diffusez déjà votre signal via une chaîne Web Audio. Ce que vous devez faire est de chaîner un AudioWorker node entre les noeuds d'entrée et de sortie (après ou avant le noeud de gain, n'a pas d'importance). Le script pour le travailleur serait une inversion de signe très simple.

var negationWorker = audio_context.createAudioWorker("negate.js") 
var negationNode = negationWorker.createNode() 
input.connect(negationNode) 
negationNode.connect(volume)