# Práctica 7: Kick drum y random Una vez sabemos qué es y cómo utilizar un envelope, vamos a crear un sonido que imita el **kick drum de una batería.** Crearemos una version sencilla con los elementos de Pure data que hemos aprendido hasta el momento. Vamos a utilizar **dos envelopes,** uno para el **volumen** y otro para la **frecuencia**. Recordar que hemos visto que era un envelope en la [lección anterior.](https://libros.catedu.es/books/arduino-y-pure-data-ondas-color-y-sonido/page/envelope) ##### Envelope que controla el volumen [![image-1668851429554.PNG](https://libros.catedu.es/uploads/images/gallery/2022-11/scaled-1680-/image-1668851429554.PNG)](https://libros.catedu.es/uploads/images/gallery/2022-11/image-1668851429554.PNG)Figura 1. patch *Kick-drum-sencillo-paso-1.pd* Vamos a utilizar un oscilador y vamos a regular su volumen con un envelope utilizando el objeto "**vline~**". Los parámetros del "vline~" son los que nos van a permitir conseguir el efecto del kick-drum. En este caso nuestro envelope parte de 0.5 lo que va a generar un pequeño golpe, el **Attack** es muy rápido, va de 0.5 a 0.8 en **5 milisegundos**. El **Decay** mucho más largo que en el attack baja de nuevo a 0.5 en **60 milisegundos**. **No** tendremos **Sustain** e inmediatamente después del Decay comenzaremos con el **Release**, que sera la parte más larga de nuestro envelope, bajando a 0 en **400 milisegundos**. A continuación veremos el contenido del mensaje que recibirá el "vline~" con los parámetros que configuran cada rampa de nuestro envelope, y una tabla en la que desgranaremos esos parámetros: ##### 0.5, 0.8 5, 0.5 60 5, 0 400 65
RampasValor inicialValor FinalDuración (milisegundos)Delay. Tiempo desde el inicio del envelope, hasta el comienzo de esta Rampa (milisegundos)
Attack0,50.850
Decay0.80.5605
Sustain----
Release0.5040065 = 60 + 5
#####

Ejercicio 5: Abrir el patch *Kick-drum-sencillo-paso-1.pd* y completar siguiendo las instrucciones que encontrareis a lo largo de la lección para crear un Kick drum. Al archivo que modifiquéis lo llamareis *Kick-drum-sencillo-vuestronombre\_vuestroapellido.pd*

Cuando abráis el patch *Kick-drum-sencillo-paso-1.pd, s*ubir un poco el volumen, aseguraros de que el "osc~" está recibiendo un valor con el que vibrar (con activar el "osc~" os he ayudado un poquitito con el objeto "loadbang" que envía automáticamente un bang al abrir el patch). Ahora hacer click en el bang azul del patch. ¿Escucháis algo? ¿Veis cómo se dibuja la onda cada vez que enviáis el bang?

Recordar que, si no tenéis encendido el DSP, Pure Data no procesara señales y ni oiréis ni veréis nada

Cuando enviamos el bang para activar el envelope que controla el volumen, habréis podido comprobar que cada vez suena un poco diferente, al igual que el dibujo de la onda que veis en el array "$0-scope3", que cada vez se empieza a dibujar en un punto distinto. Esto pasa por que la **fase de la onda** cada vez que activamos el envelope es **distinta**. Figura 2. Muchos aros girando con diferentes fases unos de otros. ¿Os acordáis de lo que es la fase? Lo vimos en la lección ["Algo de teoría sobre las ondas". ](https://libros.catedu.es/books/arduino-y-pure-data-ondas-color-y-sonido/page/algo-de-teoria-sobre-las-ondas)Para que suene siempre igual tendremos que **inicializar la fase** del oscilador cada vez que activemos el Kick drum, haremos esto a través del **inlet derecho** del oscilador. Podéis probar diferentes valores para la fase buscando el sonido que más os guste: [![image-1668851446233.PNG](https://libros.catedu.es/uploads/images/gallery/2022-11/scaled-1680-/image-1668851446233.PNG)](https://libros.catedu.es/uploads/images/gallery/2022-11/image-1668851446233.PNG) Figura 3. Añadimos un control de fase al oscilador del patch *Kick-drum-sencillo-paso-1.pd* ##### ##### Envelope que controla la frecuencia Hasta el momento la frecuencia del kick drum se mantiene constante desde el inicio al final del sonido del kick drum, en la figura 3 es de 71 Hz. Para continuar dándole forma al kick drum vamos a introducir un **envelope** que modifique la **frecuencia**, siendo mas aguda al principio que al final. En este caso nuestro envelope tendrá tres secciones, la primera un **Attack** que va de 6 a 2 en **2 milisegundos**. La segunda un **Sustain** que dura **3 milisegundos** y la ultima un **Release** que va de 2 a 0 en **460 milisegundos**. En este caso nuestro envelope **no** tiene **Decay**. ##### 6, 2 2, 0 460 5
RampasValor inicialValor FinalDuración (milisegundos)Delay. Tiempo desde el inicio del envelope, hasta el comienzo de esta Rampa (milisegundos)
Attack6220
Decay ---
Sustain223 = 5 - 2
Release204605
Vemos que la duración del Sustain viene determinada por la duración de la rampa anterior y el delay de la rampa siguiente. ![image-1668854261115.PNG](https://libros.catedu.es/uploads/images/gallery/2022-11/scaled-1680-/image-1668854261115.PNG)Figura 4. Envelope que utilizaremos para controlar la frecuencia del "osc~" en el patch que estamos modificando: *Kick-drum-sencillo-paso-1.pd* En el envelope de la figura 4, tenemos una variación de valores que va de 6 a 0 en 465 milisegundos. Una frecuencia de 6 Hz es muy muy baja y ni la escucharemos ni nuestros altavoces serán capaces de reproducirla. Lo que vamos a hacer es elegir una **frecuencia central** en torno a la cual se produzca la variación que nuestro envelope controla. Vamos a mezclar esa frecuencia y la señal que genera nuestro envelope utilizando el objeto "\*~". Si os fijáis también multiplicamos el resultado del envelope por sí mismo con otro objeto "\*~" esto hara los cambios del envelope más pronunciados: ![image-1668855179029.PNG](https://libros.catedu.es/uploads/images/gallery/2022-11/scaled-1680-/image-1668855179029.PNG) Figura 5. el patch que estamos modificando: *Kick-drum-sencillo-paso-1.pd* una vez hemos añadido el envelope que controla la frecuencia. Como podéis comprobar, hemos hecho coincidir el tiempo de duración total del envelope que regula la frecuencia y el del envelope que regula el volumen, 465 milisegundos, si estos tiempos fueran distintos, la duración del kick drum vendría determinada por el envelop que controla el volumen. Como podéis ver, multiplicamos nuestro envelope por el valor de la frecuencia central de nuestro kick drum. En el ejemplo de la figura 5, la frecuencia inicial del kick drum es de 6x45= 270, tras 2 milisegundos esa frecuencia baja y se mantiene 3 milisegundos en 2x45= 90 Hz y de ahí descenderá a 0 en 460 milisegundos. ¿Veis cómo como varia la frecuencia de nuestra onda con respecto al paso anterior en el cual la frecuencia era constante? [![image-1668855614467.png](https://libros.catedu.es/uploads/images/gallery/2022-11/scaled-1680-/image-1668855614467.png)](https://libros.catedu.es/uploads/images/gallery/2022-11/image-1668855614467.png) Figura 6. Comparación entre la onda con frecuencia de 71 Hz constante (izquierda) y la onda con frecuencia variable (derecha) regulada por un envelope. ##### Envelopes regulables Ahora, vamos a hacer regulable una parte del envelope que controla la frecuencia, en concreto el valor inicial del envelope utilizando el símbolo **$**, esto va a afectar al golpe inicial del kick drum. Hemos visto el uso del símbolo $ en [Envelope | Librería CATEDU](https://libros.catedu.es/books/arduino-y-pure-data-ondas-color-y-sonido/page/envelope) ¿Qué notáis al variar ese valor? ![image-1668856577254.PNG](https://libros.catedu.es/uploads/images/gallery/2022-11/scaled-1680-/image-1668856577254.PNG)Figura 7. el patch que estamos modificando: *Kick-drum-sencillo-paso-1.pd* una vez hemos hecho modificable el envelope que controla la frecuencia. Vamos a introducir ahora un nuevo elemento para controlar la escala de la frecuencia inicial de manera aleatoria. El objeto random. #### #### random Este objeto va a generar **valores aleatorios** en un rango determinado que comienza en 0. El número de valores desde el 0 que va a generar lo configuraremos en el argumento del random. Por ejemplo, si el argumento es 4, cada vez que reciba un bang enviara por su out put un 0, un 1, un 2 o un 3. ![image-1667470475224.PNG](https://libros.catedu.es/uploads/images/gallery/2022-11/scaled-1680-/image-1667470475224.PNG)Figura 8. patch *random-demo.pd* primera parte Si queremos que el rango comience en otro valor por ejemplo 17, sumaremos ese valor al resultado del random. De esta forma obtendremos valores aleatorios entre 17 y 20, 17 y 20 incluidos. [![image-1667470556940.PNG](https://libros.catedu.es/uploads/images/gallery/2022-11/scaled-1680-/image-1667470556940.PNG)](https://libros.catedu.es/uploads/images/gallery/2022-11/image-1667470556940.PNG)Figura 9. patch *random-demo.pd* segunda parte

Ejercicio 6: crea un patch utilizando el objeto random que genere valores pares entre 20 y 30. \[20, 22, 24, 26, 28, 30\]. A este patch lo llamareis *random-ejercicio2\_vuestronombre\_vuestroapellido.pd*

Ejercicio 7: Observa los valores impresos en la ventana de Pd procedentes del random de la figura 9. ¿Qué sucede cada vez que envías el mensaje de "seed 50" al random? Para visualizar mejor lo que sucede imprime también el mensaje de "seed 50" cada vez que lo envies al objeto random. ¿Y si mandas en mensaje "seed 4962"? Observa la secuencia de números que se genera. En un documento al que llamareis *random-ejercicio3\_vuestronombre\_vuestroapellido* colocar una captura de pantalla de lo que sucede y responder a las preguntas.

Ahora que ya conocemos el random, incluyámoslo en el control del envelope que regula la frecuencia de nuestro kick drum. El random va a controlar el valor de partida de ese envelope: ![image-1668857205448.PNG](https://libros.catedu.es/uploads/images/gallery/2022-11/scaled-1680-/image-1668857205448.PNG)Figura 10. el patch que estamos modificando: *Kick-drum-sencillo-paso-1.pd* una vez hemos hecho que un objeto random modifique el envelope que controla la frecuencia.

Ejercicio 8: Una vez lograste un patch como el de la figura 10, os toca experimentar, probar lo queráis con lo que hemos a prendido hasta ahora, buscar sonido que os parezcan interesantes, lo que queráis. El archivo que creéis para este ejercicio lo llamareis *kick-drum-lab\_vuestronombre\_vuestroapellido.pd*

##### ¿Qué tenemos que entregar? Los 4 ejercicios de la lección. Sube a la carpeta del Moodle de la Practica 7 los siguientes archivos: - Ejercicio 5: patch ***practica7\_Kick-drum-sencillo-vuestronombre\_vuestroapellido.pd*** - Ejercicio 6: patch ***practica7\_******random-ejercicio2\_vuestronombre\_vuestroapellido.pd*** - Ejercicio 7: documento ***practica7\_random-ejercicio3\_vuestronombre\_vuestroapellido*** - Ejercicio 8: patch ***practica7\_kick-drum-lab\_vuestronombre\_vuestroapellido.pd*** Figuras: Figura 1. patch *Kick-drum-sencillo-paso-1.pd* Figura 2. Muchos aros girando con diferentes fases unos de otros. [https://giphy.com/gifs/hooping-hula-perth-MwC8t7MaaR7kCr3FaN ](https://giphy.com/gifs/hooping-hula-perth-MwC8t7MaaR7kCr3FaN) Figura 3. Añadimos un control de fase al oscilador del patch *Kick-drum-sencillo-paso-1.pd* Figura 4. Envelope que utilizaremos para controlar la frecuencia del "osc~" en el patch que estamos modificando: *Kick-drum-sencillo-paso-1.pd* Figura 5. el patch que estamos modificando: *Kick-drum-sencillo-paso-1.pd* una vez hemos añadido el envelope que controla la frecuencia. Figura 6. Comparación entre la onda con frecuencia constante (izquierda) y la onda con frecuencia variable (derecha) regulada por un envelope. Figura 7. el patch que estamos modificando: *Kick-drum-sencillo-paso-1.pd* una vez hemos hecho modificable el envelope que controla la frecuencia. Figura 8. patch *random-demo.pd* primera parte Figura 9. patch *random-demo.pd* segunda parte Figura 10. el patch que estamos modificando: *Kick-drum-sencillo-paso-1.pd* una vez hemos hecho que un objeto random modifique el envelope que controla la frecuencia.