Saltar navegación

[•] Cómo está feito?

Facer esto en Pure Data non é moi complexo. De entrada fíxate que agora estamos usando ás dúas entradas da nosa saída de audio [dac~]. Esto é porque traballaremos en estereo e imos enviar diferente intensidade sonora a un o a outro altavoz. Esta é unha das formas mási básicas de crear a sensación de panorama. 

Poderíamos xenerar unha panorámica sonora cunha serie de operacións similares ás que usamos cando creamos un "crossfade" na lección da Taboa de Ondas pero é máis rápido se usamos un obxecto chamado [pan~]. Este obxecto acepta valores entre -45 e 45 (refírese a grados entendendo que 0 é o centro) polo que o "slider qu o controla ten que estar configurado (botón dereito/propiedades)para que o seu valor mínimo sexa -45 e o máximo 45.

 

Pero tamén temos a opción de usar a un familiar de [pan~] chamado [pansig~] co que podemos utilizar outro sinal (signal) para automatizar o movemento de dereita a esquerda enviando valores de -1 a 1, por exemplo un [osc~] conectado á súa entrada dereita. Agora podemos controlar a velocidade á que se move o noso oscilador e, en consecuencia, o movemento do son.

A última opción que consta de dúas partes. A primeira é unha operación matemática usando obxectos que xa vimos [*], [-], [Hslider]..., da que te faleí antes, que permite que a relación entre o volumen que sae pola dereita e o que sae pola esquerda sexa inversamente proporcional.

 

 

A segunda parte é un controlador que lee dunha secuencia de valores, o que se ven chamando un secuenciador. Aquío xa ttemos algunhas cousas novas.

O primeiro é un [metro] que cando o activamos co [toggle] empeza a disparar [bangs] cada certo número de milisegundos. Como en moitos obxectos podemos deixar un argumento fixo, neste caso 500, ou cambialo cunha caixa numérica na súa entradda dereita.

A continuación queremos que conte o número de [bang] que van saindo. Pois para esto facemos un contador moi sinxelo que consiste en  crear un [float] que almacena un número e o envía cando lle chega o seguinte [bang]. O primeiro que envía será 1 ao que lle sumamos 1 e o almacenamos no [float] que cando reciba o seguinte [bang] enviará 2, ao que lle sumamos 1 de novo e o almacenamos de novo...

Pero a nos interesanos, xa verás por qué, poder limitar ata onde queremos que conte e que entón volva a empezar.

A mellor forma de facer esto é traballar co pbxecto [mod] (módulo). Esto ven sendo como se divise o número entrante entre o valor que lle indiquemos pero devolve o resto e non o resultado e non crea decimáis. Así que se dividimos 1 entre 10 non pode facelo xa que non fai decimales e polo tanto o resto é 1, con 2, 3, 4, 5, 7, 8 e 9 acontece o mesmo polo que devolve o número que entra, pero cando chega a 10 xa pode facer a división e o resto é 0, cando divide 11 entre 10 o resto é 1, 12 entre 10 ten un resto de 2... Variando este valor podemos facer que o ciclo sexa máis corto ou máis longo.

Pero, Para que utilizamos esto? Pois para leer a nosa taboa "pan1_control". Por cada número que entra no obxecto [tabread] este vai a taboa e devolve o valor que ten o punto indicado. Con 0 lee o primeiro punto, con 1 o segundo punto... e da ó seu valor polo que o enviamos para controlar a panorámica.

Se queres podes probar a crear percorridos máis longos co que terías que cambiar as propiadades da taboa. A ver se consegues crear un ciclo de 20 valores, por exemplo.

Por último, antes de enviala introducimos un [line] para que o movemento sexa máis suave facendo transiciósn entre un valor e outro.

 

Elementos utilizados

OBXECTOS: [Hradio], [demux~], [s~], [r~], [Hslider], [pan~], [throw~], [catch~], [/], [osc~], [pansig~], [-], [*], [toggle], [metro], [f], [+], [mod], [tabread], [line] e caixas numéricas.

MENSAXES: mensaxe variable para controlar [line].