Osciladores
30 mins
Onda sinusoidal. osc
El objeto osc~ es un generador de ondas sinusoidales, también conocidas como ondas puras. Debe recibir en su inlet izquierdo la frecuencia de la onda que queramos generar en Hz. Este objeto va a generar una onda pura, esto quiere decir una onda sin armónicos, constituida por una sola frecuencia y con una amplitud de 1, por lo que generara valores de -1 a 1.
Onda de sierra: phasor
Estas ondas suenan más agresivas y estridentes que las ondas sinusoidales, y contienen armónicos pares e impares de la frecuencia fundamental.sinusoidales. La forma de esta onda son una sucesión de rampas iguales que van de 0 a 1 en un tiempo determinado. Al llegar a 1 los valores caen inmediatamente a 0 desde donde comienza de nuevo la rampa. Cada rampa será una repetición y la frecuencia de esta onda vendrá determinada por el número de rampas sucedido en una unidad de tiempo. Tenemos una onda de sierra que va de 0 a 1, luego su amplitud sera de 0.5, por lo que vamos a normalizarla, que quiere decir ajustar el centro del desplazamiento transversal de una partícula en 0 con una amplitud de 1. Para ello la multiplicaremos por dos para obtener una amplitud de 1 y para colocar su centro en 0 le restaremos 1.
Normalizar
Onda rectangular: phasor + filtro
Su forma se alterna entre 0 y 1, generando una onda rectangular. Para conseguir esta onda vamos a partir de una onda de sierra que vamos a transformar con el objeto "expr~". Vamos a ver un poco cómo funciona el objeto expr:
Este objeto nos va a permitir evaluar expresiones utilizando operadores matemáticos (<, ==, +, ...) o estructuras condicionales (si esta condición se cumple, entonces envía en valor A, si esta condición no se cumple envía el valor B. En programación por defecto las situaciones ciertas se representan con un 1, y las falsas con un 0.
Como sabemos la onda de sierra es una rampa lineal que va de 0 a 1 en un tiempo determinado. Esta rampa pasa por valores intermedios entre 0 y 1, la onda rectangular que queremos crear ahora no pasa por ningún valor intermedio, va de 0 a 1 inmediatamente. Para convertir esta rampa lineal en un salto vamos a decirle al objeto expr~ que todos los valores de 0 a 0.5 pasen a ser 0 y que todos los valores de 0.5 a 1 pasen a ser uno. Como por defecto verdadero es igual a 1 y falso es igual a 0, no tendremos que añadir estos parámetros en la expresión que quedara de la siguiente manera:
$v1 sera la señal que el "phasor~" en via al inlet de "expr~". Cuando los valores generados por el phasor sean mayores que 0.5 la expresión devolverá por su output un 1, cuando los valores sean menores que 0.5 devolverá por su output un 0.
Ahora tenemos una onda rectangular que va de 0 a 1, luego su amplitud sera de 0.5, por lo que vamos a normalizarla como hicimos anteriormente con la onda de sierra. La multiplicaremos por dos para obtener una amplitud de 1 y para colocar su centro en 0 le restaremos 1.
Onda triangular
Explicar el if
Os dejo los patches de lo que hemos visto anteriormente y un patch con todas las ondas para que podáis compararlas.