FUJIMOFUJIMO

24 Junho, 2007

Square Wave: midi e phasor

Arquivado em: pd — saturno @ 14:24

Um square wave (onda quadrada) é uma forma de onda básica que contém apenas harmônicas ímpares. É um som que foi popularizado nos anos 80 e início de 90 por vídeo games.

[sourceforge]
Exemplo feito usando o programa square1.pd

Para gerar uma onda quadrada teremos que subtrair um saw wave (Onda dente de serra) de um outro saw wave com a mesmo frequência e com uma fase de 180°. (fonte)

Como gerar um squarwave usando sawtooth

fonte

Esse programa demonstra a geração de uma onda quadrada. O objeto phasor~ gera uma onda dente de serra. O primeiro inlet espera a frequência e o inlet espera uma fase. Em pd fases são expressadas com valores entre 0 e 1 onde 1 é igual a 360° ou 4π.

square1

fonte

Esse programa permite seu usuário tocar uma onda quadrado com um teclado midi. Ele é monofônico mas sua interpretação de dados midi é incompleta. Existem erros evidentes quando mais de uma tecla é acionada ao mesmo tempo. Essas limitações serão atacadas nos próximos posts.

O objeto notein dispara três números quando uma tecla midi é acionada. O terceiro outlet dispara o canal do instrumento, o segundo a velocidade ou volume expressado com valores entre 0 e 127 (7bits) e o primeiro a nota do teclado expressada em 7bits onde A 440hz = 57. Inverti a ordem aqui porque em PD objetos que disparam mais de um outlet seguem ordem de direita para esquerda.

Nesse programa desconsideramos o canal, a velocidade dividimos por 127 para pegar um valor em RMS entre 0 e 1 e a nota passamos pelo objeto mtof para pegar sua frequência.

ver: mtof array

  1. […] Esse programa é igual ao sintetizador anterior mas o objeto notein foi substituído pelo objeto pd com argumento midi. O objeto pd cria uma janela nova (chamado de subpatch). Seu propósito é permitir separação de código que facilita a leitura do programa. Seu parâmetro é qualquer nome que descreve sua funcionalidade. […]

    Pingback de Fujimo, A Banda »Square Wave: Monofônico — 24 Junho, 2007 @ 14:24