Você está aqui: JavaScript ::: Web Audio API ::: OscillatorNode |
Como criar um oscilador de onda senoidal em JavaScript usando a Web Audio API e um OscillatorNodeQuantidade de visualizações: 614 vezes |
|
Nesta dica mostrarei como podemos usar a Web Audio API, em particular um nó OscillatorNode, para criar um oscilador de onda senoidal em HTML e JavaScript. Um oscilador de onda senoidal usa a função seno ou senóide para a representação do som. Veja na imagem abaixo a representação de um som no formato senoidal: ![]() Quando criamos um OscillatorNode nós temos que informar o contexto de áudio (um objeto AudioContext), o formato da onda e a frequência em Hz. Em nosso exemplo eu coloquei a frequência em 440 Hz, representando a nota Lá na quarta oitava do piano. Depois do código há uma explicação mais detalhada sobre a frequência, comprimento e amplitude de uma onda senoidal. Veja o código JavaScript completo para exemplo: ----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
<!doctype html>
<html>
<head>
<title>Como criar um oscilador em JavaScript</title>
</head>
<body>
<h3>Clique o botão Iniciar para iniciar a execução
do Oscilador</h3>
<button id="iniciar_btn"
onclick="iniciar()">Iniciar</button>
<button id="parar_btn" disabled="disabled"
onclick="parar()">Parar</button>
<script language="javascript">
'use strict';
// obtemos referências para os botões de iniciar
// e parar o oscilador
var btn_iniciar = document.getElementById("iniciar_btn");
var btn_parar = document.getElementById("parar_btn");
// vamos declarar o contexto de áudio
var contexto;
// para representar o oscilador
var oscilador;
// função usada para iniciar o oscilador de onda
// senoidal
function iniciar(){
// vamos criar um objeto AudioContext
var AudioContext = window.AudioContext
|| window.webkitAudioContext;
// e obtemos o contexto de áudio
contexto = new AudioContext();
// vamos criar o oscilador na frequência
// de 440Hz
oscilador = new OscillatorNode(contexto, {
type: 'sine',
frequency: 440
});
// conectamos o oscilador à saída
oscilador.connect(contexto.destination);
// e começamos a fazer barulho
oscilador.start();
// vamos desabilitar o botão de iniciar
btn_iniciar.disabled = true;
// vamos habilitar o botão de parar
btn_parar.disabled = false;
}
// função usada para interromper o oscilador
function parar(){
// vamos interromper o oscilador
oscilador.stop();
// vamos desabilitar o botão de parar
btn_parar.disabled = true;
// vamos habilitar o botão de iniciar
btn_iniciar.disabled = false;
}
</script>
</body>
</html>
A frequência descreve o número de vibrações por unidade de tempo, ou seja, quantos ciclos completos a onda percorre em uma unidade de tempo, que pode ser o segundo, o minuto ou qualquer outra unidade que você achar conveniente. A unidade que usaremos para descrever as frequências é o Hertz (Hz). 1 Hz corresponde a um ciclo de vibração por segundo. Por exemplo, quando colocamos um diapasão na forma de garfo em vibração, suas hastes vibrarão a uma frequência de 440 Hz, ou 440 ciclos por segundo, correspondentes à nota musical Lá. Essa nota pode ser perfeitamente descrita pela sua frequência (440 Hz), comprimento de onda (0,77 m) e uma amplitude que vai depender da energia utilizada para colocá-lo em vibração e que descreve a intensidade da variação da pressão do ar. |
|
|
Desafios, Exercícios e Algoritmos Resolvidos de JavaScript |
Veja mais Dicas e truques de JavaScript |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |







