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).
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.
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.