3.3. Oscilador por tabla de onda

Un oscilador por tabla de onda es un dispositivo en el cual el ciclo de la forma de onda a leer periódicamente es almacenado en una matriz de datos. Para crear una matriz en una ventana nueva de PD vamos al menú Poner, y seleccionamos la opción Matriz.

Descubrimos que inmediatamente aparece un cuadro de diálogo donde establecemos sus propiedades. En el campo Nombre escribimos una palabra que describa su uso, por ejemplo oscilador. En Tamaño determinamos las dimensiones de la tabla, que para nuestro ejemplo deberá ser un número potencia de dos (256, 512, 1024), al cual le sumaremos tres unidades, que son destinadas a cálculos internos que PD precisa realizar (512 + 3 = 515, por ejemplo). Mientras mayor sea el tamaño, mejor definido estará el ciclo de la onda, pero también será mayor el procesamiento requerido para su empleo. Por último presionamos OK para crear la matriz y el gráfico donde se representan los datos que contiene. Podremos volver al menú de propiedades del objeto cuando deseemos, haciendo clic derecho sobre la tabla.

Para leer cíclicamente la tabla, a una frecuencia determinada, utilizamos el objeto tabosc4~, con el nombre de la tabla creada como argumento (en nuestro ejemplo, la palabra oscilador).


G.3.3. Oscilador por tabla de onda

En la parte inferior del patch de la figura G.3.3. observamos dos mensajes destinados a nuestra tabla, denominada oscilador. El primero emplea el término cosinesum para crear una cosinusoide, o la suma de varias componentes cosinusoidales. Luego de esa palabra, colocamos el tamaño de la tabla (512 muestras), y después una sucesión de números que representa la amplitud de cada armónico, comenzando con la componente de 0 Hz.

En el ejemplo fijamos una amplitud igual a cero para 0 Hz, y una amplitud igual a uno para el primer armónico de la onda; el resultado es un sonido puro. El segundo mensaje crea una tabla, también de 512 muestras, con componentes sinusoidales de amplitud 0.5 (primer armónico), 0 (segundo armónico), 0.25 (tercer armónico) y 0.1 (cuarto armónico).


Aquí utilizamos el término sinesum (suma de sinusoides, y no de cosinusoides), y que la amplitud de la componente de 0 Hz no se aplica en este caso.


El patch “18-oscilador por tabla.pd” implementa el ejemplo anterior. Según vimos, el ciclo de la señal a reproducir se determina mediante mensajes dirigidos al objeto Matriz. No obstante, también es posible dibujar la forma de onda, trazándola con el puntero del mouse directamente sobre el gráfico que representa la tabla.

 

Las tablas pueden tener diversos usos, entre ellos, pueden servir a la representación gráfica de formas de onda producidas por objetos o patches generadores de señales de audio. En G.3.4. observamos el gráfico de una matriz de 882 muestras, capaz de almacenar 0.02 segundos de una señal muestreada a 44 100 Hz. Como fuente empleamos un objeto osc~, cuyas muestras son almacenadas por el objeto tabwrite~ en la tabla onda, cada vez que este recibe un bang.


G.3.4. Visualización de una forma de onda mediante una tabla

El patch “19-osciloscopio.pd” contiene la programación del ejemplo anterior. Un osciloscopio es un instrumento de medición capaz de representar gráficamente la variación de señales eléctricas en función del tiempo. De ahí el nombre dado a este ejemplo.