FUJIMOFUJIMO

1 Julho, 2008

saturator~

Arquivado em: pd — saturno @ 21:10


Compressor não-linear para o pd. GPL.

9 Novembro, 2007

Papai Noel…

Arquivado em: pd — virgilio @ 9:00

virgílio to saturno, joão:
Disse que vai trazer isso pra vocês:


25 Agosto, 2007

Square Wave: Monofônico

Arquivado em: pd — saturno @ 11:50

Um sintetizador monofônico

fonte

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.

subpatch midi do programa squarewave2-monophonic.pd

Esse subpatch pega os outlets de nota e de velocidade do objeto noteout e só permiti a saída deles se a saída de velocidade não for 0 ou se a saída for 0 e a nota for a mesma que a nota tocada anteriormente.

Nesse subpatch temos quatro objetos novos. O objeto f ou float controla números. Nele temos dois inlets. Quando o da direita é acionada com um número este será carregado na memória do objeto. Quando o da esquerda é acionado com um bang o número em sua memória sairá pelo outlet. Quando o da esquerda é acionado com um número este sairá pelo outlet e será carregado na memória do objeto. também existe o objeto symbol que se comporta da mesma forma mas com o symbols em vez de números.

O objeto t ou trigger recebe como parâmetro tipos de valores (bang/b, float/f, s/symbol, a/anything) e cria um outlet para cada argumento do tipo designado. Quando o inlet é acionado todos os outlets serão acionados na ordem convencional.

O objeto sel ou select recebe como parâmetro números e/ou symbols. Para cada argumento do parâmetro ele cria um novo outlet. Quando o inlet é acionado com um valor igual ao um dos argumentos, seu outlet é acionado. O sel sempre terá um outlet a mais que fica na direita. Quando o valor do inlet não corresponde ao um argumento ele sairá por este outlet. Neste subpatch temos dois objetos sel. Um verifica se a velocidade for igual a 0 e outro se a nota acionada for igual à nota anterior.

O objeto outlet cria uma saida nova. outlets são organizados horizontalmente. O outlet da esquerda corresponde com o outlet da esquerda no objeto pd no subpatch pai do subpatch que este objeto outlet se encontra. A convenção do pure data quando todos os outlets de um subpatch são acionados ao mesmo tempo é sempre acionar eles de direita pra esquerda. O objeto inlet se comporta da mesma forma mas para inlets, também existe os objetos outlet~ e inlet~ que funcionam com sinais. Neste subpatch temos dois outlets. O primeiro corresponde à nota tocada e o segundo à velocidade.

2 Julho, 2007

Jamie Lidell explica Max/MSP

Arquivado em: pd — saturno @ 17:10


Max/MSP

via musicthing.

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

7 Junho, 2007

DTMF p.4: Duol-tone multi-frequency

Arquivado em: pd — saturno @ 14:39

DTMF é um sintetizador monofônico que usa duas frequências no seu tom. É como seu telefone (não os dos seus avós) funciona.

Hz 1209 1336 1477
697 1 2 3
770 4 5 6
852 7 8 9
941 * 0 #

Essa tabela mostra as duas frequências que um discador aciona quando teclado. Com os exemplos anteriores podemos criar um synth DTMF.

DTMF synth

fonte

Ai está, o único objeto novo é o random que dispara um número aleatório entre 0 e o valor do parâmetro (ou um valor que vem do inlet da direita).

O array $1.dmtfA aqui é um mapa entre os valores do teclado (*=>10, 0=>11,#=>12) e as frequências horizontais da tabela, enquanto o array $1.dtmfB faz o mesmo com as frequências verticais. Com isso temos as duas frequências que um discador gera.

29 Maio, 2007

DTMF p.3: Sequência em Memória (Arrays)

Arquivado em: pd — saturno @ 21:30

ARRAYS

fonte

Baseado no programa A440wclick.pd, esse programa tem a sequência: raiz, quinta, e quarta num Array de 3 elementos (0, 7, 5) chamado $1.seq. Ao digitar 0, 1 ou 3 no campo, os intervalos correspondentes no array são tocados.

O objeto tabread aceita um parâmetro obrigatório que é referência a uma array. O inlet deste objeto recebe um número que é um índice para ser lido no array. Do outlet sai o valor indexado.

O objeto mtof converte uma nota midi (0-127) para sua frequência. Também existe ftom.

Para saber sobre tabwrite confere com o help do pd clicando o botão direito neste objeto.

27 Maio, 2007

DTMF p.2: Oscilador com botão

Arquivado em: pd — saturno @ 16:32

A 220Hz with click

fonte

Esse programa é feito a partir do programa A220.pd. O programa anterior somente gerava uma oscilação de 220 Hz continuo. Este programa adiciona um botão (bang) que aciona a oscilação por 100ms.

Quando o inlet de um objeto del (ou delay) é acionado por um bang ele acionara um bang na sua saida (outlet) após um tempo determinado no seu parâmetro ou no seu segundo inlet. Esse parâmetro é em milisegundos. Neste caso o delay é de 100ms.

Neste programa o delay, bang, e mensagens 0 e 1 são usados para permitir a saída do sinal do objeto osc~ por 100ms.

DTMF p.1: Um oscilador

Arquivado em: pd — saturno @ 15:34

A 220Hz

fonte

Aqui está um oscilador feita em pure data (pd) afinado ao La, 220 Hz. Esse programa é simples, não faz muito. Pessoalmente só uso isso pra afinar instrumentos.

O objeto osc~ gera uma oscilação sinusóide, ele aceita um parâmetro que é a frequência. Esse valor pode ser controlado usando a primeira entrada (inlet). Esse inlet aceita um número ou um sinal.

O objeto *~ multiplica o sinal na esquerda pelo valor na direita. O primeiro inlet controle o valor da esquerda e segundo o da direita. O primeiro inlet tem que ser um sinal, o segundo pode ser sinal ou número. pd usa rms em seus cálculos.

O objeto dac~ é o digital to analog converter. É a interface de audio do computador. O primeiro inlet leva o sinal para esquerda e o segundo para direita.

Mais informações sobre o pd em português aqui.