Você está aqui: JavaScript ::: Web Audio API ::: OscillatorNode |
Como criar um oscilador de onda de dente de serra em JavaScript usando a Web Audio API e um OscillatorNodeQuantidade de visualizações: 311 vezes |
Nesta dica mostrarei como podemos usar a Web Audio API, em particular um nó OscillatorNode, para criar um oscilador de onda de dente de serra em HTML e JavaScript. Um oscilador de onda de dente de serra é uma espécie de forma de onda não-senoidal básica. Ela recebeu o nome dente de serra baseado em sua semelhança com a lâmina de uma serra. O som desta onda é desarmonioso e limpo, e seu espectro contém ambas as harmônicas normais e estranhas da frequência fundamental. Devido ao fato de ela conter todas as harmônicas inteiras, ela é considerada uma das melhores formas de onda para a construção de outros sons, particularmente cordas, utilizando a síntese subtrativa. Veja na imagem abaixo a representação de um som no formato dente de serra: ![]() 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 de dente de serra. Veja o código JavaScript completo para exemplo: <!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 // dente de serra 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 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 |