Você está na página 1de 6

Geradores de formas de onda

Nesta aula construímos geradores dente de serra, triângulo e forma de onda


quadrada a partir da combinação de harmónicos de onda senoidal, criando
graficamente essas formas de onda em um vetor e aplicando esse vetor de volta
como um oscilador.

Introdução

Além de utilizar os osciladores embutidos, tais como [osc ~] e [fasor ~], ou utilizando
matemática de áudio na saída de [fasor ~] para criar novas formas de onda, é
possível gerar as formas de onda dente de serra, triângulo ou quadrada com uma
combinação de ondas senoidais. Quando escrito para um veto, essas formas de
onda podem ser reproduzidas como um oscilador.

Este método tem algumas vantagens sobre o uso de [fasor ~] para criar diferentes
formas de onda. A primeira vantagem é que as formas de onda resultantes irão ser
banda-limitada (bandlimited). Isso significa que o número de harmônicos que
produzem será limitado, e causará menos ruído aliasing.

A segunda vantagem é que estas formas de onda se assemelham aos tipos de


formas de onda geradas por electrónica analógica. Formas de onda analógicas
mundo real não têm os ângulos completamente agudos de suas contrapartes
digitais idealizadas devido ao efeito de "ondulação" inerente a ressonância de seus
circuitos. Pode-se dizer que subjetivamente estas formas de onda são mais
"quentes” e "soando analógico" do que os produzidos por [fasor ~].

O princípio básico usaremos aqui vem do teorema de Fourier. Este teorema afirma
que qualquer forma de onda complexo pode ser dividido em uma série de ondas
senoidais simples que, quando adicionado de volta juntos, que podem reproduzir de
forma de onda.

usando Sinesum

Em Pd, podemos escrever formas de onda para uma tabela utilizando uma
mensagem interna. Uma mensagem interna é uma caixa de mensagem que,
quando clicado, envia a mensagem interna para a aplicação Pd em si. Um exemplo
seria as mensagens que podem ser usados para transformar o processamento de
áudio ligado e desligado em Pd:

Portanto, para criar e carregar uma tabela com uma forma de onda, é preciso
primeiro criar um vetor (array) a partir do menu Put. Em seguida, dar o nome de
"waveform" nas propriedades:

Depois disso, nós criamos uma mensagem, e escreva o seguinte nele (usando a
tecla Enter após o ponto e vírgula para iniciar uma nova linha):

; waveform sinesum 2051 1

A vírgula indica que a mensagem é uma mensagem interna, e "waveform" indica


que estamos enviando informações à matriz chamada "waveform". A palavra
"sinesum" conta a matriz que estaremos enviando-lhe uma série de harmônicos que
deseja representar graficamente. O número "2051" conta a matriz que deseja
representar graficamente essas harmônicas para fora em 2.051 unidades na faixa
de X, de modo que a matriz será redimensionada a partir de 100 (seu tamanho
padrão) para 2051. Finalmente, o número "1" indica que nós quero escrever uma
única onda senoidal com uma amplitude de pico de 1 para a matriz.

Quando clicar na mensagem, vemos uma onda senoidal pura representados


graficamente para a matriz:
Onda dente de serra

A maneira que sinesum funciona é que você envie uma lista das amplitudes dos
harmônicos que deseja representar graficamente. Uma onda de dente de serra é o
mais simples, uma vez que utiliza a fórmula 1 / h (em que "H" indica o número da
harmónica) para calcular as amplitudes. Por conseguinte, a amplitude do primeiro
harmônico é 1/1 = 1, o segundo é 1/2 = 0,5, o terceiro é 1/3 = 0,33333, etc, etc.

Aqui está uma mensagem para computar uma onda dente de serra muito rudimentar
usando apenas quatro harmônicos:

; waveform1 sinesum 1 0.5 0.33 0.25

E aqui como é grafado:

Como o gráfico é o produto de várias ondas senoidais sendo somadas, a forma de


onda pode ir fora dos limites normais -1 a 1 de um sinal de áudio. A mensagem:

; waveform1 normalize 1

irá ajustar a gama do sinal para caber dentro dos limites de -1 e 1. A seguir, temos
dois exemplos de ondas em dente de serra, tanto normalizado para a gama de -1 a
1. Como pode ser visto, quanto mais harmónicos utilizados para calcular a forma de
onda, mais perto se chega à sua forma matemática idealizada:
A reprodução das Waveforms em gráficos

Para reproduzir as formas de onda temos representadas graficamente para vetores,


usamos o objeto [tabread4 ~] . É necessário um sinal de áudio como sua entrada,
que lê ao longo do eixo X do vetor e saídas como um sinal de áudio os valores que
se encontra ao longo do eixo Y.

Podemos usar [fasor ~] para reproduzir a matriz como um oscilador quando escalar
sua saída, que é normalmente de 0 a 1, para se ajustar o comprimento total do
vetor. Assim, se a nosso vetor é de 2.051 pontos de comprimento, então podemos
usar uma multiplicação objeto Áudio [* ~] para obter uma saída de 0 a 2051. O
aumento da frequência da [fasor ~] vai aumentar a freqüência na qual a forma de
onda na matriz é reproduzido do início ao fim
O objeto [tabread4 ~] pode levar o nome do vetor que vai ler como um argumento
da criação, ou você pode usar uma mensagem como o seguinte para alterar o vetor
que lê a partir de:

set waveform 2

Onda triangular

Uma onda triângulo também pode ser simplesmente gerada com apenas alguns
harmônicos. A forma de uma onda triangular é feita usando apenas os harmônicos
ímpares (1, 3, 5, 7, etc.). Zeros são utilizados para a amplitude dos harmônicos
pares (2, 4, 6, 8, etc). Em seguida, um é dividido pelo quadrado de cada um desses
harmónicos (ou seja, 1 / H2). Finalmente, a amplitude de todos os outros
harmônicos é multiplicado por -1 (isto é, as amplitudes do terceiro, sétimo, nono, etc
harmónicas). A onda de triângulo se forma muito rapidamente com apenas quatro
harmônicos, e como mais harmônicos são adicionados, os vértices do triângulo se
tornam mais nítidos.

Onda quadrada

Uma onda quadrada leva mais alguns harmônicos adicionados para chegar perto de
sua forma matemática ideal . Esta forma de onda é criada também usando apenas
os harmônicos ímpares (1, 3, 5, 9, ...) e zero também é usado para a amplitude dos
harmônicos pares (2, 4, 6, 8 ...). Em seguida, um é dividido pelo número do
harmônico para obter a sua amplitude (isto é, 1 / h). Como ilustrado abaixo, uma
onda quadrada composta de apenas quatro harmônicos não é muito quadrado, mas
quando mais harmônicos são adicionados a sua forma torna-se muito clara.

obs: corrija waveform5 sinesum 2051 1 0 0.333 0

http://en.flossmanuals.net/pure-data/audio-tutorials/generating-waveforms/
tradução e adaptação: prof Anselmo Guerra

Você também pode gostar