Hacer música con código: composición y rendimiento en vivo con Sonic Pi | Steve Lydford | Skillshare

Velocidad de reproducción


1.0x


  • 0.5x
  • 0.75x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

Hacer música con código: composición y rendimiento en vivo con Sonic Pi

teacher avatar Steve Lydford, Music, Sound Design and Productivity

Ve esta clase y miles más

Obtenga acceso ilimitado a todas las clases
Clases enseñadas por líderes de la industria y profesionales activos
Los temas incluyen ilustración, diseño, fotografía y más

Ve esta clase y miles más

Obtenga acceso ilimitado a todas las clases
Clases enseñadas por líderes de la industria y profesionales activos
Los temas incluyen ilustración, diseño, fotografía y más

Lecciones en esta clase

    • 1.

      Descripción del curso

      1:56

    • 2.

      Introducción

      1:06

    • 3.

      Cómo obtener Sonic Pi

      1:11

    • 4.

      Conocer la interfaz de usuario de Sonic Pi

      8:48

    • 5.

      ¡Vamos a hacer un poco de ruido!

      5:07

    • 6.

      Uso de nombres de notas MIDI

      2:54

    • 7.

      Comentarios del código

      2:49

    • 8.

      Uso del registro

      0:44

    • 9.

      Opciones de juego

      6:14

    • 10.

      Configuración del ritmo

      1:49

    • 11.

      Sintetizadores

      2:52

    • 12.

      Aplicación de filtros de sintetizador

      4:40

    • 13.

      sobres

      8:47

    • 14.

      Jugar muestras

      12:11

    • 15.

      Flujo del programa

      2:01

    • 16.

      Bucles

      6:12

    • 17.

      Bucles anidados

      3:59

    • 18.

      ¡Para el infinito, pero no más allá!

      1:58

    • 19.

      Mejora tu ritmo

      0:50

    • 20.

      Aleatorización

      4:23

    • 21.

      Generación de melodías con aleatorización

      3:37

    • 22.

      Otras funciones aleatorias

      2:24

    • 23.

      Selección

      6:17

    • 24.

      si... más

      3:40

    • 25.

      Combinación de comparaciones

      2:38

    • 26.

      La función de aleatorización one_in

      3:28

    • 27.

      Lo sencillo si

      2:45

    • 28.

      Variables

      5:53

    • 29.

      Contadores de bucle

      4:46

    • 30.

      Listas

      5:13

    • 31.

      Índices

      6:19

    • 32.

      Hacer un secuenciador de tambor

      11:22

    • 33.

      Patrones de juego

      4:26

    • 34.

      Acordes

      7:01

    • 35.

      Escalas

      6:16

    • 36.

      Anillos

      4:54

    • 37.

      Funciones de anillo

      5:36

    • 38.

      Funciones personalizadas

      6:48

    • 39.

      Parámetros de la función

      4:52

    • 40.

      Efectos en Sonic Pi

      2:52

    • 41.

      Opciones de FX

      2:00

    • 42.

      Efectos de encadenamiento

      1:29

    • 43.

      Toma el control

      5:29

    • 44.

      Controlar la diapositiva de nota

      0:58

    • 45.

      Controlar los efectos

      4:38

    • 46.

      Bucles en vivo

      8:28

    • 47.

      Rendimiento en vivo con bucles en vivo

      7:09

    • 48.

      MIDI

      11:54

    • 49.

      MIDI fuera

      4:54

    • 50.

      Audio en vivo

      7:15

    • 51.

      Para terminar

      3:27

  • --
  • Nivel principiante
  • Nivel intermedio
  • Nivel avanzado
  • Todos los niveles

Generado por la comunidad

El nivel se determina según la opinión de la mayoría de los estudiantes que han dejado reseñas en esta clase. La recomendación del profesor o de la profesora se muestra hasta que se recopilen al menos 5 reseñas de estudiantes.

67

Estudiantes

1

Proyectos

Acerca de esta clase

Dirigido a músicos con poca o ninguna experiencia de codificación, este divertido curso te enseñará a componer y tocar música usando el código como tu instrumento. Basado en el marco de Sonic Pi, popular en la escena de Algorave, cubrirás todo, desde los conceptos básicos de la programación hasta el uso de Sonic Pi para el rendimiento en vivo, incluyendo la escritura de un secuenciador de tambor. Más tarde, aprenderás a integrar tu código con MIDI y los instrumentos de audio.

Con cuatro horas de video dividido en cincuenta conferencias, encontrarás descripciones detalladas y demostraciones de:

  • Cómo crear música codificando patrones musicales con sintetizadores y muestras.
  • Conceptos de programación fundamentales, incluyendo el flujo de programas y las estructuras de datos integradas de Sonic Pi.
  • Creación de un secuenciador de batería, melodías de bucle, progresiones de acordes y líneas de bajos desde cero.
  • Cómo usar filtros y sobres ADSR para el diseño de sonido basado en código.
  • Cómo agregar efectos como distorsión, retraso y reverberación para hacer que tus sonidos sean más interesantes.
  • Cómo controlar MIDI y audio desde tu código.
  • Cómo usar las características de Sonic Pi para mejorar tus actuaciones en vivo.

Usaremos el Pi Sonic gratuito a lo largo del curso, y al final, podrás aplicar lo que has aprendido para crear composiciones musicales únicas y interpretar en vivo usando código. Como verás, cualquiera puede aprender a programar. Tomamos cada concepto nuevo paso a paso, y es más fácil de lo que crees, incluso si no tienes absolutamente ninguna experiencia de codificación previa.

Conoce a tu profesor(a)

Teacher Profile Image

Steve Lydford

Music, Sound Design and Productivity

Profesor(a)

Hi, I'm Steve Lydford.

I am a sound designer, software engineer and author with over two decades of professional experience. I am an experienced teacher and have taught numerous courses both online and in-person.

I live with my family in a remote farmhouse in mid-Wales, UK, where I don't have to worry about soundproofing or neighbours!

If you'd like to find out more, please do [follow] my Skillshare profile, and if you've got ideas for classes that you'd find useful, drop me a message/email, and I'll see what I can do

Thanks for watching, and welcome!

Ver perfil completo

Level: All Levels

Valoración de la clase

¿Se cumplieron las expectativas?
    ¡Superadas!
  • 0%
  • 0%
  • Un poco
  • 0%
  • No realmente
  • 0%

¿Por qué unirse a Skillshare?

Mira las galardonadas Skillshare Originals

Cada clase tiene lecciones cortas y proyectos prácticos

Tu membresía apoya a los profesores de Skillshare

Aprende desde cualquier lugar

Ve clases sobre la marcha con la aplicación de Skillshare. Progresa en línea o descarga las clases para verlas en el avión, el metro o donde sea que aprendas mejor.

Transcripciones

1. Descripción del curso: Bienvenido a hacer música con código, la guía completa para codificarlos como Sonic Pi. Este divertido curso está dirigido a músicos con poca o ninguna experiencia en codificación y te enseñará a componer e interpretar música usando código es tus instrumentos. Mi nombre es Steven Moffat y seré su instructor. Llevo más de 30 años escribiendo software y creando música. Y durante ese tiempo he aprendido, trabajado y enseñado más de una docena lenguajes de programación diferentes en este curso, que contiene más de cuatro horas de lecciones en video, aprenderás a usar un enorme marco Sonic Pi popular y gratuito. Cubrirás todo, desde los conceptos básicos de programación para usar en Sonic Pi para diseño de sonido e interpretación en vivo con explicaciones y ejemplos detallados y detallados. En cada etapa, aprenderás a crear música codificando patrones musicales con since y samples. Conceptos fundamentales de programación incluyendo flujo de programa y Sonic Pi es estructuras de datos incorporadas. Cómo crear un secuenciador de batería y melodías en looping, progresiones de acordes y líneas de base desde cero. Cómo usar filtros y envolvente ADSR para diseño de sonido basado en código. El uso de algoritmos de aleatorización para crear música generativa. Cómo agregar efectos como distorsión, delay y reverb para que tus sonidos se interesen mucho más. Aprenderás a controlar midi y audio desde tu código e integrarlos en tus actuaciones. Al finalizar el curso, podrás aplicar lo aprendido para crear composiciones musicales únicas e interpretar en vivo usando código. Y verás que cualquiera puede aprender a programar. Tomaría cada uno de los conceptos nuevos paso a paso y realmente es mucho más fácil lo que crees que el curso está dirigido a músicos que deseen obtener algunos conocimientos de programación utilizando el código como instrumento para composición, inspiración, grabación e interpretación en vivo. No necesitas ninguna experiencia previa en codificación o conocimiento profundo de matemáticas o ciencias de la computación. O lo que necesitas son algunos conceptos musicales básicos como nota, escalas, acordes y ritmo. Y una computadora Windows mac o Raspberry Pi. Así que únete y aprende a usar el código para crear cualquier música que puedas imaginar. Y tal vez incluso algunos no se puede. 2. Introducción: Hola y bienvenidos a este curso donde vamos a ver el uso código para hacer música tanto para actuaciones en vivo como para nuestras composiciones. Por lo que he asumido absolutamente ningún conocimiento previo de programación en absoluto para este curso. Este curso está muy dirigido a músicos que quisieran usar código para componer e interpretar música, o introducir cada conceptos de programación paso a paso. Nos lo tomaremos agradable y despacio y habrá muchas oportunidades para practicar. Ahora hay algunas cosas que deberías tener para sacar el máximo provecho del curso. El primero de ellos es una computadora. Ahora, cualquier computadora con Windows, mac o Raspberry Pi estará absolutamente bien. Lo segundo son algunos conocimientos musicales básicos. Ahora no estamos hablando de teoría musical avanzada aquí, pero mientras tengas conocimiento de notas y escalas y octavas, este tipo de conceptos, entonces estarás absolutamente bien. Y por último, definitivamente recomendaría que escucharas el curso un buen par de auriculares o una buena configuración de altavoces estéreo. Esto es para asegurarte de que seas capaz de escuchar los matices de algunos de los cambios a los sonidos que creamos. Así que con eso en mente, tómate un café, y vamos a zambullirnos justo en. 3. Cómo obtener Sonic Pi: Ahora el software que vamos a usar con este curso es el fantástico Sonic Pi, que fue creado por Sam Aaron se está volviendo muy popular en la escena de algoritmos. Y es un framework musical basado en Ruby, que es un lenguaje de programación. No te preocupes demasiado por eso, pero podría ser interesante para ti si tienes algunos códigos de pase y experiencia, Sonic Pi se ejecuta en Windows y Mac y como su nombre indica, en realidad está diseñado para funcionar particularmente bien en una Raspberry Pi. Así que vayamos a la página web de sonic Pi y veamos cómo vamos sobre descargarlos e instalarlos. Aquí estamos en el sitio web de Sonic Pi y aquí puedes ver aquí hay botones para descargar para Windows, para Mac OS, y para Raspberry Pi. Pero hay mucho más en este sitio web. Por lo que definitivamente te animaría a involucrarte con la comunidad. Mira los ejemplos, lee a través de los tutoriales. Aquí hay mucha información genial. Ahora, Sonic Pi está disponible de forma gratuita. Es muy popular en educación para enseñar a los niños a codificar. Pero requiere mucho mantenimiento. Y Sam lleva años haciendo esto de forma gratuita. Así que si te lo puedes permitir, definitivamente te recomiendo simplemente desplazarte un poco por el sitio web y o bien usar patria y, o Patrocinadores GitHub para donar un poco de dinero a Sam, todo lo que puedas pagar para mantener esta fantástica iniciativa en marcha. 4. Conocer la interfaz de usuario de Sonic Pi: De acuerdo, así que una vez que tengas instalado Sonic Pi, sigue adelante y ejecútalo y debes presentarte una pantalla que se vea algo parecido a esto. No te preocupes si no se ve exactamente así. Te estaré mostrando cómo configurar la pantalla en esta sesión. Así que vamos a recorrer cada parte de la interfaz de usuario paso a paso. Por lo que la parte principal de la pantalla es retomada por la ventana de código. Aquí es donde en realidad tecleamos el código y aquí es donde podemos ejecutarlo desde dos, usando estos botones de aquí arriba que se ejecutan en el botón Stop. Así que una vez que hayamos terminado con nuestro código, una vez que esté, una vez que el código esté completo, podemos pulsar el botón Ejecutar. Y aquí los resultados. Si el código se está ejecutando durante mucho tiempo, queremos que se detenga. Podemos presionar el botón de parada. Si queremos grabar la salida del código, ya sea música que se regenere con el código hacia fuera a un archivo WAV. Podemos presionar el botón Grabar y luego ejecutar el código y vamos, obtendremos un archivo de audio producido. Podemos guardar y cargar nuestro código. Ahora por defecto, Sonic Pi va a persistir tu código entre sesiones. Lo que quiero decir con eso es que si tecleas algún código en Sonic Pi y luego sales de Sonic Pi, próxima vez que vuelvas, ese código que tenías ahí anteriormente, estará ahí y disponible para ti en la pantalla. Por lo que tiene su propio mecanismo de ahorro incorporado. Sin embargo, no me basaría en eso si tienes un fragmento de código que es, estás particularmente orgulloso o es una pieza de composición terminada, o es algo que quieres compartir con tus amigos o compartir con alguien de la comunidad, luego definitivamente usa, usa los botones allí para guardar tu código y hacer una buena copia de seguridad del mismo. De nuevo, una vez que tengas un código o una pieza de código que quieras volver a cargar en un archivo en el que quieras volver a ingresar, puedes hacerlo a través del botón de carga. Abajoen la parte inferior. Tenemos estos números del 0 al nueve. Estos son diferentes. Se puede pensar en estos como pestañas para que se llamen buffers dentro, dentro de Sonic Pi, podemos pensar en estos como pestañas separadas. Siempre que pinchemos en el botón Ejecutar, vamos a ejecutar el código dentro de este buffer. Entonces si estoy aquí en este momento, si hago clic en ejecutar y voy a ejecutar el código dentro del buffer uno. Si hago clic por aquí, ahora en buffer seis, voy a ejecutar el código que está en buffer six solamente. Arriba a la derecha, luego tenemos dos controles para controlar el tamaño de la fuente en la ventana de código. Y voy a estar usando estos más adelante para hacer el código bonito y grande para que puedas seguir a lo largo de agradable y fácil. Vamos, echemos un vistazo al resto de estos por aquí entonces. Entonces el primero es el alcance. Entonces este, este este panel aquí arriba en la parte superior derecha es el alcance. Y esto por defecto se establece como un gráfico de espectro. Verás esto a medida que empecemos a generar algo de ruido en la siguiente lección. Pero esto se puede cambiar a través del panel de preferencias y te mostraré cómo hacerlo en un segundo. Esta siguiente sección aquí es probablemente el charco más útil, útil que no sea la ventana de código, y ese es el registro. Y esto te va a mostrar exactamente lo que está pasando mientras tu código se está ejecutando. Y también puedes enviar cosas al registro para obtener información. Por lo que esta ventana es particularmente importante. El panel de señales te mostrará lo que realmente está sucediendo dentro de Sonic Pi. Este panel lo encontrarás particularmente importante cuando se trata de actuaciones en vivo. Entonces abajo por la parte inferior aquí a través de la parte inferior de la pantalla, tenemos el panel de Ayuda. El panel ha tenido una enorme cantidad de esfuerzo puesto en ello. Los hay, hay un tutorial completo, hay enlaces a otros artículos. Existen programas de ejemplo para producir diferentes tipos de música. Hay información sobre el incienso de pico, sobre los efectos incorporados y las muestras. Y ahí hay información sobre el idioma en sí para que vayas a buscar instalaciones de ayuda absolutamente fantásticas dentro de Sonic Pi. Así que por favor, por favor, tengan una excavación por ahí para encender y apagar cada uno de estos paneles. Yo sólo puedo ir y presionar estos botones de palanca aquí. Entonces puedo, si presiono el botón Ayuda, se elimina el resaltado junto con el panel de salud. Cuando vuelva a hacer clic en él y reaparecerá el panel Ayuda. Y lo mismo para estos otros tres botones de aquí arriba. El que no hemos mirado es el panel de preferencias. Aquí adentro. Simplemente podemos ver un montón de diferentes tipos de elementos de configuración dentro Sonic Pi rápidamente voltearán a través de estos. No pasaremos por cada uno de estos a detalle y los estaremos utilizando a lo largo del curso. Pero sólo te llevaré a través de algunas de las cosas importantes son los ajustes que tal vez quieras usarlo desde el principio. El primero de estos en la pestaña Audio entonces es el volumen principal. Y esto simplemente controla el volumen de salida de Sonic Pi. Pero no hay nada más aquí dentro de lo que realmente tengas que preocuparte todavía. Dentro de IO, entonces puedes ver aquí que tengo un teclado midi conectado, y eso es realmente lo único interesante aquí por ahora. Ahora, si no tienes un teclado midi, no te preocupes para nada. No necesitas uno para Sonic Pi. Y de hecho, sólo lo estaremos usando en una parte muy pequeña del curso. Pero es, es interesante poder crear un sonido de sentido, por ejemplo, en midi, a vista Pi, y luego tocar ese sentido con tu teclado midi u otro dispositivo de entrada midi. Pero eso lo estamos haciendo mucho más tarde, pero no te preocupes por eso por ahora. Este con el que tal vez quieras jugar un poco. Esto es configurar las preferencias para el editor de código, para la ventana de código. Y se puede ver que lo tengo puesto en un tema ligero aquí. Creo que es agradable y fácil y más fácil para ti leer en este curso. Pero si lo prefieres en modo oscuro, te vendría bien eso. Y luego hay otros tipos de ventanas diferentes a medida que pasamos por aquí. Voy a voltear de nuevo al tema de la luz aquí. Y aquí donde podemos activar y desactivar paneles y podemos alternar toda la información que queramos que se muestre dentro de estos paneles. Así que por aquí podemos ver que los que estamos mostrando los números de línea estaban mostrando finalización de código, pestañas, títulos, botones, etc. Dejaré todos los encendidos por ahora, pero siéntete libre de ir y configura esto para que sea exactamente como prefieras trabajar. Individuos, entonces podemos mirar los diferentes tipos de alcances. Mencioné que aquí hay diferentes tipos de alcances. Entonces por defecto se establece en el gráfico de espectro, pero tenemos gráficos mono estéreo como alcances independientes. Hay gráficas que ilustran las relaciones de fase, de todo tipo allí. Prefiero dejar el mío en la gráfica de espectro. Estos no son toggle, por lo que puedes tener más de una gráfica mostrada a la vez. Pero a lo largo de este curso lo dejaremos en la gráfica de espectro, pero otros pueden serte útiles. Entonces por aquí a la derecha tenemos el panel de transparencia, y esto está controlando la transparencia de la interfaz Sonic Pi en sí. Ahora, por defecto lo en el 99% de los casos dejarás este conjunto un 0. Pero como mencioné anteriormente, Sonic Pi se ha vuelto muy popular en cosas como los algoritmos vistos y gente está haciendo actuaciones en vivo con Sonic Pi, pero estarán en el escenario y la interfaz de usuario de Sonic Pi en la pared detrás de ellos o una pantalla detrás de ellos. Y en realidad parte de la experiencia, parte de la actuación es ver el, el código de la persona en vivo y escuchar la música y bailar solo. Entonces lo que puedes hacer es que puedas, puedes establecer la transparencia de la ventana aquí y podrías tener algunos, algunos efectos visuales en video o algo corriendo en segundo plano con Sonic Pi sobre la parte superior con la transparencia puesta un poco para que Sonic Pi esté apareciendo sobre la parte superior del video. Yo soy muy cool. Aquí adentro. Podemos entrar y comprobar si hay actualizaciones. Dejo el mío como para comprobar si hay actualizaciones cada dos semanas. Pero si quieres, puedes ir y presionar el botón check now e irá y comprobará por ti ahora mismo si necesitas una actualización. Y finalmente en el tipo de idioma, entonces puedes ir y configurar el idioma para la interfaz de usuario y para el tutorial. Entonces, como dije, hay una comunidad próspera y fantásticamente amigable alrededor de Sonic Pi. Personas dentro de la comunidad de han traducido los tutoriales y traducido la interfaz de usuario. Entonces si el inglés no es tu primer idioma y prefieres usar tu lengua materna, entonces puedes ir y seleccionar eso en. Aquí. Daré clic en el botón Cerrar para cerrar esta ventana. Una última cosa que quiero mostrarles aquí es solo este panel de información. Y esto te va a mostrar un poco de una pantalla de presentación donde podrás obtener todo tipo de información sobre Sonic Pi. Y se puede ver aquí hay un enlace a la página web. Hay un enlace a Twitter a seguir para recibir actualizaciones sobre Sonic Pi. Definitivamente te animaría a hacer eso. Puedes ver aquí tu versión actual es, o mi versión actual es 4.3. Solo comprueba que estás en la versión 4.3 o superior. Si no es así, dirígete al panel de preferencias y haz clic en Actualizar para obtener la última versión. De acuerdo, entonces eso es darte una visión general de la interfaz de usuario. Ahora es el momento de hacer algo de ruido. 5. ¡Vamos a hacer un poco de ruido!: Así que dirígete a la ventana de código aquí, voy a hacer la fuente un poco más grande para que puedas verla. Vamos a empezar con quizás el programa más sencillo que posiblemente podamos imaginar. Así que sólo voy a escribir endereza esta nota de Coburn y voy a escribir el comando play in. El juego de comandos es uno de los comandos que podemos usar para decirle a Sonic Pi que haga algo de ruido por nosotros. Entonces vayamos por aquí y podemos hacer la jugada 60. Así que solo escribe play 60 en tu ventana de código y luego haz clic en el botón Ejecutar. Y ahí estamos. Entonces Sonic Pi se omite algo de ruido para nosotros. Entonces hago clic en el botón Ejecutar aquí arriba para hacer esto, lo volveré a hacer. Pero para ahorrarte alcanzar el teclado y el mouse a lo largo del tiempo, también puedes presionar Command R en una Mac o Control R en una PC con Windows, y eso logrará lo mismo. Entonces vamos a desglosar un poco esto . Entonces el comando play es, como dije, uno de los comandos y probablemente el comando más útil, o comando más utilizado inicialmente para decirle a un Sonic Pi que omita algún ruido. Pero, ¿de qué se trata el 60? Bueno, es 60 es en realidad un número de nota midi. Entonces la forma en que funciona el midi es que hay números del 0 al 127, por lo que 128 notas midi diferentes. Y cada uno de ellos corresponde a un nombre de nota y nombres de nota normales. Por lo que podemos ver aquí que la nota midi número 60 es una C para una nota C en la cuarta octava. Y podemos mirar por aquí y podemos ver que en realidad los nombres de notas midi corresponden a una frecuencia ya que sabemos que cuanto mayor es la frecuencia, mayor es la nota. Entonces un C4 es de 261.63 hercios. Y luego hay otros aquí. Para que podamos movernos hacia arriba y hacia abajo. Cada incremento o decremento por uno es un semitono. Por lo que de 60 a 61 nos lleva de una C a una C afilada. De 61 a 62 textos fue dos a d 263 nos lleva por D-Sharp que corresponde allá arriba y abajo. Ahora he incluido un char completo de nota midi dentro de los recursos para el curso. Pero por ahora solo es importante saber que podemos usar un número de nota midi o un nombre de nota midi. Y por el momento estamos usando la nota midi número 60. Entonces cuando ejecutamos nuestro código en realidad está jugando una C en la cuarta octava. Entonces esto es genial y este nuestro primer bit de sonido fuera de, fuera de Sonic Pi, pero no va a hacer el número uno. Entonces agreguemos un poco más de código. Entonces, para agregar otra línea de código, solo presiona return. Y aquí voy. Déjame hacer eso un poco más grande para ti. Ahí vamos. Entonces, para agregar algunas notas más, solo puedo agregar algunos comandos de reproducción más. Entonces vamos a escribir en una obra de teatro 64. Agreguemos una obra de teatro 67. Vamos a golpear Run o, o Comando R. Estamos, así que hay tres notas tocando todas al mismo tiempo. Entonces eso es a, C y E y una G. Si miramos las notas midi son una energía C y E fue 606467, y eso nos da una tríada do mayor. Ahora, todas estas notas están sonando a la vez. Entonces lo que efectivamente estamos produciendo aquí como acorde, si quiero tocar estas notas en orden ascendente, entonces necesito decirle a Sonic Pi que deje un poco de tiempo. Dejaré un descanso entre estas notas. Y eso lo puedo hacer usando nuestro siguiente comando, que es el comando sleep. Ahora, así que entre cada nodos voy a agregar uno de sueño. Esto le está diciendo a Sonic Pi que duerma por un latido. De acuerdo, Así que todos los tiempos dentro de Sonic Pi o dentro de beats. Por defecto, los latidos por minuto o el BPM para un programa Sonic Pi es de 60. Entonces 60 latidos por minuto. Entonces 60 latidos por minuto. Si dormimos por un latido, entonces vamos a dormir por 1 segundo. Entonces agreguemos otro sueño aquí. Nuevamente por un golpe más, por un bit más. Yvamos a jugarlo. Y ahí estamos. Ahí está nuestra tríada mayor de 33 notas, pero esta vez arpegiada, tocando una nota tras otra en lugar de como un solo cable. Para que pueda poner lo que quiera en cuanto al par de dormir. Para que pudiera cambiarlas a dormir por dos. Y esto se va a dormir por dos latidos. O podría dormir por fracciones de segundo también. Para que pueda dormir medio, medio latido o medio segundo porque estamos a 60 latidos por minuto. Y te mostraré cómo cambiar los latidos por minuto un poco más tarde. Ahí estamos. 6. Uso de nombres de notas MIDI: Además de usar los números midi aquí, también podríamos usar los nombres de las notas midi. Entonces podemos tener exactamente lo mismo aquí, pero podemos usar los nombres de las notas IEEE C4, E4, y G4. Entonces vamos, probemos eso. Entonces si quiero usar un nombre de nota que necesito usar un prefijo con dos puntos. Entonces simplemente golpeé aquí el colon C cuatro. Puedo usar una mezcla, así que no tengo que elegir una u otra. Me vendría bien C4 aquí y 6467. Eso funcionará perfectamente bien, exactamente como lo era antes. A veces prefiero usar los nombres de las notas cuando sé cuáles van a ser. Pero los números de nota pueden ser realmente útiles cuando estamos haciendo más tipo de trabajo algorítmico más adelante. Ahora, no te preocupes por eso por ahora es una gran palabra, pero nada de qué preocuparse. Pero verás que las notas midi pueden ser, los números pueden ser útiles más adelante. Cambiemos esto a un C4. Lo siento, esto debería ser un a4, G4. Y de nuevo, esto nos va a dar que la tríada mayor o do mayor. Pero, ¿y si quiero usar objetos punzantes y pisos? Si bien es bastante fácil de hacer. Entonces si quiero usar una planitud, aplanar la, aplanar la tercera aquí y esta tríada y convertirla en un acorde menor, arpegio menor. Yo uso eso solo usando la b minúscula Permítanme también cambiar esa E en un E-bemol. También puedo usar una, una S para denotar un afilado. Así que si quisiera decir en vez de E bemol, quería decir D-sharp, mismas notas, pero podría hacer eso aquí, así que podría simplemente ir una D. Y usamos la S minúscula para sharp en octava número cuatro, donde estamos para cambiar octavas. Y si quiero bajar una octava, podría, podría simplemente cambiar el número óptimo aquí. Y esto jugará una octava más baja. Nuevamente. De verdad, como se puede decir, verdad, de verdad no importa en qué orden avile. Entonces si quería hacer una inversión, por ejemplo, tal vez toco el G primero. Entonces vamos a mover eso allá arriba. Esta vez necesitaré ponerme dormida aquí. 2.5. Podemos mover este desde el final. Y ahí estamos. Así que tiene un juego por ahí y producir algunas pequeñas piezas cortas de música solo usando los nombres de las notas midi, recordando que usamos una b minúscula para un flat, una s minúscula para un sharp, o puedes usar los números de nota midi allí. Tómate una jugada, crea una pequeña melodía. Yo usaría los durmientes para proporcionar el resto entre notas que quieras. 7. Comentarios del código: Entonces vamos a cambiar esto de nuevo. Pondremos el sueño de nuevo aquí y tocaremos ese G3 al final. Bucles. Nuevamente. Vamos a correr eso. De acuerdo, así que esos son nuestra tríada C menor, C menor arpegio. Entonces tal vez queramos simplemente recordar lo que hemos llamado a eso. Así que subamos aquí y podemos usar el comando hash o el signo de libra o el signo hash dependiendo si de qué lado del Atlántico eres. Podemos usar el signo hash para decir que esto va a ser un comentario en nuestro código y agregar un comentario es solo un pedazo de texto solo para nosotros. Por lo que no es ejecutado por Sonic Pi en absoluto. Y podemos escribir todo lo que quisiéramos aquí. Por lo que podríamos decir, este es un arpegio de C menor. Como digo, ese código no va a ser ejecutado por Sonic Pi, pero solo son notas que podemos poner en el código por nosotros mismos. Nos referimos como comentario de código. Nuevamente, si yo, si ejecuto esto, es completamente ignorado por el pastel sónico, pero nos permite poner comentarios. Una de las cosas que comúnmente hacen los programadores es usar comentarios solo para decirle a un Pi sónico que simplemente ignore un fragmento de código por ahora. Entonces si quería experimentar con esto y decir, vale, bueno, ¿qué pasa si me quito este sueño? Bueno en lugar de borrarlo y luego si no me gusta, tuve que volver a teclear más tarde. Yo sólo puedo ir y poner un signo de libra o signo de hash al principio y ejecutarlo de nuevo. Y esta vez va a ignorar ese sueño. Podemos ver que toca un D-sharp y el G. Al mismo tiempo. Nuevamente, si eso no me gusta, solo sigo adelante y elimino ese comentario. Estoy a punto de cómo empezamos. Ahora hay una tecla de acceso directo en Sonic Pi, un poco como el comando R o control R para ejecutar el código, había una tecla de acceso directo, si quiero comentar algo. Y esta es una muy buena para recordar para las actuaciones en vivo es que quieres encender y apagar bits de código. Y puedo presionar la tecla Comando y la tecla de barras hacia delante, y agregará este pequeño símbolo en el frente. Ahora, se ve un poco diferente, pero funciona exactamente igual. Dos hashes y un lado de tubería. Esto acaba de poner en un comentario un poco del código. Así que donde quiera que esté en una, en una, en una línea de código, sólo puedo presionar Comando o Control y barras hacia adelante. Comentará esa línea de código. Y luego cuando lo ejecuto de regreso a la cancha porque se han quitado los duermes. Si quiero eliminar ese comentario de código de nuevo, podría simplemente volver de nuevo a cualquier parte esa línea y presionar comando y barras diagonal hacia adelante de nuevo, o Control y Barra diagonal, y eliminará ese código comentario. Y entonces estamos de vuelta a nuestro arpegio. 9. Opciones de juego: Así que además de usar código para definir el tono de la nota que queremos tocar, también podemos agregar una serie de opciones. Y las verás a lo largo de las opciones de Sonic Pi las cuales nos permiten personalizar los sonidos que se están produciendo. Entonces vamos a empezar con dos simples que podemos agregar a los comandos de play. Entonces vamos, vamos a crear esto abajo. Y solo agreguemos un bonito Play simple, 60. De acuerdo, así que eso va a reproducirlo al volumen predeterminado para Sonic Pi. Pero parte de la música es la dinámica de la música y la dinámica de la música implicó el volumen en el que se están tocando las notas. Entonces si queremos cambiar, entonces podemos agregarle una opción. Entonces para Sonic Pi, esto se llama la opción de amplitud. Entonces solo agreguemos esto. Entonces si golpeo una coma y una vez golpeo una coma después de los sesenta me permite agregar una serie de opciones diferentes. La opción de amplitud o la opción de volumen simplemente se llama AMP. Y se puede ver que aquí en el, en la ventana de finalización de código. Por lo que es Sonic Pi, nuevo intenta ayudarnos. Entonces, ¿qué se usa? Las amplitudes. Entonces diremos AMP y después decimos colon. Y ahora vamos a establecer la amplitud. La amplitud y Sonic Pi se define por un número, lo que 0 no es volumen en absoluto. Uno es el volumen de salida predeterminado normal, pero podemos subir desde allí también. Entonces, por ejemplo, si pongo la oportunidad a cero 0.5 y presiono play, eso acaba de salir a la mitad del volumen normal. Ahora es muy difícil escuchar esa diferencia aquí. Entonces agreguemos un poco más de código para demostrar eso. Entonces empecemos con una jugada a los 60. Esta va a ser la amplitud por defecto. Dormirá por dos latidos. Y después tocaremos este a medio volumen. Y deberías poder escuchar la diferencia. De acuerdo, Para que oigas esa segunda nota fue definitivamente más tranquila. Agreguemos otro sueño. Y de nuevo, tocaremos a los 60, pero esta vez lo tocaremos al doble del volumen normal. Podemos establecer eso como una oportunidad a un área. Por lo que muy sencillo de configurar. Es importante recordar que las opciones que establecemos aquí sólo se relacionan con la nota que estamos tocando. Por lo que sólo se relacionan con esta nota. Entonces si sólo voy y hago otra, otra línea aquí, voy a jugar fuera de plano 60 sin ninguna opción en absoluto. Entonces podemos escuchar esa línea siete tocada solo con la amplitud predeterminada de uno, que es exactamente el equivalente a escribir eso. Pero el, el, los ajustes que hacemos, las opciones que ponemos aquí, la opción de amplitud en este caso sólo se relaciona con esta nota que se está reproduciendo. No establece la amplitud para todos los nodos futuros, por ejemplo. Así como amplitud tenemos pan. Entonces esta es la segunda opción simple que vamos a mirar ahora. Y pan es simplemente establecer el lugar donde va a aparecer el sonido dentro del campo estéreo. ¿ Eres de, de izquierda a derecha, a menudo llamado equilibrio. Entonces volvamos a hacer esto, pero vamos, comencemos por aquí. Por lo que podemos decir de nuevo, una jugada 60 por defecto lo va a mandar justo por el medio. Por lo que vas a tener una cantidad igual de esta nota en el altavoz izquierdo y derecho o el auricular izquierdo y derecho. Entonces si hago otro sueño para dos, esta vez, voy a usar la opción de sartén. Entonces presiono una coma y diré Pan colon. Ahora, pan adentro. Sonic Pi se establece por un valor entre menos 11. Entonces menos uno nos dará una sartén todo el camino a la izquierda. Un libro único nos dio una sartén todo el camino a la derecha. Un 0 va a paleta recta por el medio, pero incluso un volumen igual en el altavoz izquierdo y derecho. Y esos valores no necesitan ser menos uno o uno. Pueden ser cualquier valor entre menos 11. Entonces si lo quiero a medio camino en el altavoz izquierdo, entonces puedo ajustar el, el pan como menos 0.5, por ejemplo. Sólo para demostrar esto, vamos a panear hacia la izquierda y la derecha. Entonces vamos a cancelar primero la izquierda. Iremos recto por el centro, pero pan a la izquierda, dormiremos de nuevo. Y vamos a panear todo el camino a la derecha. Somos bastante simples y en realidad puedes, si miras el alcance y la esquina superior derecha aquí, ya verás eso. Podrás ver eso reflejado en el endoscopio aunque no estés usando audífonos. Entonces todas las cosas por encima de la línea es el altavoz izquierdo y las cosas debajo de la línea en el gráfico es el altavoz derecho. Puedo combinar estos. Para que pudiera, entonces podría hacer otro color y decir, quiero establecer la amplitud también. Fresco. Al escribir disculpas. Para que pueda establecer la amplitud de éste en mitad. Como dije, la amplitud de éste para ser dos veces. Probemoseso. Podemos escuchar, o tal vez usted oyó un poco de distorsión ahí. Ciertamente lo hice. Con éste. Solo hay que tener un poco de cuidado con la amplitud porque a medida que avanzas, subes a volúmenes más altos, vas a obtener cierta distorsión y recorte generalmente no tiende a ir por encima de 1.52. Sólo en raras ocasiones en las que realmente lo quieres para como parte de la composición. De acuerdo, así que eso es todo por cuatro opciones. En el siguiente video, vamos a hablar muy rápido sobre los latidos por minuto. 10. Configuración del tempo: De acuerdo, así que aquí tenemos un poco de código que ya debes entender completamente. Simplemente léalo y solo asegúrate de que lo entiendes. Pero muy rápido vamos a tocar una nota a midi note 60. Nos vamos a dormir por un latido. Entonces vamos a tocar otra nota a los 60. Nos vamos dormidos por un golpe y luego vamos a tocar una nota final, nota número 60. Ahora, como mencioné brevemente antes, el cuándo, cuando puse cualquier tipo de duración y él opciones relativas al tiempo dentro de Sonic Pi, se mide en beats. Ahora para mantener esto bonito y sencillo. Entonces dormido aquí, por ejemplo, se va a dormir por un latido entre estos nodos. Ahora, para mantener esto bonito y sencillo y para hacer las matemáticas agradables y fáciles. Por defecto, todo lo que toquemos en Sonic Pi está ajustado a 60 latidos por minuto. Y esto se hace solo para que las matemáticas sean agradables y fáciles para que pueda mirar ese sueño y pueda pensar en eso como ser un segundo o ser un golpe, porque 60 latidos por minuto es lo mismo cosa. No obstante, no mucha música ha producido unos 60 latidos por minuto. Por lo que necesitamos una forma de estar fuera de control lo que los latidos por minuto. Y sólo voy a mostrarte cómo hacerlo muy brevemente. Entonces todo lo que necesito hacer es ir a la cima del programa aquí. Yo sólo voy a usar este sencillo comando. Por lo que voy a decir usar subrayado BPM. Ah, pon ciento diez, cien, diez latidos por minuto. Ahora cuando lo toco, yendo mucho más rápido, va 110 latidos por minuto. Si acabo de comentar esto usando Comando o Control y diagonal o agregando un signo de libra o signo hash al principio. Y corre esto otra vez. Ahí estamos de vuelta a 60 latidos por minuto. Si elimino ese comentario. Ahí estamos. Entonces así es como podemos establecer los latidos por minuto dentro, dentro de nuestros programas. 11. Sintetizadores: De acuerdo, Así que esto es genial. En realidad podemos producir una música usando código y podemos descansar entre notas o podríamos tocar todas las notas juntas como un acorde. Se puede ajustar la amplitud, nosotros podemos configurar la sartén. Pero los sonidos que está produciendo una no muy interesante para tu público en cuanto antes podemos estar aburriéndonos mucho o ese pitido que sale de Sonic Pi. Por suerte, Sonic Pi tiene más de $0.40 incorporados. Ya hay una lista en pantalla. Ahora vamos a mirar algunos de ellos. Y aquí hay un sentido realmente grande. Entonces volvamos a Sonic Pi. Y podemos ver aquí que sólo tenemos una tríada de C mayor. Y usar uno de los sensores es realmente muy, muy sencillo. Entonces lo que haré, subiré aquí arriba. Es muy similar a como dijimos usar BPM antes para usar latidos por minuto. Podemos decir usar un sintetizador. Por lo que podemos decir usar subrayado. Synth, golpeó la barra espaciadora, golpeamos el colon, y luego escribimos el nombre del sintetizador que queremos. Así que solo para este, vamos a usar la fuente de subrayado tecnológico. Puedes ver que la ayuda en pantalla se acerca para avisarnos. Y cuando pulse ahora Run, escucharán que va a tocar la tríada R, C mayor usando los textos. Impresionante. A mucho, mucho más interesado en el sonido. Ahora bien, me vendría bien cualquier, cualquier síntoma aquí. Entonces todo lo que necesito hacer es golpear el codón y simplemente escribir otro. Entonces para un tres o tres, por ejemplo, podría decir TB tres o tres. Y hay todo tipo de grandes desde aquí. Entonces para la década de 1800 tenemos una ganancia. Y como digo, hay muchas ya que aquí ahora, como mencioné antes, la sección de ayuda dentro de Sonic Pi es absolutamente fantástica. Incluido aquí para ti. Si bajas a la parte inferior izquierda, verás esta pequeña pestaña llamada sentido. De nuevo, si no tienes la sección de ayuda abierta en este momento, sube a la parte superior y usa este botón para encenderla o desactivarla. Y entonces aquí dentro tenemos el sentido de que hay una lista completa de todo el sentido que hay aquí. Entonces echemos un vistazo a blade. Para que yo sólo pueda bajar aquí. Solo necesito escribir el nombre. Más pesado. Podemos simplemente copiar y pegar esto por aquí. Así que puedes ver aquí hay toda una lista de sincronizaciones, que es exactamente la misma lista que te acabo de mostrar en la diapositiva anterior. Adelante. tu pedacito de música con el que has estado tocando, con la obra. Ven, adelante y juega con el sentido y ve qué sonidos interesantes hay ahí dentro. 12. Aplicación de filtros de sintetización: De acuerdo, Entonces una de las cosas en las que pensamos cuando pensamos, ya que pensamos en filtros. Y hay filtros integrados en el sentido en Sonic Pi. Entonces una de las cosas comunes que hacer con un filtro de sintetizador hacer con el cut-off. Y establecemos estos en el uso de las opciones de la misma manera que establecemos amplitud y pan antes. Entonces comencemos desde borrón y cuenta nueva aquí. Y así vamos a usar las fuentes tecnológicas. Así que use guiones bajos sintetizador, codón, fuente de tecnología. Y luego vamos a jugar, yo estoy tocando un E tres. Entonces una E en la tercera octava. Esosuena así. Si yo fuera a establecer el corte del filtro, entonces simplemente pongo una coma, enseñé corte un colon, y luego pondré el corte en 70. Y así es como suena eso. De acuerdo, así que esto es descontar el costo del filtro. Se puede escuchar que Eso realmente está ajustando la forma en que suena esa nota. Entonces vamos, agreguemos otro, otro E3 aquí para que puedas diferencia de poner dormido. Esto va a jugar el E3 sin se establezca el corte del corte del filtro. Y el, y luego el E3 con un atajo. Ahí estamos. Y de nuevo, encima del lado derecho, se puede ver en la ventana de registro exactamente qué es, qué ha pasado aquí. Hemos jugado tecnología se dispara con la nota en 52, que es un E3. Después hemos tocado los textos ordenes con una nota al 52, con un corte a los 70. Y se puede ver que el tiempo que pagamos que, esta vez parte de los logs aquí, es cuando se reprodujo el sonido o cuando ocurrió la acción en relación a cuando pulsamos el botón Ejecutar, el inicio de la pieza. Entonces enseguida en el tiempo 0 es 0. Jugamos 52, y luego dos segundos después, volvimos a jugar los textiles, otra vez al 50 al 70. Para que esta parte de la ley también pueda ser realmente útil para ver qué pasó en qué orden y cuándo sucedió. Y de nuevo, es realmente sencillo trabajar que ahora con un simple trozo de código que tiene un código se vuelve más complejo, llegarás a encontrar el registro cada vez más útil. Hemos estado hablando de sintetizadores y los conceptos de sintetizadores como filtros, y están aplicando filtros. Y en un segundo vamos a mirar la resonancia. Si estos conceptos son nuevos para ti, definitivamente te recomiendo que revises mi otro curso que completa guía para principiantes de síntesis y diseño de sonido. Ese curso te llevará a través estos conceptos y mucho, mucho más detalle. Pero por ahora, sigamos adelante y echemos un vistazo a la resonancia. Muy brevemente. Una resonancia solo está dando un poco de un vistazo en el filtro justo antes del corte. Establecimos a los residentes solo usando otra opción. Como dije, sólo podemos agregar nuestras opciones por, poniendo una coma después de la opción actual. Entonces vamos, hagamos lo mismo otra vez para asegurarnos de que podemos escuchar las diferencias. Entonces hagamos un E3. Establecemos el corte de la misma manera. Entonces para configurar a los residentes, solo agrego otra opción. Entonces le pegué a coma. Y voy a establecer la resonancia mediante el uso de la opción raise, RES, golpear el colon. Ahora las resonancias se establecen como un valor entre 01. No se puede poner uno. Así que uno. Los residentes podrían ser cualquier cosa por debajo de uno y por encima de 0. Entonces en esta instancia, los textos o enviados, si miro aquí abajo en la sección de ayuda, miro el sensor como una fuente tecnológica y hago clic en resonancia. Puedo ver que por defecto la resonancia se establece 0.7 para este sintetizador, que puede ser diferente para diferentes sintetizadores. Sólo cambiemos eso. Vamos a establecer que a null 0.9 para esto. Y oirás una sutil diferencia en el filtro para este sintetizador. Ahí estamos. Entonces esa es la forma de establecer el corte del filtro y la resonancia es para que los sintetizadores tengan un juego alrededor. Estos efectos serán drásticamente diferentes para los diferentes tipos y tamaños. Entonces cambia esto aquí arriba, juega, juega con diferentes tipos de sintetizadores y cambia estos valores de corte y resonancia aquí. Y para experimentar realmente con estas características. En la siguiente sección, entonces vamos a mirar otra parte popular de la síntesis, y eso son los sobres. 13. sobres: De acuerdo, Antes de sumergirnos en algún código, echemos un vistazo a qué son los sobres. Ahora, vamos a correr a través de una breve introducción aquí, pero de nuevo, si quieres más información, entonces por favor mira mi guía completa para principiantes para el curso de síntesis y diseño de sonido. Un sobre es en realidad sólo una forma de describir la amplitud o el volumen de un sonido a lo largo del tiempo. Sólo para encontrarlo. Dónde encontrarlo en esta gráfica aquí. Entonces en esta gráfica tenemos el eje y, que es amplitud o volumen. En el eje x está entonces el tiempo. Por lo que la primera parte del sobre es la a para ataque. Y muchas veces te referirás, estás aquí el término ADSR. Ahora bien, esta es sólo otra forma de nombrar y sobre. Entonces si la gente está hablando de ADSR, está hablando de un sobre. Existen varios tipos diferentes de sobres, pero el ADSR es el más común. Entonces a representa el ataque, y esto es simplemente la cantidad de tiempo que se tarda pasar de 0 a la amplitud máxima. Cuando nosotros, cuando disparamos una nota. D entonces representa el decaimiento. Y este el tiempo que se tarda en llegar desde la máxima amplitud al final de la fase de ataque hasta el nivel en que queremos sostener la nota que es la S y la S. El sustain está establecido en términos de volumen o amplitud más que en términos de tiempo. El lanzamiento es el tiempo que se tarda en llegar de ese nivel de sustain hacia abajo, de nuevo a 0 amplitud al final de la nota, se libera una nota. Por lo que un DNR están todos determinados por un periodo de tiempo. Y S, el sustain se determina en como una amplitud o se declara como una amplitud o un volumen más que, lugar de un periodo de tiempo en Sonic Pi. Entonces también tenemos otros tres elementos, que son el nivel de ataque, el nivel de decaimiento, y el nivel de sostenimiento, y estos también son volúmenes. Entonces pasemos al código y veamos cómo podemos usar esto para afectar nuestro sonido. De acuerdo, así que aquí estamos de vuelta y Sonic Pi. Echemos un vistazo a sobres ADSR y cómo podemos configurar aquellos dentro de Sonic Pi. Entonces comencemos con un simple comando play y solo tocaremos un C4. Vale, así que para configurar el sobre o configurar el sobre, establece los parámetros del sobre. Simplemente agregamos opciones en lo mismo que hicimos con Pam, cutoffs de nivel, resonancias, etcétera. Entonces exactamente lo mismo. Nuevamente, es bonito y sencillo. Realmente ha sido diseñado muy bien para ser muy estándar. Para que puedas tipo de hacky way round y seguir el mismo patrón para cuatro opciones diferentes. Por lo que de nuevo, golpeamos la coma. Aquí adentro. Vamos a fijar diferentes partes de los sobres. Estamos empezando con el lanzamiento. Entonces creo que es lo más fácil de aquí. Por lo que establecerá el release, release codon. Esa es una fuerza que va a ser de dos por cuatro tiempos. De nuevo, porque estamos en un BPM de 60 por defecto, esto significa que vamos a liberar más de cuatro segundos. Entonces vamos a jugar a eso. De manera que se puede escuchar que tardó cuatro segundos en llegar de la amplitud sostenida a una amplitud de 0. Eso lo digo otra vez. Podemos establecer los parámetros de la envolvente ADSR de manera muy similar. Entonces podríamos querer poner un ataque. Entonces sólo podemos entrar aquí. Podemos agregar otra coma. Y diremos que esta vez vamos a fijar el ataque. Pondré el ataque a 2.5th en nuestro sobre ADSR. Después tardó 2.5º en llegar de 0 amplitud hasta amplitud máxima. Y luego suelta más de cuatro segundos o cuatro latidos. Pero como dije, tenemos el ataque decaimiento, sostén, y liberación que todos podemos configurar. También podemos establecer el nivel de ataque, el nivel de decaimiento y el nivel de sostenimiento. Y sólo para recordarte que el ataque es el tiempo que se tarda pasar de 0 de amplitud al nivel de ataque. El decaimiento es el momento de pasar del nivel de ataque al nivel de decaimiento. El sustain es el tiempo que se tarda en pasar del nivel de decaimiento al nivel de sostenimiento. Y el libera el tiempo para pasar del nivel de sustain a 0. Entonces vamos, vamos, vamos a configurar nuestras notas ellos con todas esas opciones. Entonces sigamos con el ataque de 0.5, pero vamos a decir que nuestro nivel de ataque va a ser uno. Entonces, ¿qué va a establecer eso? Paraque podamos ver de nuevo, solo podía usar las teclas de flecha para moverme hacia arriba y hacia abajo en esta ventana de finalización de código aquí. Y luego cuando me dieron el, solo quiero darle a Enter y se lo meterá por mí. Estableceremos el nivel de ataque en uno. Vamos a poner eso en k Así que vamos a poner decaimiento a uno también. Estableceremos el nivel de decaimiento. Estableceremos eso para que no sea 0.7. Estableceremos lo sustentable. Pondré eso como no 0.4. Estableceremos el sostenido en dos. Esto en realidad me ha llevado a un buen punto. Entonces realmente no importa en Sonic Pi donde tipo de ignora el retorno del carro. Entonces si llego a una línea aquí, y porque mi fuente es muy grande, si consigue su diapositiva aquí, eso es como anotar fuera de la pantalla. Puedo desplazarme hacia la izquierda y hacia la derecha, pero en realidad, probablemente sea más fácil solo golpear Return. Y ahí lo verás, ponlo en una nueva línea. Eso está perfectamente bien. Si solo quieres organizar tu código de esa manera, ignorará los retornos de carro o la tecla Enter. Así que aquí atrás me falta una coma aquí para el sustain. Entonces vamos a correr eso. Entonces hemos tomado un sonido que sólo para demostrar, agregaré otro toco el mismo sonido aquí para que a un C4 y duerma para dos. Entonces esto va a reproducir el sonido por defecto se va a dormir por dos beats. Y luego va a tocar este con el sobre que hemos montado de la manera que queramos. Para que realmente se pueda escuchar la diferencia. Y de nuevo, puedo combinar esto con otras cosas que hemos aprendido dentro de Sonic Pi. Entonces usaré un sintetizador para esto. Así que vamos, vamos a usar, Vamos a usar las ganancias de sintetizador. Entonces ahí estamos. Eso es, eso son sobres dentro de Sonic Pi, agradables y fáciles de hacer. Nuevamente, solo lo estamos agregando como, como opciones adicionales después de nuestro comando play. Lo que hay que hacer ahora es experimentar con sentido diferente pero también con diferentes sobres y ver qué interesante gen sonoro surge. Intenta ir por unos sonidos percusivos con un ataque muy corto y un lanzamiento corto, que te darán unos sonidos mucho más percusivos. Intentaría algunos sonidos realmente como pad configurando el ataque y el lanzamiento a ser muy largo. Por lo que tienen un juego alrededor con los parámetros dentro de ahí. No te preocupes, no puedes romper nada. Y sólo debería mostrarte a través de los comandos de error. Entonces si por ejemplo, puse la lección algo que me va a dar un error seguro-fuego. Entonces si tomo el nivel de ataque dos menos uno, así que intentó jugar, pero él consiguió el suyo llegado hasta el nivel de ataque y luego golpeamos un error. Por lo que puedo ver aquí entonces el valor del nivel de ataque de opción debe ser 0 o mayor y obtuvo un menos uno. Entonces esto es realmente, muy útil, Eric manda por dentro, dentro de Sonic Pi. Si obtiene este tipo de líneas rosadas o se muestran estos mensajes de error, puede cavar hacia abajo en mucho más detalle aquí. Pero en general, si lees estos, este tipo de mensajes de error grandes y audaces que surgen, Eso te va a dar una muy buena indicación dónde exactamente en tu código ha ocurrido el error. Y como dije antes, es un ambiente realmente agradable, seguro. No puedes hacer ningún daño a tu computadora ni a ningún otro programa en ejecución. Realmente lo hacen. Siéntete libre de experimentar dentro de Sonic Pi. Prueba cosas. Si no funciona, te va a dar un bonito mensaje de error legible que te apuntará en la dirección correcta. 14. Cómo jugar muestras: De acuerdo, así que hemos mirado el comando de reproducción predeterminado, que reproduce ese ruido de pitido. Hemos mirado poder cambiar ese sonido tanto con la capacidad de utilizar un sintetizador incorporado diferente dentro de Sonic Pi como poder cambiar varias opciones como el volumen o la amplitud, el sartén. Aplica filtros y corta con cortes y resonancias y pudiendo ajustar los sobres. Entonces ojalá hayas tenido oportunidad de tener una muy buena jugada con esos y realmente entender cómo está funcionando todo eso. Pero hay otra forma de reproducir sonido dentro de Sonic Pi, y es a través del uso de samples. Ahora hay una serie de muestras incorporadas dentro de Sonic Pi, y puedes ver todas esas abajo en la sección de ayuda aquí. Si haces clic en esta pestaña para obtener muestras, te dará una lista de categorías de muestra. Y luego puedes saltar a estos y tocar las diferentes muestras. Ahora, como dije, la sección de ayuda dentro de Sonic Pi es absolutamente fantástica. Si pasas por aquí, verás todas las diferentes muestras que puedes usar. Y en realidad si solo voy y elijo uno aquí, si eliges esta flechita al lado, Eso es en realidad un botón de reproducción. Y así podrás audicionar las muestras dentro de la sección de salud. Entonces si juego junto a este flaco boom, por ejemplo, pulsa este botón de Play. Hay montones y montones de otras muestras de alta calidad integradas en Sonic Pi. Ahora para usarlos, solo uso las palabras clave de muestra, así que simplemente escribo la muestra de palabras. Después golpeo el colon y el nombre de la muestra que quiero usar. Entonces hay una que es guitarra, que es una novena E menor. Entonces si esa es la muestra, voy a usar eso y así presiona Run. De nuevo, puedo aplicar las mismas opciones que he hecho a la plaga de n Así que si voy al final aquí y puedo establecer la amplitud, por ejemplo, eso es un 0.5 y vamos a panel todo el camino a la izquierda, que de nuevo es una sartén menos uno. Y toca eso. Entonces ahí hemos escuchado una cacerola de muestra de medio volumen todo el camino hasta la oreja izquierda. Hay montones y montones de muestras incorporadas y te animaría a hacer una excavación por aquí. Entonces si bajamos y un vistazo a algunos de estos sonidos al hacer bucles, por ejemplo, podemos ver el Amén romper aquí. Entonces si yo, si audicioné una muestra, si quiero jugar eso dentro o usar eso dentro de mi código, puedo ir y teclearlo o en realidad puedo simplemente ir y copiar eso con el Comando C, Control C. O puedo hagaclic derecho y copie. Y yo sólo puedo tomar eso y pegarlo aquí arriba. Entonces eso va a reproducir una muestra a la velocidad que se grabó eso. Pero en realidad puedo cambiar la tasa de muestras de nuevo solo con otra opción. Dije esa opción usando de nuevo una coma al final, puedo fijar la velocidad, que es la velocidad de la muestra. Ahora, por defecto, todos los samples jugaron con una tasa de uno y esa es la velocidad o la velocidad a la que fueron grabadas. Pero puedo poner eso para jugar a la mitad de velocidad. Entonces 0.5. Podría conseguir que jugara al doble de velocidad o tasa de dos. Podría jugar a un 1.5. O me interesa si tomo un número negativo, si juego una tasa de menos uno, esto es lo que pasa. Toco en la muestra a la inversa. Vamos a volver a poner eso a una tasa de uno. Si vas a jugar cosas a razón de uno, solo puedes eliminar esta opción. Lo dejaré ahí por ahora. Pero todo sobre todo por culpa T más bien juega a razón de uno. Pero también puedo usar muestra externa. Por lo que hay montones y montones y montones de muestras integradas en Sonic Pi. Definitivamente pasé cinco minutos ahora solo teniendo una obra de teatro por dentro. Mucho sonido realmente, muy útil. Entonces no lo sé. Tenemos el, el aterrizaje lunar, un sonido ambiental. Había un montón de tipo de muestras de batería incorporadas. Por ejemplo. Hay algunos samples más y aquí están unos sonidos de bajo. Sonidos glitchy, tambores de caja. Hay, de nuevo muchos loops y un montón de sonidos de vinil para agregar una música de filtro lo-fi. Hay un montón ahí dentro, así que definitivamente te animo a pasar cinco minutos ahora pausar este video y echar un vistazo a las muestras y audicionar algunos y jugar con ellos y jugar con el ritmo y ver cómo suenan, revertidos o acelerados o ralentizados. Ahora ahí las muestras incorporadas, pero en realidad podemos usar muestras de las que hemos grabado nosotros mismos, solo cargarlas, cargarlas desde nuestro disco duro. Entonces vamos aquí. Y la forma en que lo hacemos, sólo especificamos un camino. Entonces esto será ligeramente diferente en Windows en una Mac, estoy en una Mac. Entonces para hacerlo, entonces, todo lo que necesito hacer es presionar muestra. Y luego dentro de las cotizaciones, solo necesito decirle a Sonic Pi dónde está la muestra. Ahora, si estás en Windows, va a ser probablemente ver dos puntos hacia adelante slash algo o C colon invertida. Y luego el camino de donde sea que esté tu muestra. Estoy en un Mac. Por lo que mi muestra está en mi escritorio. Entonces voy a ir a Usuarios, Steve, a mi escritorio. Y luego tengo una muestra llamada beat one. Y ahí estamos. Entonces eso es todo lo que tengo que hacer para decirle que toque una muestra, eso es cargar una muestra. Y desde mi disco duro, otra vez, puedo cambiar la velocidad de una muestra en la que he cargado. Así. Esto obviamente va a tardar mucho tiempo en jugar. lo que este es un buen ejemplo de usar el botón Stop o presionar Comando o Control S en tu teclado. Ahí estamos. Para que podamos empezar, detenerlo a mitad de una carrera. Y otra vez, puedo jugar eso en stock inverso que puedo jugarlo a dos veces de velocidad en reversa. De acuerdo, entonces hay otra opción para jugar samples también. Simplemente podemos apuntar a una carpeta y podemos usar un índice para, para, para decir cuál jugar. Entonces esto es realmente útil si tienes una biblioteca de muestras o una carpeta en tu disco duro, esto tiene un montón de muestras en ella. Y así simplemente, solo le decimos con qué muestra queremos jugar en una carpeta. Por lo que sólo podemos eliminar esto aquí. Podemos decir, vale, toca la primera muestra. Ahora, aquí hay algo que señalarles. Entonces cuando estamos programando, es muy, muy común. De hecho, casi universal dentro de los lenguajes de programación que el primer ítem de la colección es el ítem 0. Entonces contar dentro de una computadora siempre, siempre comienza en 0, sin duda dentro de Ruby y Sonic Pi. Como dije antes, Sonic Pi está basado en Ruby. Entonces cuando digo quiero usar la muestra 0 dentro de esta carpeta, esto significa reproducirme la primera muestra dentro de esta carpeta. Ahora sólo tengo una muestra en esta carpeta en mi escritorio, así que va a reproducir las mismas que teníamos antes. Ahora, verás más adelante que esto puede ser realmente útil porque podemos usar codeína para determinar qué muestra queremos jugar sin tener que saber el nombre de cada muestra. Sólo podemos decir Play me sample five, play me sample three, sample ten, etcétera. Entonces esa es solo una forma diferente de acceder a las muestras. Pero de nuevo, si solo quería acceder a una muestra específica, solo escribo la ruta completa y el nombre a la misma después del teclado de muestra. Ahora, los sobres para muestras funcionan exactamente de la misma manera que lo hacen por sentido. Entonces, por ejemplo, podríamos establecer el ataque de esta muestra. Podemos decir, quiero esto, el ataque para que la muestra tarde cuatro semanas. Juguemos a eso. Por lo que podemos ver a partir de ahí que se necesitaron cuatro latidos para llegar de 0 amplitud una vez que activamos la muestra hasta la amplitud máxima. Ahora, sostener para las muestras es ligeramente diferente, por lo que el sustain se ajusta automáticamente a la longitud de la muestra. Entonces recordemos que el sustain es la única parte del sobre que hicimos que definimos en términos de tiempo, el resto de lo definido en términos de amplitud. Pero el sustain se ajusta automáticamente a la longitud de la muestra. O podemos configurarlo como de costumbre. Para que pueda fijar el sostenido a ser Digamos dos listas. Eliminemos este ataque sólo para asegurarnos de que quede muy claro. Ahí estamos. Entonces porque nos dije que sostengamos por dos beats, tocó esa muestra por dos beats. Por lo que también puedo establecer el punto de inicio y fin a la muestra. Y le cuento hasta dónde dentro de la muestra quiero llegar. Este es un valor entre 01. Entonces es un poco, si quieres, porcentaje a través del, a través de la muestra que quiero empezar y terminar. Entonces podría decir, empecemos a cero 0.2 del camino a través de la muestra. Terminemos en ningún momento a seis. Entonces eso se juega aquí afuera que empezamos en la muestra y terminamos antes del final. Ahí estamos. Entonces eso es muestreo o reproducción de muestras dentro de Sonic Pi. En la siguiente sección, vamos a echar un vistazo al flujo de programas y empezar a construir programas más complejos, para empezar a producir más complejo e interés por la música. 15. Flujo del programa: Entonces, ¿a qué nos referimos con flujo de programa? Bueno, el flujo del programa es sólo una forma de determinar en qué orden se ejecutan las instrucciones dentro de nuestro programa. Y realmente se reduce a tres conceptos básicos. Eso es secuencia, selección e iteración. Secuencia es sólo la ejecución de instrucciones en orden. Y eso es lo que hemos estado viendo hasta ahora. Entonces por ejemplo, tocamos una nota, dormimos y les colocamos otros nodos. Después ME abofeteamos, tocamos otra nota. Esto es solo la ejecución de esas instrucciones desde la parte superior de nuestro archivo de código hasta la parte inferior en el orden en que las mecanografiamos. La selección es solo una forma de poder determinar qué acción tomar dentro de nuestro código basado en otra cosa. Entonces podríamos decir que si esto ha sucedido, entonces haz esto de otra manera haz otra cosa y eso se hará mucho más claro y explico condicionales más adelante. La iteración de la tercera parte es simplemente poder hacer lo mismo una y otra vez varias veces. Ahora bien, esto puede ir en un número infinito de veces o un número predeterminado de veces. Pero digamos por ejemplo, tuvimos una, la tríada de C mayor con la que empezamos justo al inicio del curso. Ahora, podríamos jugar esa tríada de C mayor 16 veces escribiendo ese mismo código en 16 veces, dormido entre cada una. Entonces podríamos hacer un sueño de tríada C mayor por un latido. Otra tríada C mayor duerme por un latido. Pero cada vez que hacemos eso, bueno, eso son cuatro comandos, ¿no? Por lo que hay tres comandos de juego para conseguir nuestras tres notas de rugido, tríada y dormido. Si queremos hacer eso, diez veces x por ejemplo, digamos, por ejemplo, mantenerlos agradables y sencillos. Si quisiéramos. Queríamos tocar eso, esa tríada do mayor diez veces, tendríamos que repetir esas mismas cuatro líneas, las tres jugadas y dormidos diez veces dentro de nuestro código. Para reproducir ese mismo código, diez veces iteración, sería una gran manera. Yo solo he podido decir, vale, pues aquí están esas cuatro líneas de código. Sólo haz esas diez veces. Y eso es lo que vamos a ver a continuación. 16. Bucles: De acuerdo, así que si pensamos de vuelta al principio del curso y teníamos un pequeño trozo de código que nos tocaba una tríada do mayor y se veía así. Entonces, como dije antes, si quisiéramos tocar la tríada de Do mayor diez veces, tal vez quieras hacer algo como esto. Así que vamos a dormir por un golpe y luego podremos volver a teclear nuestra tríada de C mayor. Y entonces podemos hacer eso otras ocho veces. Entonces podríamos volvernos más inteligentes y podríamos decir, o podemos copiar y pegar, ¿no? Por lo que podemos una copia que Motors mantenga paciente que como tres veces cuatro veces 5678910. Entonces ahí tenemos nuestras diez tríadas mayores o mayores de arrendamiento seguidas. Y esto es usar la parte de secuencia del flujo del programa de iteración de selección de secuencias que aprendimos en la lección anterior. Entonces solo es ejecutar cada instrucción en orden. Tengo que usar el botón de parada. O puede usar Command S o Control S para detenerlo a través del flujo del programa. No necesitamos escuchar todo eso. Ahora esto funciona perfectamente bien. Está absolutamente bien. Vamos a operar y está perfectamente bien hacer esto, excepto que se puede ver que para producir música de cualquier tipo de largo, vas a terminar con un, un programa muy largo y un montón de código repetido que es muy, muy difícil de leer. Entonces la forma de evitar esto es eliminar esto. La forma de evitar esto es utilizar un constructo llamado en bucle. Y aquí es donde nos movemos hacia las partes de iteración del flujo del programa. Entonces en Sonic Pi, la palabra clave para un bucle, solía hacer las cosas de vuelta y vuelta y vuelta otra vez. Lucas, en realidad una forma realmente útil de usar porque usamos loops en la música de todos modos para significar algo que solo toca, bueno, que se puede tocar redondo y redondo y redondo de nuevo. Entonces podemos decir, vale, bueno, así que vamos a ver este. Voy a escribir esto y lo voy a explicar. Entonces lo que dijimos aquí es que usamos la palabra clave loop y luego decimos do, es loop, do. Entonces todo antes del final. Vamos a dar vueltas y vueltas y vueltas y vueltas de nuevo. Esto simplemente seguirá adelante para siempre. Entonces voy a detenerlo. Son las razones que pueden seguir adelante para siempre. ¿ Es, va, va a decir loop do. Y va a jugar estos, esta tríada, va a dormir por 1 segundo o un golpe. Y luego se va a golpear el final y se va vuelta al bucle, hacerlo y hacerlo de nuevo, jugar al triatleta por un segundo, golpear el final, volver a subir al bucle, hacer, y luego simplemente mantener yendo para siempre y para siempre y para siempre. No obstante, lo que podemos hacer es un tipo diferente de bucle. Podemos decirle a Sonic Pi que queremos tocar algo un cierto número de veces. La forma en que hacemos esto es muy sencilla. Por lo que reemplazamos la palabra clave loop el número de veces que queremos repetir. Entonces vamos a hacer esto tres veces para que podamos verlo a través de la n Así que sólo decimos el número de veces. Entonces tres veces de punto, haz, así, haz esto tres veces. Y ahí estamos. Entonces, entonces nuestro flujo de programa va a volver a la parte de secuencia. Por lo que podríamos decir jugar esto tres veces. Y entonces sólo haremos otro acorde. Entonces hagamos una, una G mayor. Entonces vamos a ir, diremos colon, G4, un antes. Y a. los cinco deberían darnos una, una tríada de G mayor. Y ahí estamos. Demanera que podemos ver que eso habría necesitado una enorme cantidad de código para hacer. Al menos lo podemos resolver, ¿verdad? Entonces tenemos estos cuatro que se habrían repetido tres veces. Entonces eso es 12. Y luego otras cuatro repitieron tres veces. Entonces eso habría sido 24 líneas de código. Y eso lo reducimos a esto. Y podemos ver que esto es mucho, mucho más fácil de leer, particularmente si utilizo un código de comentarios. Entonces puedo decir, oh, discúlpeme. Entonces puedo poner un comentario aquí para decir, decir que esta es una do mayor y luego esta es una nebulosa G-mayor . Podemos ver que tenemos una pieza de código mucho, mucho más legible. Este número de veces no tiene por qué ser tres. Podría ser cualquier cosa que quieras. Podría ser 60 y puede ser 20, podría ser un 100, lo que sea, lo que quieras que sea. Lo único importante que hay que recordar de los bucles es que cada bucle debe contener dormido. Y de hecho, si sólo quitamos esto por ahora, si me quito este sueño, entonces lo que pasa es la computadora tan rápida, que recorre tres veces. Escuchaste que eso estaba muy distorsionado. Pero en realidad hecho es que jugó esa tríada tres veces todas al mismo tiempo. Y por eso hay que poner dormido en cada bucle porque la computadora así, tan rápido que va a recorrer esas tres veces en una fracción de segundo. Debemos recordar poner el comando sleep en, en cada bucle. 17. loops anidados: Ahora también podemos anidar bucles, bucles desiguales de diferentes tipos dentro uno del otro. Entonces sabemos que tenemos el bucle do y tenemos los tres tiempos de punto du o los 16 veces podemos anidar uno dentro del otro. Y te voy a mostrar un poco de ejemplo aquí para que podamos decir loop, ¿sabemos que vamos a necesitar un final? Ahora, notarás que cuando ejecutas cosas, formatea el código y coloca las sangrías para que sea más fácil de leer. Otra forma de hacer eso sin tener que esperar a que corra como para presionar Comando o Control M, cuatro M para madre. Y eso solo formateará el código muy bien para ti. Por lo que puedo decir aquí, muestra poco tocar el bombo, muestra, BDI, underscore house. Nuevamente, Control, Enter. Control, Control o Comando M formateará eso para usted. Entonces eso es jugar fuera de un bucle. Si toco eso ahora, lo va a tocar una vez. Y la razón por la que ha fallado ya que no hay sueño dentro de ese bucle. Entonces durante la plaga de las auditorías, está bien. Simplemente los va a tocar todos a la vez. Pero en realidad, como dije antes, Sonic Pi está muy orientado hacia el aprendizaje y para salvarte de hacer algo que potencialmente podría consumir mucho procesador y memoria en tu computadora en realidad nos ha dado un error aquí para decir que no dormimos, porque jugar samples es mucho, mucho más intensivo en los recursos de tu sistema que solo usar, solo usar el comando play. En automatizar esto para que funcione, queremos ponernos dormidos. Y aquí, esto sólo va a bucle para siempre. Juega en esa muestra con un corte de cuarto de latido entre un stop que cada vez menos. Y vamos a anidar otro bucle dentro de esto. Dentro de esto, podemos decir que cada vez que damos la vuelta a ese bucle, vamos a tocar esa muestra una vez. Y luego vamos a jugar para hi-hat. Entonces por cada bombo, cada bombo que tocamos con esta BD, cómo muestra queremos para sombreros altos, bastante común para al ritmo de piso. Entonces digamos que para los tiempos de punto lo hacen. ¿ Cómo va a jugar una muestra de hi-hat aquí, omega one n ese bucle. Presionemos Comando M para dar formato a eso. Y luego dentro de este bucle, vamos a tocar una muestra hi-hat. Así que tenemos uno integrado, integrado en Sonic Pi. Entonces vamos a decir símbolo de tambor cerca. Ese es el que queremos. Entoncesvamos a dormir para nada, 0.25 de latidos. Entonces cuatro, vamos a terminar con cuatro hi-hat cerrados por golpe y luego un bombo. Entonces vamos a dormir. Duerme por cuarto de latidos. Antes de que lo toquemos. Vamos a tener una lectura a través de esto para asegurarnos de que entendemos completamente. Por lo que vamos a bucle para siempre en este bucle exterior. Y dentro de ese bucle externo, primero vamos a tocar la muestra de la casa BD, que es una muestra de kit de bombo. Y luego después de que se toca esa muestra, aunque como dije, se computa tan rápido, será el mismo tiempo que vamos a jugar para hi-hat cerrado con un cuarto de latido, dormir entre cada uno. Entonces una vez que haya tocado los cuatro hi-hats, vamos a volver a dar vueltas a la cima. Toca el Keq por sombreros altos, juega la patada por sombreros altos. Entonces jugamos la patada y este bucle. Y después tocamos los cuatro hi-hats. Podemos ver que estos son lo que se conoce como bucles anidados. Entonces juguemos ahí. Nosotros somos. Ahí están nuestros primeros beats básicos dentro de Sonic Pi. 18. Para la infinidad, ¡pero no más allá!: Una última cosa que decir sobre los bucles es sólo para advertirte un poco sobre bucle infinito. Entonces vamos, vamos a agregar otro, otro comando de muestra aquí. Y digamos que vamos a jugar el, el flaco. Boom. Entonces escuchemos cómo suena eso. Ahí lo voy a parar, pero habría durado para siempre. De acuerdo, entonces el, el, esta muestra aquí en la línea nueve nunca se juega porque este bucle sólo está dando vueltas y vueltas y vueltas otra vez. Por lo que nunca retrocedimos a la parte de secuencia del flujo del programa. Entonces en realidad nunca llegamos a la línea nueve en absoluto porque vamos de la línea uno a la línea siete sin fin. Entonces te advierto contra usar loop do y solo usar loop do si realmente, realmente lo dices en serio. Por lo que yo diría que establezca el número de veces cada vez que pueda. Entonces podríamos decir para los tiempos de punto. Entonces va a jugar este bucle externo cuatro veces, el bucle interno cuatro veces dentro de cada uno de esos. Entonces vamos a tocar para kick drums, y van a tocar 16 hi-hats antes de tocar esta muestra final. Entonces esto ahora en realidad llegará a la línea nueve. ¿ De acuerdo? Entonces para practicar esto y lo que me gustaría que hicieras es tomar el código que puedes ver en pantalla. Ahora, es difícil conseguir que eso funcione y después jugar con los beats. Entonces todo lo que hay es algo que entiendes bien. Entonces supongo que lo siguiente que hacer sería intentar y añadir un sonido de caja a ese ritmo. 19. Mejora tu ritmo: De acuerdo, Entonces tal vez hayas terminado con algo que se ve algo parecido a lo que tenemos aquí. Juguemos esto. Y podemos ver que estamos dando vueltas cuatro veces. Estás tocando el bombo. Tocamos dos hi-hats, limit play en esta muestra de caja, otros dos hi-hats, y luego volvemos a dar vueltas al bombo. No te preocupes si el tuyo no se ve exactamente así y probablemente no se vea exactamente así. Siempre y cuando comprendas cómo funcionan los bucles y cómo funciona el flujo del programa con la secuencia de las iteraciones. Y has logrado sacar un compás placentero. Definitivamente vale la pena pasar un poco de tiempo con esto y pensar en nuestro b2 que quieres producir en tu cabeza y luego ver si puedes conseguir que abajo expresado como código. 20. Aleatorización: De acuerdo, Así que mencioné antes el uso de números de nota midi en lugar de, que el número mini. Entonces usar 60 en lugar de C4, por ejemplo, en realidad puede ser, aunque contrario a la intuición, realmente útil a veces. Yo soy una de esas veces es cuando estamos usando un generador de números aleatorios. Ahora bien, la aleatorización puede ser realmente útil para tipo de música generativa o para que la computadora genere o cree alguna música para ti en base a números aleatorios que simplemente no te vendrías a ti mismo. Ya sea para una parte de tu composición escrita en código, o si es una especie de inspiración, solo juega con algunos valores aleatorios y dame algo de inspiración hacia una melodía o un línea base, o lo que sea que esté buscando. Generar números aleatorios en Sonic Pi es muy, muy sencillo. Y como podemos tocar un número de nota en lugar de un nombre, significa que podemos generar un número aleatorio y después reproducir esa nota. Entonces la forma en que lo hacemos es con el comando rand. Veamos cómo funciona eso. Entonces conocemos el, conocemos la obra. Vamos ya. Tenemos play 60 como lo hemos usado muchas veces. Bueno, eso sólo va a colocar una nota con el valor de la nota de 60. Pero podemos decir, Tócame una nota con un valor aleatorio. Entonces puedo usar el comando rand y puedo decir aquí dentro de corchetes. Entonces puedo decir, Tócame una nota aleatoria entre el número 50, el número 100. ¿ De acuerdo? Entonces si miro por encima en el bitácora aquí, puedo ver esta placa me una nota al 87.5031. Si escribes eso en tu ventana de código y ejecutas ese código y miras tu registro. Y también puedo garantizar que generarás un número aleatorio o nodo aleatorio, que será 87.5031. Ahora bien, esto puede parecer extraño. Esto puede parecer extraño porque no es verdaderamente aleatorio, ¿verdad? Si eres capaz de poner en el mismo código que yo y en tu computadora un tiempo y lugar diferente, genera el mismo número aleatorio, las mismas notas aleatorias. No es verdaderamente aleatorio ahora esto se hace por una razón. El motivo es que quieres poder compartir este código en todos, reproducir este código en tu computadora una fecha posterior, y garantizar que sea el mismo para que cada rendimiento sea el mismo. Por lo que tener una jugada con esto, genera algunas notas aleatorias diferentes. Entonces de nuevo, para cambiar esto, podríamos decir, vale, generarme un número aleatorio entre 4080. Hay un nodo aleatorio diferente. Entonces para generar una nota aleatoria diferente, lo que necesitaría hacer es establecer la semilla aleatoria. Ahora, de nuevo, esto se hace a propósito. Esta es una elección deliberada de diseño dentro de Sonic Pi para asegurar que si se te ocurre una pieza de código que usa notas aleatorias de las que realmente, realmente te gusta el sonido de. Que será igual cada vez. Para que puedas ver que es una elección deliberada de diseño. Pero para cambiar la aleatorización, solo necesito usar un comando simple que se use semilla aleatoria, usar guión bajo, guión bajo aleatorio C. Y puedo escribir cualquier número aquí. Y de verdad, de verdad no importa. Y ya verás, podemos usar esto un poco más tarde y cambiaremos la semilla aleatoria para generar diferentes patrones aleatorios. Pero podría, por ejemplo, cambiar en, usar semilla aleatoria aquí a 40. Notarás que la última vez que ejecuté esto, generé la nota 70.0024. Eso es interesante en sí mismo porque las notas en Sonic Pi no necesitan ser números enteros. Por lo que en realidad te muestra que podrías escribir programas en Sonic Pi para producir composiciones micro tonales. Pero podemos establecer esta semilla aleatoria. Como dije, en realidad no importa cuál sea el número. 99 está bien. Cuando dirijo esto ahora. Ahora tengo una nota que es 68.63. Y de nuevo, si usas esa semilla aleatoria y este comando redondo exactamente así, en tu computadora, con la semilla aleatoria de 99, tu jet, también generarás esa misma nota. Y de nuevo, es para que puedas guardar esta composición y sepas que va a tocar exactamente de la misma manera cada vez. Entonces vamos un poco más lejos y veamos cómo podemos usar esto para producir melodía. 21. Generación de melodías con la aleatorización: Así que vamos a deshacernos de esto por ahora. Diremos, ok, Tócame una nota aleatoria entre 5100. Pero lo envolveremos, envolveremos esto en un bucle. Entonces como vimos antes, pero sólo hacer bucle, hacer un fin. Tenemos que acordarnos de ponernos dormidos. Y así pongámonos dormidos de uno aquí y presionemos Run. Y si podemos llamar a eso melodía, entonces habrás producido la misma melodía que yo si ejecutas ese código en tu computadora. También podríamos aleatorizar el sueño. Porque dormir es sólo un número entre, entre 0 y lo que queramos que sea. Digamos rand. Generarme dormido entre cero 0.25. Entonces cuarto de latido, 1.5 latidos. Y vamos a correr eso. De acuerdo, entonces ahí podemos ver que hemos, hemos aleatorizado el, no sólo la nota sino el tiempo entre nodos. Para que pudiéramos intercambiar el comando play por una muestra. Entonces echemos un vistazo a eso para que podamos jugar muestra. Hagamos frotar vidrio B. Entonces aquí estábamos jugando la misma muestra, pero estamos aleatorizando el tiempo entre muestras. Pero no lo olvides, podemos usar la opción de tarifa de una muestra para acelerarla o ralentizarla. Entonces podemos hacer exactamente lo mismo con el valor aleatorio allí. Entonces podemos establecer que la tasa sea un valor aleatorio entre 0.52, por ejemplo. Entonces eso sería honesto. Así que podemos usar las funciones de aleatorización para crear valores aleatorios para ir en cualquier opción que tome un número, por lo que es tan útil que Sonic Pi haya sido diseñado de tal manera que establecer las opciones con números, y por lo tanto podemos usar valores aleatorios en la gran mayoría de ellos. Así que tenga un juego con diferentes, es posible que desee mirar los sobres, cortes de filtro, resonancias, patrones y amplitudes. Simplemente inserte algunos valores aleatorios usando la función rand. Y empezarás a crear música verdaderamente generada, que como digo, podrías, o bien, podrías querer usar en tu composición directamente o usarlas como yo. De vez en cuando es sólo para jugar algunos valores aleatorios, jugar con diferentes opciones y diferentes valores aleatorios en cada uno para proporcionar algo de inspiración para una composición. 22. Otras funciones aleatorias: Impresionante. Otras funciones de aleatorización dentro de Sonic Pi, cuales pueden usarse para producir valores ligeramente diferentes. Entonces comencemos con un bucle. Este bucle sólo jugará un C4. Vamos a establecer la amplitud simplemente a rand. Y luego dormiremos por medio tiempo, la función rand y luego Sonic Pi siempre producirá un valor entre 01. Entonces vamos a jugar a eso. Esta es sólo una forma taquigráfica de escribir esto que sería exactamente lo mismo. También podemos decirle que devuelva un entero. Entonces si quisiéramos tener notas midi exactas, podríamos decir guión bajo redondo i, entre 5000. Notarás que cuando toquemos esto, si miro en el bitácora, entonces sólo tenemos notas enteras aquí. Por lo que un entero entero valores. Entonces nada después del, después del punto decimal. Entonces sabemos que hay algo en eso, la escala midi. Por lo que de nuevo, tener un juego alrededor con la función aleatoria. Miramos nuestra ronda y vuelta. Recuerda que no soy yo, nos va a dar un entero. Rand nos dará un número de punto flotante, o un número, tal vez con algo después del decimal y redondo, que nos dará un número entre 01. Tener un juego alrededor con esos, ponerlos en diferentes parámetros, jugar algunos nodos diferentes, duerme en diferentes longitudes de tiempo. Simplemente juega con diferentes amplitudes y parámetros de envolvente y realmente se acostumbra al efecto que la aleatorización puede tener. En tu nota, el interesante tipo de posibilidades generativas que puedes tener dentro de tu código. Una vez que termines de jugar con las funciones de aleatorización, pasaremos a la siguiente sección, que cubrirá la parte final del flujo del programa, que es la selección. 23. Selección: Para trabajar con las partes finales del flujo del programa, que es la selección, vamos a necesitar entender un par de conceptos de programación. Echémosles un vistazo en el próximo par de diapositivas. Entonces lo primero que vamos a mirar es una cosa llamada operadores de comparación. Los operadores de comparación solo nos permiten comparar una cosa contra otra. Entonces, cuando estamos viendo la selección, necesitamos poder determinar si una cosa es verdadera u otra es falsa. Entonces, por ejemplo, queremos poder ejecutar cierta parte del código si algo es cierto o una parte diferente del código si esa comparación es falsa. Entonces con el fin de, con el fin de determinar que tenemos una serie de operadores de comparación. Los puedes ver en la pantalla aquí. Sólo hay seis. Voy a explicar cada uno de estos a su vez, pero son concepto bastante simple. Por lo que los primeros operadores de comparación es un signo de doble igual. Y esto es igual a, ahora, es un error común y todavía lo hago yo mismo. Llevo más de 20 años haciendo esto por una programación y todavía lo hago yo mismo. Entonces no te preocupes, pero cuando estamos haciendo una comparación, queremos ver si una compara una cosa con otra. Necesitamos usar el signo de doble igual. Y eso es porque usamos el solo signo igual para otra cosa. Entonces aunque normalmente en tus matemáticas usaríamos un solo signo igual para la comparación en la programación, usamos el doble igual. Y yo, cuando escribo esto en mi cabeza, digo igual a. Entonces hay dos palabras, dos iguales iguales a dos iguales. Entonces si queremos ver si una cosa es igual a otra, doble es igual a signo. Si quiere decir que, si la cosa es igual, los dos lados de esa ecuación, si quieres, son verdaderos o son iguales, entonces será cierto y podemos ejecutar código basado en eso. El siguiente operador de comparación entonces es el no igual a. Entonces si este lado no es igual a este lado, o si un lado menos izquierdo no es igual al lado derecho, entonces volverá verdadero. Si los dos lados son iguales, entonces volverá falso. Que entonces tengamos los mayores que y menos que los operadores. Entonces si el lado izquierdo, lado izquierdo es mayor que el lado derecho, devuelve verdadero. O si el, si el lado izquierdo es menor que el lado derecho, entonces devuelve verdadero. Entonces tenemos una final de dos operadores que son muy similares, pero que incluyen el bit medio es menor o mayor que o igual a o menor que o igual a. Entonces podríamos decir que si un cierto valor es menor o igual a, o mayor que o igual al otro valor, entonces devuelve true. De lo contrario devuelve false. Esto, sé que esto es si no has hecho ninguna programación antes, esto es una, puede ser un poco extraño. Se volverá mucho, mucho más claro cuando veamos algunos ejemplos de código y haremos mucho. Entonces probablemente sea una buena idea anotar estos hacia abajo. Entonces tenemos lo igual a, no igual a, mayor que, menor que, mayor o igual a y menor que o igual a. Puede haber una ocasión en la que queramos encadenar estos juntos. Entonces queremos decir, si esto es igual, si a es igual a b y c es mayor que d, por ejemplo, o si a es igual a b o c es mayor que t De nuevo, esto va a ser mucho, mucho más fácil explicar y entender una vez que vemos algún código. Pero solo, sólo para decir que también tenemos estos operadores combinadores u operadores lógicos. Entonces así es como combinamos las comparaciones juntas. Nuevamente, un doble ampersand o un doble y firmado significa, y una tubería doble significa todo. Y encontrarás el letrero de tubería en una Mac al menos justo por encima de shift y backslash. Pero éstas se harán mucho más claras. Vamos a saltar por encima en, en Sonic Pi ahora, vamos a escribir algún código usando este tipo de operadores y ya verás cómo funcionan mucho mejor. De acuerdo, entonces la forma en que hacemos selección dentro de Sonic Pi es con el uso de la palabra clave if. Es muy sencillo de entender. Así que vamos a sumergirnos y escribir un poco de código y ya verás cómo funcionan todos estos operadores. Entonces comencemos con un ejemplo sencillo. Entonces podemos decir, si uno es igual a uno, entonces juega. No conocía el caucho de vidrio Amby. Al igual que con todos los bloques de código dentro del lado Sonic Pi, necesitamos poner una N en la cosa aquí. Entonces esto es decir si uno es igual a uno, lo cual siempre es cierto, uno siempre es igual a uno, entonces toca esta muestra. Por lo que deberíamos escuchar ese juego de muestra. ¿ De acuerdo? Y podemos demostrar que esto funcionó por. Podemos decir si uno es igual a dos, entonces esta muestra no debe jugar. ¿ De acuerdo? Y podemos ver encima en el registro, esa es nuestra corrida iniciada y completada. Pero el muestreado en juego, porque uno no es igual a dos. Por lo que podemos mirar a algunos de los otros operadores aquí. Entonces podemos decir que si uno no es igual a dos, entonces ¿qué esperaríamos que pasara aquí? Sí, esperaríamos que la muestra tocara porque una no es igual a dos. Y ahí vamos. Entonces los otros operadores que podríamos usar son si uno es mayor que 21, no es mayor que dos. Entonces no esperaremos que la muestra lo interprete. Si miramos en el registro, ves que las corridas comienzan y se completan y la muestra no se reproduce. Pero si decimos si uno es menor que dos, entonces podemos presionar, correr. Se reproducirá la muestra. Se puede ver que es un concepto muy sencillo y es solo, realmente es esa selección. Entonces si esto se evalúa como cierto es que si esta expresión y llamamos a esto una expresión aquí, esta expresión se evalúa a verdadera, entonces llevar a cabo el código con dentro de ella. 24. si... otra cosa: Entonces echemos un vistazo a lo que podríamos hacer de otra manera. Para que podamos tener dos caminos de ejecución. Entonces podemos decir, si esto es cierto, haz esto, de lo contrario, haz esto. Entonces dejemos eso como está, y podemos ver la palabra clave para el segundo camino, la caída. Si la primera expresión se evalúa como falsa, podemos crear una segunda ruta y utilizamos la palabra clave else para eso. Y sólo nos tocaré una muestra diferente aquí. Entonces algo que es muy diferente. Así que vamos, escojamos, escojamos una edad, un peso basado en una habitación basada en el peso. Entonces podemos decir, si la primera expresión se evalúa como verdadera, reproduce esta muestra, hagámoslo bonito y sencillo de nuevo. Entonces si uno es igual a uno, así que si uno, si uno es igual a uno se evalúa a verdadero, que tocará el ambiguo Rob de lo contrario tocará el bombo. Entonces vamos a correr eso. Y esperaríamos escuchar la varilla de cristal. Entonces para que esta segunda parte del código se ejecute, esta expresión después de la f necesitaría evaluar a false. Entonces podemos hacer eso simplemente diciendo si uno es igual a dos. Vamos a correr eso. Y deberíamos escuchar el juego de bombo porque esto lo hará, esto será falso o un bucle inmediatamente saltó hacia abajo al otro. Ignora esta línea de aquí, saltó al else y juega lo que hay en el bloque else. Podemos escuchar el juego de bombo. Vale, entonces, ¿qué más podemos hacer con eso? Porque esto es, parece un poco sencillo. Bueno, nos vendría bien algunos valores aleatorios. Entonces vamos, cambiemos esto por algo, hagamos algo un poco más fácil aquí. Así que vamos a conseguir un tambor de base dura. Y cambiemos éste por un. a ver, un hi-hat abierto. Entonces ahí está el bombo porque nosotros uno no equivale a dos y ejecutamos lo que había en el otro. Si ponemos esto en verdad, Ahí estamos. Ahí está nuestro hi-hat abierto, así que tenemos dos sonidos. Es agradable y fácil de escuchar. Muy claramente diferente por lo que podremos entender completamente lo que está pasando. Entonces esta expresión aquí es bastante simplista. Amino siempre ejecutar a verdadero. Pero algunos, tal vez podríamos hacer otra cosa para hacer esto un poco más interesante. Entonces, si bien sabemos que tenemos las funciones de aleatorización que vimos en la lección anterior. Por lo que tal vez podría ser interesante para usted algunos de esos. Así que digamos que tenemos la función rand que devuelve un valor aleatorio entre 01. Entonces nos vendría bien eso. Entonces podemos decir que si r1 es mayor que nada 0.5, esto producirá un valor aleatorio entre nada y uno. Si eso, si ese valor es mayor que nada 0.5, entonces tocaremos el hi-hat abierto. Símbolo abierto. De lo contrario, tocará el bombo. Entoncesvamos a jugar a eso. De acuerdo, entonces en este caso, el valor aleatorio debe haber sido mayor que nada 0.5. Y así jugamos esto aquí. Podemos poner tantas líneas de código como queramos dentro de estos bloques. Entonces podríamos tener, podríamos tocar múltiples samples, podemos tocar múltiples notas, lo que quisiéramos hacer dentro del bloque if y dentro del bloque else. 25. Combinación de comparaciones: De acuerdo, entonces, ¿cómo vamos a comparar? Entonces miramos los operadores de comparación lógica, Pero luego dijimos que podíamos combinar, más bien, podríamos combinar esos operadores lógicos. Podríamos querer decir si esto es cierto y esto es cierto o esto es cierto o esto es cierto, echemos un vistazo a eso. Entonces volvamos a nuestro sencillo ejemplo. Entonces si uno es igual a uno, si uno es igual a una jugada, el hi-hat abierto es igual a uno. Por lo que juega el hi-hat abierto. Podemos combinar eso con otro. Entonces esto no es una, así que podemos usar el doble ampersand y podemos decir si uno es igual a 12, es igual a dos, entonces toca el hi-hat abierto. Pero esto sólo tocará el hi-hat abierto. Esta pieza de código dentro del bloque if aquí sólo se ejecutará si ambas expresiones son verdaderas. Podemos encadenar tantos de estos. Puedes tener tantas y's y o como quieras tener dentro de tu expresión IF. Entonces si cambio cualquiera de estos, entonces ser falso. Entonces si dos lo es, podemos decir si dos es igual a tres, bueno esto va a ser falso. Entonces, por lo tanto, uno-a-uno siempre será cierto. Esto será, esto será falso. Entonces, pues, esto, esto, y esto no son verdad porque esto es cierto, pero esto no lo es. Entonces por lo tanto el juego de estruendo base. Ahora bien, ¿qué pasa si cambio esto a un OR? Entonces esta es la pipa doble, ¿recuerdas? Entonces esto básicamente está diciendo si uno es igual a uno o dos es igual a tres, entonces juega, luego toca el símbolo. De lo contrario, toca el bombo. Bueno, uno es igual a uno. Entonces ni siquiera necesita ir, ni siquiera evalúa realmente este bit. Simplemente dice y es igual a uno. Este es un o. Por lo que. En realidad no importa lo que hay aquí. Esto es irrelevante porque sólo una de estas cosas tiene que ser verdad para poder tocar este símbolo. Y de nuevo, si cambio a dos es igual a dos. Si esto es cierto o esto es cierto, toca el símbolo, de lo contrario toca el bombo. Y son los dos, los dos son ciertos. Entonces eso está completamente bien. ¿ Qué pasa si cambio? Uno es igual a 22 es igual a tres. En este caso, esperaríamos que el bombo entrara en juego porque ni esto ni esto eran verdad en este caso. De acuerdo, entonces ese es un verdadero vistazo rápido a cómo hacemos la selección con el interior de Sonic Pi. 26. La función de aleatorización one_in: Combinemos esto con algunas de las funciones de aleatorización tal vez para hacer algo un poco más interesante. Entonces quizás hagamos esto para que podamos hacer un bucle. Simplementelo ejecutaremos para siempre. Pero de nuevo, sólo para recordarte, realmente correrá para siempre. Así que ten cautela al usarlas en tus composiciones. Y volveremos a nuestra función aleatoria. Entonces si rand es mayor que 0.5, entonces la, otra vez, la función rand nos va a dar un valor entre nada y uno. Si es mayor que nada, 0.5, toca el símbolo, lo contrario toca el bajo Trump. Juguemos a eso. Aquí puedes ver un error. Mi error. No me puse dormido dentro del bucle y eso es exactamente lo que te está diciendo dijiste bucle no dormía ni se hundió. Entonces pongámonos dormidos ahí dentro y corramos de nuevo. ¿ De acuerdo? Entonces hay otra, otra función de aleatorización que aún no hemos visto pero, pero que podría ser útil en este tipo de situaciones. Y esa es la que está en función de aleatorización. Déjamemostrarte eso. Entonces decimos que si uno subrayado adentro, pongamos un dos aquí. Entonces básicamente lo que uno hace es que devuelve un verdadero con una probabilidad de que pongas dentro de estos corchetes aquí. Por lo que una de cada dos veces, volverá verdadero de una manera puramente aleatoria de manera aleatoria. Si yo fuera a poner un inquilino aquí una de cada diez veces, esto volverá cierto. Si pongo uno de cada dos, esperaríamos una distribución parejo entre los símbolos y el bombo. Entonces escuchemos eso. De acuerdo, Entonces están tocando casi la misma cantidad ahora, obviamente en un patrón aleatorio, pero, pero casi el mismo número de símbolos que los bombos. Y en realidad, si pasamos al login y desplazamos por el registro y los contábamos todos hacia arriba. Podemos ver el bombo tocando y podemos tocar los símbolos tocados. Si pasáramos y contáramos esos, terminaríamos con casi el mismo número. Pero si cambio esto a uno de cada diez, esperaría escuchar el bombo tocar mucho más seguido que el simple, porque una de cada diez veces esperaría que tocara el símbolo. Y cada otro tiempo, yo esperaría que tocara el bombo . Entonces escuchemos eso. De acuerdo, entonces podemos ver aquí que usando estos operadores IF, la selección dentro, Sonic Pi, combinada con la función de aleatorización, realmente podemos comenzar a construir rápidamente algún tipo de funciones de alguna música generativa. Porque por supuesto, podríamos, podríamos tocar diferentes acordes, diferentes notas, lo que quisiéramos hacer, diferentes samples dentro, dentro de patrones como este. 27. El simple si: Hay una forma un poco más sencilla de escribir este código y eso es así. Vamos a deshacernos de esto, deshazte ahí. Entonces podemos decir. Entonces en lugar de tener una declaración if en la que se ve así. Entonces cambiemos esto a uno de cada cuatro, así que 14 veces esperamos que el símbolo juegue. De lo contrario sólo dormiremos y volveremos a dar la vuelta al bucle. Entonces esto se hace tan a menudo dentro del código que usamos para generar música, Hay un poco de un atajo a ella. Entonces solo significa que podemos quitar este fin aquí. Y sólo podemos cortar eso de ahí. Podemos ponerlo al final de aquí. Así que déjame solo leerte esto. Entonces esto va a dar vueltas, vueltas, vueltas para siempre. Y va a decir, toca este símbolo de tambor de muestra abierto si uno de cada cuatro. Y es sólo un poco de un atajo, un poco de una forma más rápida de escribirlo. Entonces terminamos con el mismo resultado, pero solo hace que el código sea un poco más fácil de leer quizás. Oh, tal vez solo podamos meternos por aquí y solo, solo cambiemos nuestro código. Entonces juguemos una, toquemos una vaca, una campana de vaca cada uno de cada seis. Entonces lo que esto va a hacer es que va a, déjenme solo ordenarle a M que haga eso. Sólo va a hacer de esto un símbolo cerca sólo para que sea un poco menos ringy si eso es una palabra. Entonces vamos a dar vueltas por cada rincón de una playa. Vamos a tocar un símbolo cerrado. Y después una de cada seis veces, vamos a tocar la campana de vaca. De acuerdo, y eso realmente es todo para la selección dentro de Sonic Pi. Así que tienen una obra de teatro, pero miren el aire desde la L y la versión abreviada de F que tenemos aquí tenemos un juego con el uno en función de aleatorización y las otras funciones de aleatorización que vimos en la lección anterior. Y mira a los operadores condicionales y combinando esos operadores juntos solo para mirar diferentes formas en que podemos combinarlos y usarlos para hacer música que es impredecible. 28. Variables: De acuerdo, es hora de echar un vistazo a algunas variables. Ahora, una variable es sólo un nombre elegante para una etiqueta realmente. Es sólo una forma de dar nombres a las cosas que podemos referirnos a ellas más adelante. La forma más fácil de mostrarte es sólo escribir algún código, pero en realidad es solo una forma de darle un nombre a algo para que la computadora pueda recordarlo. Y cuando lo pedimos más tarde, nos lo puede devolver. Eso es todo una variable es. Variables dentro de Sonic Pi, una muy, muy simple de usar, pero usamos para ellas el signo igual. Y es por esto que tuvimos que usar los dobles iguales dentro de los operadores de comparación. Para esto se reservan los iguales. Entonces decimos el nombre de la cosa y luego iguala y luego sea cual sea el valor que queramos almacenar, el valor puede ser cualquier cosa. Entonces podríamos decir, por ejemplo, número es igual a 99. Y entonces cualquier cosa que pedimos número más adelante, podemos recuperarlo usando la palabra número. Entonces vamos, dejémoslo realmente claro. Entonces mi número es 99, y si digo, si Mi número es mayor que 98, solo juega 60. De lo contrario no lo son. De hecho acabamos de terminar. Entonces podemos decir que almacenamos el número o el valor 99 dentro una variable a la que hemos llamado mi número. Y después podemos usar eso. En nuestra instancia. Simplemente podemos usar una simple declaración if para decir si mi número es mayor que 98, play 60, así que esperaríamos que suenen. Ahí vamos. Tan muy, muy simple de usar y tan Sonic Pi, pero en realidad realmente útil porque podemos referirnos a esto en muchos, muchos lugares. Y cuando queremos cambiar el valor de la misma, sólo llegamos a ir a un lugar para cambiarlo en lugar de cambiarlo por todo nuestro código. Entonces echemos un vistazo a un ejemplo sencillo. Así que una cosa que podríamos querer hacer es nombrar algunas de nuestras muestras para que podamos referirnos a ellas más adelante. Y si queremos cambiar esa muestra, entonces sólo podemos cambiarla en un solo lugar. Esto, veamos un buen ejemplo. Así que vamos a crear una variable llamada hi-hat. Y dentro de esa variable vamos a almacenar el nombre de una muestra. Entonces tambor, símbolo, cerca. Entonces este es un hi-hat cerrado. Vamos a crear otra variable llamada snare. Y vamos a hacer que el, la muestra o un subrayado Zoom. Y crearemos una variable llamada cake. Y llamaremos a eso almacenaremos en eso el nombre de la muestra. Bdi subrayado casa. El uso de variables se vuelve muy claro ahora porque si creo un bucle, dentro de ese bucle, voy a decir, ok, para un montón de muestra, tocarme el hi-hat. Entonces tócame la patada de muestra. Y después duerme por Quarter, repite. Tócame otro daño, otro hi-hat. Y luego volver a dormir. Y tócame otro hi-hat. Duerme de nuevo. Duerme de nuevo. Y luego tocarme otro hi-hat y volver a dormir. Juguemos a eso. De acuerdo, así que tal vez entonces en el tercer beat queremos traer también una caja. Entonces juguemos una caja y aquí, así que juguemos una caja o tres, ciudadano a eso. Pero, ¿y si quiero cambiar el bombo que estamos usando? Entonces si quiero cambiar tus patadas, estamos usando mientras solo tengo que ir y cambiarlas en el lugar. Entoncesno es tan malo. Pero quiero cambiar el sombrero alto que estamos usando, tendría que ir a través de mi código y cambiar si lo usaría, si lo he hecho así. Por ejemplo, tendría que ir a cada lugar de mi código y cambiar el hi-hat que estoy usando. Así que vamos a deshacer eso. En nuestro ejemplo. Simplemente podemos cambiarlo en un solo lugar. Por lo que sólo vamos a cambiar esto a un hi-hat abierto. Podemos cambiarlo en un solo lugar. No necesitamos cambiarlo en ningún otro lugar de nuestro código. Y ahí estamos. Entonces esa es una buena razón para usar variables, pero las usamos bastante en el curso a partir de ahora. Pero en realidad es sólo cuestión de darle un nombre a algo. Se puede almacenar absolutamente cualquier cosa en una variable. Una cosa que diré sobre las variables es siempre tratar de darles un nombre significativo. Al igual que si tuviera una llamada esto a, B , y C, hubiera estado bien usándolo, usando esos ahora y lo reemplazé deja a, B, y C habría estado bien ahora, nunca habría recordado como yo estaba escribiendo la cosa ahora. Pero en realidad si fuera a recoger este pedazo de código en tres meses e ir a copiar este pedazo de código en otro lugar. Los usas en una nueva canción que yo estaba escribiendo. O incluso sólo para abrir esto y leer esto. Y hubiera sido muy, muy difícil de entender, mantiene unos nombres significativos y hará que tu código mucho más fácil de leer. Y pasamos mucho más tiempo leyendo código que escribiéndolo. Por lo que siempre vale la pena tener en cuenta ese tipo de legibilidad. 29. Contadores de bucle: Otro uso común de las variables es hacer un seguimiento de dónde estamos mientras ejecutamos un programa. Por ejemplo, una de las cosas que podríamos querer hacer un seguimiento es dónde estamos en un lupus, ese bucle está iterando. Entonces echemos un vistazo a nuestra manera de hacer eso. Entonces podríamos empezar con una variable llamada contador y establecemos eso en 0. Entonces tenemos un bucle. Por lo que limitará este bucle a 30 veces de punto. Así 30 veces du. Y entonces vamos a poner fin aquí. Ahora siempre encuentro que es realmente útil poner el tipo el final después de que yo, después de escribir el du. Entonces si estoy, si estoy usando un Air for, si estoy haciendo algo así como un bucle con un DO al final, y veremos muchos otros ejemplos más adelante. Siempre me resulta útil solo poner el final en seguida y luego, y luego escribir mi código en el medio. Esto me ahorra olvidarme de terminar un bloque de código más adelante, llegando con algún error extraño que a veces puede ser difícil de encontrar. Entonces eso es lo que prefiero hacer. Pero de todos modos, entonces lo que vamos a hacer es que vamos a recorrer este bucle. Y por cada vez a través vamos a tocar una nota. Entonces vamos a jugar 50 más. El contador entonces dormirá por un latido. Y entonces lo haremos, incrementaremos el contador por uno. Entonces dirá que el contador es lo que sea que sea ahora el contador , más uno. De acuerdo, así que solo caminemos o hablemos nuestro camino a través de esto si quieres. Entonces lo primero que hacemos es poner el contador a 0. Entonces decimos, haz esto 30 veces. La primera vez a través de este bucle, jugamos 50 más el contador, que es 0. Entonces jugamos 5050 más 0 es 0. Después dormimos un cuarto de segundo. Añadimos uno al mostrador y retrocedemos por esta época a través del bucle. Entonces jugamos 50 más uno. Dormimos un cuarto de segundo, sumamos uno a eso. Por lo que los contadores ahora para volver por los contadores para así jugar 50 más dos. Entonces jugamos 52 y dormimos. Y luego le agregamos uno al mostrador, así que ahora son tres. Volvemos ronda atrás, jugamos 5353, después dormimos por cuarto o segundo cuarto de tiempo, y luego le agregamos uno con 54 y así sucesivamente y así sucesivamente. Y eso lo hacemos 30 veces. Entonces lo que deberíamos aquí es a medida que nos movemos, como vimos antes, a medida que subimos un número en el valor de la nota midi. Entonces este número de aquí, este 50, que debe mover esa bola que sí se mueve hacia arriba un semitono. Entonces lo que deberíamos aquí entonces es que deberíamos empezar a los 50 y luego deberíamos, cada cuarto de latido, debemos avanzar hacia arriba. Deberíamos tocar una nota de esto arriba un semitono. Entonces escuchemos eso. Ahí estamos. Entonces eso funciona exactamente como esperábamos. Ahora bien, esto es, de nuevo, algo tan común que hacer que Sonic Pi nos proporcione un atajo. Y esto funciona así, así que esto funcionará perfectamente bien y está absolutamente bien usar esto si tienes esto en tu cabeza y es más fácil para ti leer, es absolutamente el correcto cosa que hacer. Pero hay una versión más corta. Te lo mostraré ahora para que podamos deshacernos de esta variable de contador. Básicamente, podemos colocarlo aquí. Entonces podemos decir entre dos pipas, así. Y podemos deshacernos de esto aquí. Por lo que puedes ver esto lo hace mucho, mucho más corto. Pero podemos decir que 30 veces sí. Podemos decir, vale, incluye este contador. Este contador siempre comenzará en 0. Y cada vez que pasemos por este bucle, lo hará, agregará uno a. Es algo tan común de hacer. Hay una función incorporada. Se ve un poco extraño. Noes tan fácil de leer. Eso lo agradezco, pero lo es, si te acostumbras, sí te ahorra bastante código. Por supuesto, este contador podría llamarse cualquier cosa que quieras es bastante común en realidad codificar para ver esto llamado I. Esto es solo una convención través de aparentemente todos los lenguajes de programación. Así que he usado esto en toneladas y toneladas de diferentes idiomas a lo largo de los años, pero es bastante comúnmente llamado IAC podría llamarse contador, podrías llamarlo como quisieras. Se podría llamar Steve. Entonces vamos a escuchar esto. Nuevamente. Sólo una versión más corta de lo que hacíamos antes. Podemos llamar a esto como queramos, solo necesitamos recordar que tiene que ser el mismo nombre dentro del bucle. Entonces eso es todo. De acuerdo, así que solo juega un poco con eso y solo asegúrate de entender realmente lo que está pasando. Recuerda, pasa a la siguiente sección donde vamos a ver algunos conceptos más de programación. Así que esta vez alrededor algunas estructuras de datos que están integradas en Sonic Pi. 30. Listas: De acuerdo, Entonces hay una serie de estructuras de datos incorporadas en Sonic Pi. Es un nombre complicado para un concepto bastante simple. Entonces pasaremos por cada uno poco a poco. Y realmente están diseñados para simplemente facilitarte un poco las cosas. Dentro de Sonic Pi, Hay muchas cosas de construcción realmente útiles, pero las vamos a explorar dentro de esta sección. Por lo que se puede ver en la pantalla aquí que tengo un programa muy, muy simple el cual va a tocar un acorde. Ahora, otra forma de hacer esto, sólo para ahorrar un poco de tiempo en unas pocas líneas de código, nos vendría bien una cosa llamada lista. Ahora una lista es sólo toma un número de valores y los pone juntos, separados por comas dentro de corchetes. Entonces déjame mostrarte aquí. Entonces pongamos un, vamos a poner dormidos aquí. Entonces podemos tener una lista que es, que está aquí. Entonces tenemos corchetes y luego ponemos todos los valores que queremos dentro de esa lista. Y entonces todo en esa lista será sobre el que operemos, por lo que tocará todo en la lista. Podríamos decir que podríamos simplemente tomar el mismo valor. Entonces un A4, I, C-sharp cinco, C-sharp cinco, y un E5. Si ejecutamos esto, pero vamos a tocar este acorde y después vamos a buscar un golpe. Y luego vamos a tocar este acorde y veremos que hay exactamente la misma salida. Permítanme simplemente separar este byte. Dos segundos. Creo que uno estaba aguantando. ¿ De acuerdo? Entonces esto es exactamente lo mismo que esto. Pero lo estamos, acabamos poner todos nuestros valores insider dentro de la lista. Eso significa que podemos mover tres líneas de código a una. Podemos igualmente. He reemplazado esto con números de notas midi. Entonces podríamos decir el equivalente aquí, que es sesenta y nueve, setenta y tres, y setenta y seis. Ahí estamos. Entonces es exactamente lo mismo. Entonces esto es sólo una lista de cosas. Y en este caso, estamos pidiendo que cuando se le pida que juegue al mando, que juegue esta lista, esa lista contenga todas esas cosas, pero hay otras cosas que podemos hacer. Entonces echemos un vistazo a algunas cosas interesantes que podemos hacer. Entonces vamos a crear un bucle. Dejemos eso así por ahora y después escojamos y asegurémonos de poner nuestro final. Ahora. Es un bucle que varios necesitan dormirse. Por lo que dormirá medio latido. Ahora bien, lo que esto va a hacer es que si me viera así, va a tocar este acorde. Duerme la mitad de cada uno. Tócalo de nuevo, duerme después de que lo volvamos a tocar. Ahora, en realidad soy algo que podría ser útil si pudiéramos escoger uno de estos al azar para tocar cada vez que pasamos por el bucle, sabemos que tendríamos una nota dentro de ese acorde. Pero sólo va a escoger una de las cosas en esa lista de juego en lugar de jugarlas todas a la vez. La forma en que lo hacemos es con otra función de aleatorización. Y usamos mucho la aleatorización en la programación de computadoras en general, pero particularmente este tipo de música haciendo código porque hace, hace que para algunas melodías realmente interesantes y patentes. Entonces usemos el elegir Kiba. Entonces acabamos de poner la lista dentro de paréntesis. Cuantos dicen, vale, bueno, eligeme algo que de ese menos que planta. Entonces eso es básicamente lo que está diciendo este código. Escuchemos esto. De acuerdo, para que puedan ver que está recogiendo algo de esa lección. Se puede ver con bastante facilidad cómo algo un poco más complejo o tal vez una lista un poco más larga, podría proporcionarte alguna inspiración interesante de para la música y las ideas. Ahora bien, no creo que pudiéramos hacer es podríamos, podríamos crear una variable. Para que pudiéramos justo afuera de aquí. Podríamos hablar y decir, Oh, podríamos hacerlo dentro o fuera. No importa, pero sólo para demostrar el uso de variables. Entonces podemos decir, vamos a crear una variable llamada escala lista de subrayado es igual a, y luego vamos a cortar de ellos. Pon esto afuera. Entonces podemos decir jugar algo de escala, esta lista de escalas. Esto funcionará exactamente de la misma manera, pero acabamos de sacar esto ahora en una variable. Entonces, ¿por qué es útil esto? Porqué podríamos querer usar esto en varios lugares diferentes. Podríamos decir, podríamos querer cambiar esta escala a una escala diferente. En cuyo caso podríamos simplemente ir a cambiarlos una vez y podríamos referirnos a ello en todo nuestro programa. Pero solo otro ejemplo de uso de variables para almacenar valores. Entonces esta es nuestra lista. 31. Índices: De acuerdo, ¿y si queremos tocar una nota en particular sobre las listas? Y las listas pueden ser de una longitud arbitraria. Podríamos tener cientos de notas ahí si quisiéramos, o un 100, se puede almacenar cualquier cosa menos que nuestro caso era simplemente almacenar los números y luego tocarlos, pero podemos almacenar cualquier cosa ahí querido por usted puede tener cientos de artículos dentro de su lista. ¿ Cómo eliges cuál quieres jugar si quieres jugar a uno en particular? Esto es una cosa que se llama indexación. O un índice es, es sólo una forma de que le digamos al, decirle al programa qué elemento de la lista queremos jugar. Y podríamos hacerlo simplemente así. Así que vamos a deshacernos de esta aleatorización por ahora. Así que vamos a deshacernos de, Vamos a deshacernos de este bucle por completo. Entonces si toco esto ahora, va a jugar los tres de estos acorde. Pero si sólo quisiera tocar esta nota media aquí, entonces simplemente pondría entre corchetes una. Igualmente puedo hacer esto así como esta lista. mejor, tal vez esto sea aún más sencillo de ver. Entonces pongamos esto aquí abajo, la forma en que teníamos la lista originalmente. Para que vean que tengo mi lista y estoy diciendo, esta es mi lista. Simplemente juega conmigo este artículo aquí. Entonces este es uno. Ahora bien, ¿por qué esto es uno mientras Lissa siempre son 0 base? Echemos un vistazo rápido a una diapositiva para explicar esto. De acuerdo, Así que como mencioné antes, las computadoras empiezan a contar a 0. Entonces normalmente como empezamos a contar, si preguntaras una cuenta gráfica, contarían 1234, etc. Las computadoras siempre empiezan a contar a 0. A esto se le llama cruz, casi todos los lenguajes de programación. Hay excepciones, pero casi todos los lenguajes de programación. Entonces es por esto que el valor medio dentro de la lista de tres ítems que acabamos de ver. Por eso para obtener el valor medio, en realidad elegimos el índice uno porque el índice 0 habría sido 69. Índice 173, un índice a 76. Entonces este es el índice 0. Este es el índice uno, y este es el índice número dos. Los índices siempre comienzan en 0 igual que todo lo demás. Así que cada vez que hacemos cualquier condado en tamaño Sonic Pi. De acuerdo, entonces cuando ejecute este programa, entonces deberíamos escuchar efectivamente el número 73. Entonces sólo para demostrarlo, Vamos, juguemos un 73. Y después dormiremos un par de latidos. Y después jugaremos el índice número uno de esta lista. Eso podemos ver con toda claridad que son la misma nota. Si quisiera cambiar eso, podría jugar el primer elemento de la lista. Yo quiero, puedo jugar el último elemento de la lista. ¿ Qué pasa si intento jugar algo fuera de la lista? Bueno, no pasa nada. Es más que lanzar un error, es simplemente, si miramos por aquí en los registros, simplemente nos toca un descanso. Ahora, hay otras formas de jugar RESA. Entonces hemos mirado, quitemos esto. Entonces hay una especie de cosa incorporada en Sonic Pi. Para que podamos jugar un restaurante ahí. Para que pudiéramos jugar, digamos un C3, C4, C4. sólo estoy inventando cosas. Un E4. Y entonces podemos usar este símbolo aquí, este codón, que significa arresto. Y entonces podemos jugar, digamos otros tres, A4. De acuerdo, así que ahora esto es, esto no va a funcionar en esta forma porque vamos, vamos sólo a tocar estas cuatro notas y nada aquí porque va a jugar un papel como núcleo. Entonces quizá volvamos a un menos para que tengamos una escala, o esto podría llamarse cualquier cosa. Entonces mi lista es igual a esto. Y entonces tal vez podamos usar ese constructo de bucle que teníamos antes. Entonces podríamos decir cinco. Tenemos cinco cosas, sí, cinco veces sí vamos a usar nuestro contador. Nuevamente, usaremos IA por convención. Ahí está nuestro fin. Entonces podemos decir jugar mi lista. Y luego entre corchetes podemos decirle qué índice queremos jugar. El índice que queremos jugar está basado en el contador. Por lo que de nuevo, esto podría llamarse contador, se podría llamar cualquier cosa que quieras. Entonces mientras miramos por esta primera vez, el contador va a ser 0. Por lo que va a reproducir el ítem 0 en el ítem de la lista, ítem 0, el primer ítem. Y luego vamos a ir de vuelta otra vez contador incrementamos va a jugar este artículo aquí. Y entonces se incrementará el contador. Vuelve a reproducir este artículo aquí. Entonces tocaremos esto que es arresto, y luego tocaremos un cuatro. Ahora, queriendo dormir aquí. Escuchemos esta área. Entonces dos cosas que están listas. Una es que podemos usar este símbolo especial en su interior, lo siento, pi para indicar un descanso. Y en segundo lugar, poner esta lista dentro una variable y luego usar el contador, que vimos como parte de las iteraciones, usando este nombre de variable aquí para usar el índice para escoger ese ítem, ofrecer menos. Entonces solo échale un vistazo a esto. Esto se usa bastante comúnmente. Este tipo de código se usa con bastante frecuencia. Así que asegúrate de entender completamente eso antes de pasar a la siguiente sección, donde nos fijamos en el uso de algunos de los conceptos que utilizamos hasta ahora para crear un secuenciador de batería simple. 32. Hacer un secuenciador de batería: De acuerdo, entonces vamos a usar algunas de las cosas que hemos visto hasta ahora para crear un simple secuenciador de batería. Entonces ninguno de los conceptos aquí dentro debería ser nuevo para ti, pero probablemente sean la primera vez que realmente hemos combinado bastantes de ellos para crear algo realmente útil. Y esto te ayudará a empezar realmente a ver el poder de la vista pi. Una vez que combinas todos estos conceptos, tenemos, todavía tenemos mucho más por aprender, pero, pero tenemos todo lo que necesitamos para construir un secuenciador de batería ahora. Así que vamos a empezar con la creación de algunas variables que mantendrán los nombres de muestra para las muestras que queremos utilizar. Muy similar a lo que hemos hecho antes. Por lo que sólo diremos hi hat es igual al símbolo de guión bajo de tambor, guión bajo cerrado. Crearemos una caja, que llamaremos zona SN. Entonces este es solo el nombre de muestra que vamos a usar. Y crearemos un kick, que usaremos BD house, que es el nombre de las muestras incorporadas. Entonces vamos a usar para el bombo. Entonces lo siguiente que vamos a hacer es crear tres variables más, y éstas van a contener los patrones para nuestro ritmo de batería. Entonces cuando creamos este patrón, vamos a crear una cadena y te lo explicaré en un segundo. Y va a contener x's y guiones o guiones. Así que básicamente lo que queremos hacer es que vamos a escribir un poco de código después de que diga, donde sea que veamos una X reproducir la muestra, si no vemos una x no reproduzca la muestra y esta será la base de nuestro, de nuestro muestreador. Entonces vamos a crear el patrón para el hi-hat. Entonces vamos a crear una variable llamada high hat underscore. Patrón de subrayado. Aquí vamos a crear una cadena. Ahora, una cadena es solo un tipo de valor que encerramos dentro de comillas dobles como este. Esto dice que esto significa que podemos usar espacios y lo que queramos dentro. Pero básicamente es sólo una forma de decir, trata esto como un valor entero. Aunque haya espacios u otros transportistas ahí dentro, esto es todo un valle. Aquí adentro. Vamos a poner nuestra secuencia de batería. Nos vamos a asegurar que tenemos 16 caracteres dentro de aquí, porque vamos a crear una secuencia. Entonces eso tiene 16 pasos, así que secuenciador de 16 pasos. Entonces echemos un vistazo aquí. Entoncesvamos a crear 16. El personaje dice 123456789101112. Oh, no, eso lo he contraído muy mal. 123456789101112131415. Voy a terminar con eso. Terminaremos con una patada doble. Entonces tenemos 16 pasos son, me equivoqué salvajemente. Sólo había y las x's creo que vamos a ir patada, descansar, patear , descansar, patear, descansar, patear resto, todo el camino a lo largo, luego terminar con un doble clic. Entonces ahí tenemos 16 personajes. A continuación, creamos nuestro patrón de caja. Entonces vamos a tener un patrón de caja que se ve así. Así que vamos a crear una variable llamada patrón de caja. Y de nuevo, queremos 16 artículos dentro de nuestro patrón de caja. Entonces vamos a ir guión, guión, guión, guión guión X guión guión, guión, guión, guión. Podemos ver porque la fuente utilizada dentro del editor de código es una fuente monoespaciada, lo que significa que cada carácter ocupa la misma cantidad de espacio. Eso lo podemos ver porque sabemos que aquí tenemos 16. Si estos se alinean, aquí también tenemos 16. Pero crea nuestro patrón de patada. Como dije antes. Sonic Pi realmente no le importa el espacio en blanco. Puedes poner espacios o retornos de carro donde quieras, solo ignorarlos. Entonces lo que voy a hacer es simplemente añadir un espacio extra. Entonces todo esto se alinea muy bien. Vamos a crear un patrón de caja, algo así. ¿ De acuerdo? Y realmente no importa cómo vea tu patrón de patada estrecha hi-hats. Esto es con lo que voy a ir por ahora. Y luego debajo de aquí vamos a crear un bucle que termina Comando M o Control M para formatear el código. Y luego dentro de esto vamos a crear un bucle anidado. Entonces queremos bucle para siempre, pero queremos tener un bucle de 16 veces dentro de eso, que va a pasar por esto y decidir si jugamos un sombrero alto, una caja, o una patada. De acuerdo, Así que vamos a crear nuestros 16 tiempos, 16 veces du. Y entonces vamos a usar un mostrador aquí dentro. Por lo que otra vez con la pipa. Recuerda que podríamos hacer esto inicializando el contador y haciendo un contador igual a contador más uno o, o, o lo que sea aquí. Pero este es el atajo que vamos a usar porque es una cosa tan comúnmente hecha dentro, dentro del código Sonic Pi. Entonces vamos a crear nuestro fin. Tenemos que recordar ponernos dormidos dentro de nuestro bucle. Dormirán por un cuarto de latido aquí. Entonces sólo vamos a usar la simple F para determinar si. Deberíamos tocar cada tambor o no. Entonces digamos solo muestra hi-hat. Entonces vamos a tocar esto, la muestra hi-hat, que va a tocar esta variable aquí. Entonces símbolo de tambor cerca, pero vamos a tocar si el patrón hi-hat, no puedo deletrear hi-hat, patrón de sombrero alto. Y luego vamos a mirar el índice de misma es igual a x Ahora déjame explicarte esto. Por lo que la primera vez a través del mostrador va a ser 0. Y así vamos a decir jugar la muestra hi-hat, pero sólo si el patrón hi-hat para el índice 0. Entonces vamos a mirar este patrón de hi-hat. Vamos a mirar al primer personaje dentro del patrón hi-hat. Si eso es una X, juega el sombrero alto, vamos a segunda vuelta el contador va a incrementar el conteo ahora es uno. Esta vez vamos a decir jugar la muestra psi hi-hat si el personaje en la posición uno dentro del patrón hi-hat es una x bien posicionada con 0 basado. Entonces es el segundo personaje mientras que no es una x Entonces no vamos a tocar el sombrero alto. Para que podamos hacer esto y escuchemos el patrón hi-hat. Deberías poder reconocer el patrón hi-hat de esta cuerda que tenemos la parte superior aquí. Entonces va a jugar hi hat, rest, hi-hat rest, hi-hat rest, hi-hat rest todo el camino hasta el final hasta que golpeemos dos hi-hats. Porque estamos dando vueltas, esto efectivamente va a ser tres hi-hats y fila. Entonces vamos a escuchar eso. ¿ De acuerdo? Entonces ese es nuestro secuenciador básico. Entonces todo lo que queda por hacer es hacer, es hacer exactamente lo mismo por la caja y por la patada. Entonces lo único que decimos es tocar la muestra de la caja. Si el patrón en la posición en la que estamos dentro del, determinado por el contador, el índice de la rata. Entonces por el mostrador es una x Y escuchemos eso. Y por último, podemos hacer lo mismo por la patada. Por lo que podemos decir jugar la patada de muestra. Si el índice de patrón de patada del contador es igual a x Y de nuevo, cada vez que damos la vuelta a este bucle, contador va a aumentar, va a empezar en 0. Pero cada vez que damos la vuelta al bucle, el contador va a aumentar en uno. Por lo que cada vez que pasamos por el consejero aumentar en uno. Entonces si hay una x, esa posición dentro del patrón hi-hat, el patrón de caja o el patrón de patada. Si esa es una x que va a reproducir la muestra relevante. Ahora va a hacer esto es por lo que ponemos los 16 veces contra-inhibidores. Entonces tenemos nuestro loop, que soy yo, vamos a bucle para siempre. Pero vamos a hacer el bucle de 16 veces adentro, lo que significa que lo vamos a hacer. 12345678910111213141516 veces el momento en que este bucle ha terminado. Y vamos a golpear este, vamos a volver a la parte superior y golpear este iniciará un nuevo bucle de 16 veces con el contador reset, reset en 0. Por lo que el contador será 0123456789101112131415. Una vez que golpea 15, ha pasado por el salto 16 veces. Recuerda que estamos basados en cero cuando contamos, volverá a la parte superior y luego el contador se restablecerá a 0. Entonces volvemos al inicio de la cuerda y sólo daremos vueltas y vueltas y vueltas de nuevo. Entonces escuchemos a nuestro secuenciador en acción. Y por supuesto, podemos cambiar nuestro patrón muy rápido. Ahora, estás empezando a ver la potencia de los bucles y variables de selección. Así que si acababa de programar ese patrón de batería en tocando samples son solo usando una secuencia. Entonces solo muestra, muestra, muestra que hubiéramos escrito son lotes y montones de código. Y si quisiera cambiar el sonido del bombo, por ejemplo, o el, o el sonido de la caja. Hubiera tenido que ir a cambiar eso. Y una horrenda, horrenda cantidad de lugares también habría sido muy difícil de hacer un seguimiento . ¿Dónde debo estar jugando? Sombrero alto y donde no se debe comprar? ¿ Dónde debería estar jugando un kicker? ¿Dónde debo poner? Al usar este sencillo patrón aquí, solo usando algunos de los conceptos que hemos aprendido hasta ahora. Tenemos una pieza de código realmente agradable, muy fácil de leer, pero lo más importante, realmente pero lo más importante, realmente fácilmente cambiable. Muy fácil para mí ahora ir y cambiar el patrón de mi patada. Entonces agreguemos una patada ahí dentro. En su lugar. Nosotros corremos eso. Tenemos un patrón de patada diferente. Podríamos cambiar el tambor de caja para que sea otra cosa. Entonces creo que hay una que se llama snare genérico. Así que de nuevo, código muy fácilmente legible, pero también fácilmente legible y comprensible y fácilmente cambiable. Entonces ahí estamos. Entonces asegúrate de que realmente entiendes esto, juega con él. Cambia algunos de los patrones, cambia algunos de los sonidos de muestra. Y por qué no ir e introducir otro tambor en la secuencia. Por lo que tal vez introducir una campana de vaca o un, o un símbolo abierto en ese patrón y ver cómo te subes. 33. Patrones de juego: De acuerdo, Así que antes miramos una forma de usar un bucle para iterar sobre una lista o lista de notas para reproducirlas cada una en orden. Pero en realidad hay un par de formas diferentes en las que puedes hacer esto dentro de Sonic Pi. Y como era de esperar, Sonic Pi te ha cubierto con todas las tareas de programación comunes que podrían ser útiles para la música. Entonces, en realidad hay un par de funciones incorporadas llamadas play pattern y play pattern, que nos permitirán lograr lo que queremos hacer. Entonces echemos un vistazo aquí. Así que tuvimos una matriz de lista que agrega algunos valores en ella. Entonces podríamos llamar a esto, llamémoslo mi patrón otra vez. Entonces solo creamos una lista. Recuerda que nuestra lista es solo un montón de cosas separadas por comas dentro de estos corchetes. Por lo que sólo vamos a elegir algunos números aquí. Sesenta y nueve, sesenta y tres, setenta y seis. Estoy bastante seguro de que eso es lo que teníamos antes. Y entonces podemos decir jugar patrón de subrayado. Patrón de subrayado de reproducción. Mi patrón. Entonces escuchemos eso. Esto es exactamente el equivalente de hacer esto. Así que vamos a comentar esto. Entonces esto no se va a ejecutar, por lo que es exactamente lo mismo. Es que a veces es un poco más fácil almacenar estas cosas en una variable. Pero de cualquier manera está bien. Entonces lo que esto va a hacer es por defecto, simplemente va a reproducir cada nota dentro de ese patrón, dentro de esa lista. Y se va a dormir por un latido entre cada nota que toque. Si quiero cambiar, puedo usar un método diferente llamado play pattern underscore, cronometrado. Y luego después de la, después de la lista, solo necesito darle un valor por cuanto tiempo quise dormir entre cada nota. Por lo que dije acaba de decir coma cero 0.25. Y esto va a jugar esta lista aquí en orden y descansar para nada 0.25 entre cada nota. De acuerdo, ahí estamos bastante sencillos. Y de nuevo, podríamos hacer cosas mucho más complejas ahí. Entonces podríamos decir que podríamos introducir un descanso como lo hicimos antes. Y entonces podríamos hacer algo como qué? Podríamos hacer la báscula hacia abajo, ¿verdad? Entonces haríamos 7673. Bueno, el arpegio vuelve a bajar y 69. Entonces esto va a jugar todo el camino hacia arriba. Se va a restaurante un cuarto de golpe y luego todo el camino hacia abajo otra vez con un arrecife de coral entre cada uno. Nota. Que somos bastante sencillos. Entonces vamos a divertirnos un poco. Así que vamos a utilizar un sintetizador, y vamos a utilizar un beneficio de sintetizador. Vamos a crear un comando de bucle M, y vamos a jugar un patrón de tiempo, pero dentro de eso, así que vamos a jugar comScore patrón, subrayado cronometrado add. Crearemos una lección con un r corchetes. Y dentro de eso vamos a crear una, una serie de notas. Entonces vamos por esto. Vamos por S3, v3, g3, G3, B3, y un C4. Por lo que aquellos de ustedes con algún conocimiento de teoría musical pueden haber descubierto que ese es un arpegio do mayor siete. Bien hecho si lo hiciste. Entonces vamos a subir al arpegio y luego vamos a volver a bajar. Entonces un B3, patrick G3, y un E3. Yo sólo voy a dar vueltas, alrededor, alrededor de eso. Y vamos a descansar por nada 0.2 de un latido entre cada cosa que jugamos. Y terminaremos con algo que puede sonar familiar. Un poco de diversión con, con con patrones. Ahí. 34. Acordes: Otra cosa que hemos incorporado a Sonic Pi, nuestras canchas. Entonces echemos un vistazo. Paratocar un acorde. Simplemente podemos decir tocar un acorde y solo necesitamos decirle de qué color queremos que toque. Juguemos un D3. Entonces tenemos que decirle qué tipo de núcleo queríamos tocar. Por lo que aquí hay toda una lista y se puede ver que viene en el código completo. Entonces hay un montón de núcleos que están disponibles para nosotros y realmente es una especie de extensa lista de acordes que están pasando. Pero por ahora, sólo podemos decir, vale, toca un acorde mayor. Juguemoseso. Ahí estamos. Entonces eso se toca como un acorde de re mayor. Hay muchos tipos ahí, así que podríamos querer tocar un acorde menor. Podríamos tocar un séptimo menor, algún tipo de acorde disminuido. De acuerdo, entonces hay un montón ahí dentro. Y como pueden ver, el código completo es realmente excelente. Por lo que en cuanto empieces a escribir igual, te dará todo esto. Así que ten un juego alrededor, mira los diferentes tipos de acordes aquí y esto te ahorra crear en esa lista y hacer ejercicio. Los valores son las notas que deben estar dentro de cada acorde. Entonces digamos que tenemos un D3. Vamos a hacer un, un acorde de séptima mayor. Ahora en realidad podemos usar índices para decirnos qué nota en el core tocar. Entonces si yo fuera a poner un índice de uno en esto, esto va a tocar la segunda nota en el acorde de séptimo mayor D3. Nuevamente, si cambio este índice para estar bien, así puedo usar, usar código aquí, usar índices para sacar las notas dentro de los tribunales. También puedo tocar en versiones de acordes. Entonces vamos a deshacernos de este índice por ahora. Cambiemos esto a un acorde menor. Y puedo decir, vale, bueno, tócame la primera inversión de esto. Juega la segunda inversión. La tercera inversión. Ahíestamos. Entonces muchas cosas realmente útiles, funciones realmente útiles incorporadas en los tribunales. También podría tocar el acorde como un, como un arpegio. Así que vamos a quitar esto para mantenerlo agradable y sencillo. Pero en lugar de decir tocar el acorde, puedo decir tocar, tocar patrón de cable. Por defecto por patrón de jugada va a dejar un resto de un tiempo entre cada nota. Pero si quiero cambiar la velocidad del arpegio, puedo decir Botón Play, marea. Y solo necesito poner el final aquí para que digamos cinco, así que un cuarto de latido entre cada nota. Una cosa más que puedo hacer con el patrón de juego Simon es que en realidad puedo darle diferentes valores para el tiempo que quiero a las notas respiratorias. Lo que esto va a hacer es que va a alternar entre los dos. Por lo que se va a sostener para 0.25 para la primera nota, 2.5th para el medio tiempo para la segunda nota, cuarto para la tercera mitad de la cuarta. Y nosotros sólo, sólo voltearemos entre estos dos mientras subo el arpegio. Y se puede ver eso reflejado en el bitácora de aquí a la derecha. También tenemos el concepto de grados de acordes. Entonces, si has hecho mucha teoría musical, sabrás de los grados básicos. Por lo que a veces cuando hablamos de causa hablamos de la progresión de acordes común. Entonces hablamos de tal vez 156 por ser una progresión de acordes común. Estos en realidad están integrados en Sonic Pi. Solo escribamos un pequeño ejemplo sólo para demostrar esto. Así que vamos a establecer el BPM para que sea un poco, un poco más alto. Vamos a usar un piano. Y luego vamos a crear una variable que va a almacenar la agresión. Entonces nuestra progresión de acordes va a ser un anillo. Ahora, no te preocupes por este anillo de palabras por ahora. Lo cubriremos más adelante. Apenas por ahora, sólo teclea la palabra Reagan. Te explicaré exactamente lo que esto hace más adelante. Pero básicamente es una lista que da vueltas y vueltas. Entonces solo escribimos estos que son una especie de símbolos comunes, ¿verdad? Por lo que usamos números romanos para nuestras cuatro progresiones de acordes cuando hablamos de teoría musical. Y luego crearemos un bucle y daremos la vuelta ocho veces. Dentro del bucle, vamos a necesitar recordar para terminar. Recordemos poner nuestro sueño también. Entonces, entonces aquí vamos a, vamos a tocar el grado de acorde. Entonces voy a explicar esto como yo, como mecanografié. Entonces vamos a decir grado de acorde, que es una función incorporada muy parecida a acorde u otros que vamos a ver en un minuto. ¿ Voy a decir tocar, tocar, tocar el siguiente valor en nuestra progresión de acordes. Por lo que este tick lo volverá a ver más adelante. Pero básicamente, sólo para, sólo muy rápido, un anillo es básicamente como una lista, pero en lugar de irse del final y no conseguir nada, si consigue el único va de vuelta al inicio. Entonces daremos vueltas y vueltas y vueltas. Y tick es sólo una forma de contarlo, decir, tráeme lo siguiente de la lista o del ring. Vamos a estar en S3. Esta va a ser la clave en la que estamos. Queremos estar en clave mayor. Puedo deletrear mayor. Y entonces sólo vamos a agregar una opción más para allá. Por lo que configuraremos el release remember del sobre ADSR. Entonces si levantamos la vista antes, fijaremos el lanzamiento de cuatro. Entonces lo que esto debería hacer es que debería, usar el piano de sintetizador va a tocar. Cada nota se va a liberar más de cuatro beats, razón por la cual tenemos el sueño por aquí. Sólo vamos a jugar en una escala C3 mayor, o tecla C3 mayor. Vamos a tocar el primer acorde, el sexto acorde, el segundo, y después el quinto. 35. Escalas: De acuerdo, así que a escala. Por lo que algunas escalas están integradas en Sonic Pi. En realidad, bastantes básculas están construidas en psi prime. Esoya lo verás. Entonces comencemos con un tiempo de patrón de juego. Entonces vamos a querer tocar cada nota de la escala. Entonces vamos a tocar una báscula. Y entonces ahí dentro tenemos que decir cuál va a ser la raíz de nuestra escala. Entonces vamos a ver un C3, y luego vamos a elegir de esta ciertamente larga lista de escalas. Entonces hay una cantidad enorme ahí dentro. Podemos ver todas las fuentes como escalas de blues. Hay todo tipo de escalas de músicas del mundo diferentes dentro de aquí, o escalas métricas. Hay modos de ver. Eoliano. Ahí están las escamas azules otra vez. Chicas chinas, escamas crotchet, diatónicas, disminuidas, modo dorian, egipcias. Hay una, simplemente hay mucho aquí, así que definitivamente vale la pena tener una división a través de esta lista. Podemos ver aquí abajo tenemos todo tipo de cosas. Entonces vamos a elegir uno común aquí. Por lo que aquí elegiremos el pentatónico mayor. Entonces podemos seleccionar cuántas octavas queremos en nuestra escala. Haz eso solo con un num octavas. Entonces decimos num octavas y diremos que queremos tres oxígenos con gran escala. Voy a decir que estamos jugando tiempo de patente para recordar así en decir cuánto tiempo queremos descansar entre cada nota. Entonces eso es cero 0.5. Debo configurar el, el lanzamiento de las notas que vamos a tocar. Pero establece que agradable y corto a cero 0.25, sólo para que si no hacemos eso, entonces todos los nodos se toparán entre sí. No estuvimos aquí. Se está tocando una bonita escala crujiente, así que juguemos eso. De acuerdo, así que esa es la báscula. Entonces hay un montón de incorporados. Ahora, solo comentemos esto. Tevoy a mostrar una cosa. Entonces hay comando dentro Sonic Pi es un comando Ruby, pero, pero luego Sonic Pi llamó puts and puts nos va a permitir corregir lo que queremos en el registro. Entonces por ejemplo, si fuera a decir culos, Sonic Pi es genial. Cuando ejecuto esto, va a dar salida eso al registro. Ahí vamos. Para que podamos ver ahí dentro. Ahora, esto puede ser puntos muy útiles durante tus programas solo para dar salida a algunos es un OK para que sepas dónde estás. Entonces ya sabes, cuando estás dentro de un bucle o cuando estás fuera de tu parte particular en tu programa. Hay algunas otras cosas que puedes hacer con put, por lo que no pudiste obtener las salidas de algunas funciones integradas. Entonces, por ejemplo, si quería decir ronda de salida, esto va a salir al log de valor entre nada y uno. Si creo una variable, llamémoslo mensaje es igual a hola. Y luego empiezo o pone mi mensaje. Ahora estamos, por lo que se agarra el valor de esa variable y una salida que en el registro. El motivo por el que llegué aquí de todos modos, me he ido a un poco de búsqueda lateral. Pero la razón por la que puse esto aquí es que en realidad puedo sacar todos los nombres de las escalas al registro haciendo, haciendo esto. Por lo que puedo decir escala de salida NEEPS. Pondremos nombres de escala. Ahí estamos. Entonces lo que terminará con en el registro es una lista de todos los nombres de las escalas. Y se puede ver que hay montones y montones y montones de ellos. Probablemente estoy atravesando un poco demasiado rápido, pero si no lo hiciera, estaríamos desplazándonos por días. Por lo que se puede ver ahí dentro. Por lo que definitivamente echa un vistazo a través de esa lista. Puedes usar el código que tenemos aquí. Simplemente descomente esto de aquí. Vamos eso por ahora. Usa este tipo de CO2. Simplemente, solo escuchan, escuchan algunas de las escalas, quizás toquen algunas de ellas con diferente sentido para ver qué cosas interesantes se pueden levantar. Es decir que así una cosa que podríamos hacer con las escalas, por ejemplo, es que podríamos jugar al azar algunas cosas arriba de la escala. Entonces echemos un vistazo rápido ahí. Entonces podríamos decir, tomemos las tres octavas pentatónicas mayores C3 y nos llevará a todos exactamente igual. Pero optemos por no jugar todo el patrón, sino solo por elegir algo de eso. Entonces necesitaremos simplemente cambiar esto porque ya no estamos jugando una patente cronometrada. Hagámoslo bonito y sencillo. Hagamos eso. Y luego dormimos medio latido. Entonces pongamos todo en un bucle y ejecutemos eso. Nuevamente. Si has escrito este código en tu computadora y juegas esto, reproducirá exactamente la misma secuencia de nodos que obtengo. Esto se debe a que el lado de la aleatorización, Sonic Pi es una especie de pseudo aleatorización. Para que estemos seguros de que siempre jugamos igual cada vez si queremos. Si quiero cambiar eso, puedo, puedo cambiar la, la semilla de aleatorización. Entonces elige la semilla aleatoria, solo puedo hacer que 606. Y esta vez vamos a conseguir una diferente, puedo hacerla 99 formas diferentes. Pero de nuevo, mientras que esas semillas aleatorias sigan siendo las mismas, será la misma melodía cada vez. 36. Anillos: Mencionamos trae antes. Echemosun vistazo a los anillos. Entonces traigo es una forma de asegurar que no nos quedemos fuera del final de la lista. Entonces vamos a demostrar eso. Entonces vamos, usemos el terreno puts. Podemos enviar cosas al registro y verlo ahora. Entonces digamos que si creo una lista, entonces 606467, esta es la que usamos antes. Creo que quiero salida al, al, al registro el ítem número uno, así que 01. Por lo que esto debería dar salida al número de registro 64. Ahí estamos. Por lo que podemos ver el número 64 de salida al registro como hubiéramos esperado. Pero, ¿qué pasa si solicito el Artículo número nueve de esta lista? Ya vemos que me dieron nil. Y la razón de eso es que sólo hay tres artículos, entonces ítem 0, ítem uno, ítem dos. Entonces nueve está fuera de rango, no existe, no existe dentro de esa lista. Entonces me dice que es nula. Ahora Sonic Pi, cuando usas el comando play, en realidad maneja esto muy bien y te da un descanso en lugar de arrojar un error. Pero podemos decir que esto podría atraparnos fácilmente. Entonces por ejemplo, vamos, pongamos esto en un nueve veces. ¿ Vamos a usar ese atajo otra vez para sacar el contador y tirar, bajar esto hasta aquí. Entonces lo que estoy esperando ver aquí es que salga 60 en la primera vuelta 64, después 67, y luego seis Nils. Y ahí estamos. Entonces 606467 y luego un montón de clavos. Entonces, ¿cómo podríamos hacerlo? Para que cuando 606467 y luego fondo, y se pueda ver que esto es, esto podría ser algo realmente útil ya creamos una selección de notas que queríamos. Ahora queremos simplemente rodear y redondear esa selección de notas en una secuencia corta. Bueno, eso lo podemos hacer haciendo de esta lista un anillo. Y hay un par de maneras en que podemos hacer esto. Podríamos decir, podríamos poner anillo de punto después de él. Y lo que traigo es que básicamente es lo mismo que la lista. Pero cuando llega al final, cuando pides el artículo fuera del lado derecho de la lista, retrocede y te trae el primero. Por lo que sólo da vueltas y vueltas y vueltas. Entonces lo que estoy esperando ver aquí, 606467 salida tres veces. Y ahí estamos. De manera que podemos ver que ha pasado por la lista y luego de fondo y luego de fondo otra vez. Y sólo va a seguir y seguir y seguir para siempre, vueltas y vueltas alrededor de la lista. Entonces eso es realmente útil. Otra forma en que podrías escribir esto es, es simplemente podrías crear la lista de una manera ligeramente diferente. Entonces, en lugar de usar corchetes, usa paréntesis y solo di que esto es un anillo. Esto es exactamente equivalente al código que teníamos antes, y lo ejecutará y se ejecutará exactamente igual. Es solo una sintaxis diferente si quieres una forma diferente de escribir, por lo que puedes usar cualquiera, que prefieras. De acuerdo, así que vamos a, sólo para demostrar un punto, vamos a jugar a eso en vez de ponerlo y luego vamos a poner imágenes dormidas los dos entre ellos. Yeso lo somos. Entonces podemos ver que ese cerebro acaba de dar la vuelta, alrededor, alrededor de tres veces. Si no fuera un anillo, habríamos terminado con esto. Hubiera intentado jugar de esta lista. No tocamos las tres notas y luego, y luego tuvimos seis descansos. Ahí podemos ver la receta y salida outlet. Entonces haciendo ese anillo ya sea usando el formato que teníamos antes o diciendo anillo de punto. Entonces en realidad las escalas y los acordes son ambos anillos. Por lo que antes miramos escalas y acordes. Ambos se definen como anillo. Por lo que sólo se puede ir redondo y redondo y redondo, tanto escalas como acordes. Y es por esto que hicimos que la progresión de acordes en la sesión anterior fuera un anillo, porque queríamos dar la vuelta a esa progresión de acordes dos veces. Para que pudiéramos hacer lo mismo que lo hemos hecho aquí. Entonces podríamos decir lo mismo que hicimos con la báscula. Entonces en lugar de hacer esto, podríamos decir jugar modelado o jugar a Pat y cronometrado. Ambas cosas son trabajo en un anillo. Y entonces podemos otra vez no, 0.25225 para decirle cuánto tiempo resbalar entre cada uno. Y sólo, sólo para reforzar esto, esto es exactamente equivalente a crear un anillo de arte en, de esta manera, sólo con el teclado o el frente. De verdad depende de ti cuál prefieres. 37. Funciones de anillo: De acuerdo, Entonces hay una serie de cosas que podemos hacer tutoría. Así que vamos, vamos a hacer nuestro anillo un poco más largo para poder mostrarte algunas de estas cosas. Hay algunas funciones adicionales que podemos usar. Entonces 606264 y luego iremos 656769717072. Y eso nos debe dar esto. Ese pitido se está poniendo un poco molesto. Así que escojamos un cambio de lista A. Entonces usemos un piano. De acuerdo, Entonces hay una serie de cosas que podemos hacer con un anillo. Hay un montón de funciones integradas que pueden ser realmente útiles musicalmente. Y sólo las agregamos en el ring. Entonces podemos decir tiempo de patrón de juego, usar este anillo y decimos usar este anillo, pero dot reverse. Esto va a jugar el ring al revés. Podríamos barajar. Entonces esto va a tocar cada nota dentro del ring, pero las va a jugar en un orden aleatorio. Pero sería el mismo orden cada vez porque nosotros, tenemos la pseudo aleatorización dentro de Sonic Pi. Nuevamente, si quiero cambiar ese orden, puedo establecer la semilla de aleatorización sea algo diferente. Yo sólo puedo tocar los primeros cinco elementos. Por lo que puedo decir sólo tomar los primeros cinco elementos y de este ring y jugar esos. Podría decir que se me cayeron los primeros cinco elementos. Cuando digo cayeron los primeros cinco elementos, significa no jugar estos y sólo jugar, sólo jugar esto. Hay otras cosas que me vendría bien estirar. Entonces esto va a repetir elementos que estirar puede ser lo que yo quiera que sea. Entonces digamos tres esta vez. Si quiero repetir todo el anillo, puedo decir repetir y decir, repitamos este dos veces. Y otra vez, puedo hacer de este cualquier número que quiera aquí dentro. Puedo usar Mirror. El espejo es interesante. Espejova a jugar todo el camino hasta el ring, o en nuestro caso es una escala, pero el anillo podría ser cualquier cosa. No tiene que estar en este orden, pero lo he hecho una escala ascendente sólo para que quede bonito y claro lo que está pasando. Entonces va a jugar todo el camino a través del ring y luego va a jugar todo el camino de vuelta a través del ring a la inversa. Ahora notarás que jugó 60 sesenta y dos, sesenta y cuatro, sesenta y seis, sesenta y siete sesenta y nueve, setenta y uno, setenta y dos. Y luego volvió a tocar 72 y setenta y uno sesenta y nueve, sesenta y siete. Entonces si no quiero lo cual es bastante común, no quiero tocar este dos veces. Yo sólo quiero ir todo el camino arriba y luego derecho hacia abajo, pero no jugar esto el medio o el final depende qué manera lo mires dos veces. Puedo usar la palabra reflejar. Puedo usar la palabra reflejar. Esto sólo va a jugar el 72 una vez. ¿ De acuerdo? Por lo que hay todo un número de funciones. Estos son los más comunes. Y se puede cavar por el muelle, a través de los muelles de abajo aquí para buscar el resto. Pero una cosa que puedes hacer es encadenar estas cosas para poder decir, vale, entonces voy a, voy a colocar una a la inversa. Pero entonces quiero reflejar eso. Entonces voy a reflexionar, reflejar el anillo invertido. Entonces está jugando desde el final todo el camino hacia abajo, todo el camino de nuevo hacia arriba. Y quiero repetirlo tres veces. Nosotros lo somos. Por lo que de nuevo, un anillo es increíblemente útil. estructura de datos es la estructura de datos final que vamos a ver dentro de Sonic Pi por ahora, es exactamente lo mismo que un menos de lo que podemos acceder a las cosas a través de índices, etc. Laestructura de datos es la estructura de datos final que vamos a ver dentro de Sonic Pi por ahora,es exactamente lo mismo que un menos de lo que podemos acceder a las cosas a través de índices, etc. simplemente da vueltas y vueltas y vueltas para que nunca podamos huir del final de un anillo. De ahí el nombre, un montón de funciones realmente útiles para ello. Y estoy seguro que se puede ver que hay un montón de aplicaciones musicales a las funciones que podemos aplicar dos anillos. Por lo que estas son funciones podemos aplicar dos anillos. En la siguiente sección, vamos a ver las funciones que podemos crear para nosotros mismos. 38. Funciones personalizadas: Entonces ahora vamos a mirar las funciones, que es otra forma de organizar nuestro código para mantenerlo agradable y legible y mantener trozos de él reutilizables. Ahora, básicamente, una función es una forma de organizar una pieza de código y darle un nombre, pero que Coburn realmente ejecute hasta que se lo pidamos. Así que vamos a sumergirnos directamente y ver cómo hacer esto. Así que vamos al editor de código aquí, y me estoy hartando un poco de ese ruido de pitido. Así que usemos un sintetizador. Entonces usaremos las ganancias en. Y empezaremos por crear una función. Entonces lo que vamos a hacer es crear dos funciones, una llamada verso y otra llamada coro. Lo que nos van a hacer algunos sin etiquetar es definir aversión y por supuesto, por nuestra canción, y luego podremos llamarla . De esa manera. Podremos organizar nuestra canción la manera que queremos que haga sin tener que repetir el mismo bit de código muchas veces para cada primero, por ejemplo. Entonces empecemos por definir a la persona. Entonces, para definir una función, usamos la palabra clave definida. Entonces necesitamos darle un nombre a nuestra función. Entonces en nuestro caso, lo vamos a llamar el verso. Terminamos con el do. Y porque lo vamos a hacer, debemos tener un fin. Entonces ahí estamos. Ahora bien, cualquier cosa que metamos dentro este bloque no se va a ejecutar cuando ejecutemos el código. Cuando nosotros, cuando hacemos clic en el botón Ejecutar hasta que llamemos a esa pieza de código en particular. Así que vamos a mantener el reverso, agradable y simple el código agradable y simple dentro de nuestra función. Simplemente pasaremos por un patrón cronometrado. Entonces digamos que el patrón de juego cronometrado. Y vamos a crear una lista en su interior son menos que. Vamos a grabar. Nuestro código será un D4. Y este va a ser un acorde mayor. Y a eso le seguirá un, otro acorde. Y esta vez haremos un, un acorde de C. Y este será un acorde mayor. Y entonces por fin, tendremos un acorde de G. ¿ De acuerdo? ¿Voy a jugar cada uno de estos cuartos o es un patrón cronometrado? Por lo que hemos usado el tiempo de patrón de juego. Por lo que necesitamos decir qué Sonic Pi, cuánto tiempo hay que dormir entre cada uno, cada parte del patrón. Entonces vamos a dormir por dos latidos. Si ejecuto este código ahora, no pasará nada. Todo esto sucedió y podemos mirar por encima y el log aquí es que hemos definido la función primero, pero en realidad nunca le hemos pedido que ejecute el código dentro de ahí. Entonces para ejecutarlo, o simplemente necesitamos hacer es teclear la palabra verso. Y eso es diciéndole, por favor ejecute esta función llamada verso aquí. Y esto es exactamente de la misma manera que las otras funciones que están incorporadas en Sonic Pi definen cosas como play in play pattern y play pattern, diminutas, etc. Son solo, son solo funciones que somos pidiéndole que le pida que ejecute. Entonces ahora cuando presiono play o corro, Aquí estamos. Por lo que define el, el verso aquí. Y entonces cuando llame verso, ejecutará el código dentro de lado. Para que pueda definir otro. Entonces definamos uno llamado estribillo final. Y ahí dentro sólo tocaremos otro patrón, pero tocaremos otro diferente. Tan mismo otra vez, pero lo usaremos en diferentes cortes. Entonces dentro de nuestro núcleo tendremos un A4, un acorde mayor, seguido de una C, otra vez un mayor, y luego un acorde de re mayor. Y vamos a mantener el mismo, el mismo sueño entre cada llamada para mantener el mismo tempo. Entonces ahora tenemos un coro para que pudiéramos llamarlo, en lugar de llamar verso, podríamos llamar a nuestro coro. De acuerdo, entonces ahora podemos construir una canción simplemente llamando a nuestra función. Entonces tal vez tengamos reversión, seguido de otro verso y coro y luego un verso final. Todo un libro sencillo, pero construcción de canción común. El primero contra el segundo verso. Ahora coro. Y la final. Ahora para reordenar o resolver, sólo podemos cambiar el orden en que llamamos a las funciones. Y para cambiar el rumbo, tal vez pensamos que A4 está un poco alto. Entonces cambiemos eso a un A3. Y ahora cuando lo toco, y de nuevo, podemos, podemos reordenar esto para poder cortarle esto. Tal vez coro verso y luego dos versus. Ahora vamos a conseguir un coro. Nuestro rumbo está cambiado. Despuésterminar con para seguir adelante y hacer lo mismo y crear un verso y el coro. Y lo que podrías hacer también es crear una línea media o un pre-coro u otra función. Y usa esto para construir una canción corta como he hecho aquí. 39. Parámetros de la función: Ahora también podemos pasar parámetros a nuestras funciones y lo hacemos así, así que en aversión. Entonces aquí tenemos un verso y hemos repetido dos veces. Pero otra forma de hacerlo podría ser decir, ok, Toca me diverso dos veces o jugar con reversa una vez. Entonces puedo ir al verso aquí y decir, muy similar a cómo lo hicimos con bucles y contadores. Podemos justo dentro de las tuberías aquí, sólo podemos dar un nombre de variable para que podamos decir repeticiones. Y así esta variable se pasará a la función cuando la llamemos, y veremos cómo hacerlo en un segundo. Es muy sencillo. Y entonces podemos usar esa variable dentro de la función. Por lo que podemos decir repite dot times du. Entonces podemos terminar aquí. Entonces se va a repetir el número de veces que pasemos a esta función. Entonces aquí adentro podemos decir que sólo jugamos esta primera vez. Y entonces aquí, en lugar de tener un segundo verso, podemos decir, vale, ahora quiero que toquen el primero dos veces, dos veces. Genial. Entonces una última cosa que podemos hacer es dar un valor por defecto. Entonces por ejemplo, si fuera a olvidar llamar verso o pasar uno a esto, decir sólo repita esto primero. Una vez. Lo siguiente va a suceder, podemos ver que tenemos el número equivocado de argumentos. Los argumentos son lo que tenemos, lo que tenemos aquí. Entonces estos son, estos son, estos son los argumentos que pasamos a la función. Podemos ver aquí que esperábamos que se pasara un argumento cualquiera de los dos números de repeticiones, pero en realidad obtuvimos 0 porque se nos olvidó pasar el número de repeticiones de la función. Una forma de arreglarlo es simplemente ir y volver a meter ese número. Otra forma es decir, bueno, si no paso nada, entonces sólo tócala una vez. Y podemos hacerlo estableciendo un parámetro predeterminado, y es muy sencillo de hacer. Entonces podemos decir donde declaramos el parámetro aquí arriba para la función. Sólo podemos decir igual a uno. Bueno eso va a hacer es decir, si no paso ningún parámetro, que simplemente asignar el valor uno a la variable de repeticiones. Y si hago parcialmente un valor, entonces use ese valor. Entonces volvamos a nuestra configuración original, donde teníamos dos versos, un coro y luego un verso. Pero no vamos a pasar un parámetro esta vez, y sólo vamos a confiar en este parámetro predeterminado esté aquí. Ahí vamos. Entonces obviamente podríamos hacer lo mismo a nuestro curso si quisiéramos. Podríamos llamarlo repite, podemos llamarlo tiempos, podemos llamarlo como queramos realmente. Nuevamente, declararemos un valor predeterminado aquí. Y luego otra vez, diremos repetimos tiempos de parada, hazlo. Y luego necesitaremos un final para ese bucle. Ahí vamos. Así es como definimos una función y asignamos parámetros a esa función o declaramos parámetros para esa función, los analiza y cómo establecemos los parámetros por defecto para lo que queremos hacer si no pasar un parámetro o un valor para un parámetro en particular. Por lo que puedes ver aquí, hay muchos, muchos usos. Este ejemplo muy simple donde hay muchos, muchos usos para funciones de nuestro código tiene sólo una forma de organizar nuestro código, facilitando el cambio. No necesitamos hacer el cambio en un solo lugar. Por ejemplo, si quiero cambiar el verso y en lugar de una C, queremos poner una a, simplemente hacer ese cambio. Y cada vez que llame a la primera función, ese cambio se verá reflejado. Así que una gran manera de hacer que tu código realmente agradable y legible. Puedo ver fácilmente que este es el verso y el coro. Puedo ver fácilmente la estructura de mi canción. Como dije, este es un ejemplo sencillo de usar funciones, pero estoy seguro de que se pueden imaginar muchas otras formas de hacerlo. Así que tenga una oportunidad en la reorganización de su código y el uso funciones para hacerlo realmente agradable y limpio y legible y reutilizable. Entonces hemos estado haciendo mucha programación. Entonces en la siguiente sección, vamos a tomar un pequeño descanso y vamos a volver a algún diseño de sonido. 40. Efectos en Sonic Pi: Entonces además de poder usar sintetizados y samples dentro de Sonic Pi, también hay un montón de efectos incorporados. Y estos son muy parecidos los efectos que aplicarías a una pista o dos e instrumentos en tu DAW. O si prefieres tocar instrumentos analógicos, quizá usando efectos de guitarra, pedales, ese tipo de cosas. Pero puedes ver que hay más de 40 efectos diferentes integrados en Sonic Pi. Entonces echemos un vistazo a cómo los usamos. Demostrar estos efectos. Vamos a usar la muestra que usamos antes que he conseguido mi escritorio. Entonces recordémonos a nosotros mismos cómo hacer eso. Entonces vamos a jugar la muestra, que está en los usuarios. Steve. Está en mi escritorio y se llama b21 dot. Vamos a recordarnos a nosotros mismos a cómo suena eso. Entonces, para aplicar efectos a esto, todo lo que necesitamos hacer es envolverlo con un ancho de bloques FX. Entonces vamos al principio aquí, decimos con efectos de subrayado, y luego le damos el nombre de los efectos incorporados que queremos usar. Puedes ver todos los efectos aquí abajo en la parte inferior. Y puedes ver aquí la misma lista de efectos que te mostré antes. Entonces sólo tenemos que darle el nombre. En este caso, vamos a utilizar un río. Entonces podemos decir con efectos codón, reverberación, ¿necesitamos acabar con ese bloque? Y así cuando lo toco ahora estás aquí, eso es un efecto de reverberación se ha aplicado a esa muestra. Por lo que no necesita ser una muestra. Podría ser un sintetizador, podría ser un simple comando plano. Pero esta muestra, particularmente, porque es un drumbeat, luce los efectos particularmente bien, son particularmente fáciles de escuchar. Pero podríamos cambiar esto afecta para que este efecto sea lo que queramos. Para que podamos mirar hacia abajo a través de la lista y encontrar algo que podríamos querer aplicar un flanger, por ejemplo. Entonces cambiemos la reverberación para que sea un flanger. O podríamos cambiarlo para que sea un efecto de distorsión para un Sam más sucio. 41. Opciones FX: Entonces como con muchos de los artículos que encontramos dentro de Sonic Pi, hay una serie de parámetros que podemos aplicar a los efectos con el fin de personalizar el sol que obtenemos. Entonces comencemos con agregar un efecto de eco. Esto es como un retraso. Entonces diremos que el ancho afecta al eco. Hacer. Terminaremos ese bloque. Y luego para mantener esto bonito y sencillo, vamos, solo usemos un lugar sencillo. Entonces vamos, tocaremos una nota, un 55 dormirá para dos. A lo mejor usemos una muestra. Nos vendría bien la campana de vaca. Dormiremos de nuevo, y después tocaremos una nota más. Entonces vamos a jugar, no sé, 67. Entonces escuchemos cómo suena eso. De acuerdo, entonces eso es lo que aplicó un eco a todas esas notas y muestras. Pero en realidad podemos cambiar algunos de los parámetros. Y encontrarás que mientras miramos aquí abajo, podemos, en esta lista, verás que cada Efectos tiene su propio conjunto de diferentes parámetros que puedes aplicar. Entonces solo busquemos aquí el eco. Vale, y podemos ver aquí que tenemos cosas como la fase, la amplitud, y mezclar la decadencia. Entonces si miramos, miremos hacia abajo esta lista y podemos decir, podemos ver que la fase establece el tiempo y ecos, o el signo entre ecos en beats. Entonces cambiemos eso. Entonces todo lo que necesitamos hacer lo mismo cualquier otro parámetro que hemos estado pasando por ahí. Entonces golpeamos coma, entonces decimos, vamos a establecer la fase igual a, y la pondremos a medio tiempo. Escuchemos eso. Yahí estamos. Por lo que se repite un mucho más lento en el eco. Ahí. 42. Efectos de encadenación: Ahora también podemos anidar efectos. Entonces cuando anidemos afecta, todo lo que vamos a hacer es muy parecido a bucles de anidación. Nosotros sólo vamos a poner ese bloque dentro de otro bloque. Entonces vamos a agregar una reverberación y te mostraré cómo hacerlo para que podamos agregar otro efecto en el exterior de este. Por lo que vamos a añadir una reverberación esta vez. Necesitaré otro extremo por fuera. Podemos ver que tenemos este bloque afecta, que es el eco que acabamos de crear. Y ahora hemos envuelto eso dentro de una reverberación. Y debes pensar en el audio que fluye de adentro hacia afuera. Entonces lo primero que va a hacer es aplicar el efecto eco, los efectos de retardo el efecto eco. Y luego se va a aplicar todo eso al bloque exterior. Por lo que se va a agregar una reverberación al eco. Primero se aplicará el eco y luego la reverberación. Esto es muy parecido a la forma en que encadenamos pedales de efectos o, o unidades de efectos juntos en audio. Así que puedes usar un anidamiento muy, muy profundo para algunos sonidos realmente, muy locos o innovadores. No obstante, aplicar los efectos utiliza bastantes recursos del sistema de tu computadora. Entonces solo una pequeña advertencia si aplicas demasiados hechos llegaste temprano o es posible que notes algunos problemas de rendimiento. Pero a espina dorsal. Entonces vamos a correr esto y escucharemos ahora que tenemos un eco con una Reverb encima. 43. Toma el control: Por lo que en ocasiones, tal vez queramos poder controlar una sentencia ya ejecutada. Para ello, hay una función integrada en Sonic Pi llamada control. Para usar eso, lo primero que vamos a hacer es capturar la salida del enviado en una variable local. Así que vamos a crear una variable llamada mi sintetizador. Crearemos una variable llamada miosina. En eso vamos a capturar la salida de un comando play tocaremos una nota midi 40, y establecdremos el release en cinco. Esta nota seguirá reproduciéndose, pero la salida de la misma también será capturada en esa variable de mi sintetizador. Entonces podemos dormir un poco, tomar un pequeño descanso, y luego podemos usar la función de control para cambiar las cosas sobre eso sintetizado para poder decir mi pecado. Podríamos entonces establecer un montón de valores. En este caso, vamos a cambiar las notas y vamos a decir, ok, ahora toca un 45, dormirá de nuevo, controlará nuevamente el sintetizador. Cambiaremos la nota para que sea un 47 esta vez. Entonces nos tomaremos un sueño más largo. Y por último, volveremos a cambiar la nota a un 40. Ahora bien, esto es, esta es una función particularmente útil para usar porque si recuerdas, establecemos pan y amplitud y cortes y cosas así antes o cuando pusimos eso, dijimos que solo se aplica a la función actual. Entonces cuando hago eso, si tuviera que hacer una jugada 14, establecer el panel el camino a la izquierda, necesitaría establecer ese patrón para cada nota que tocara. Ahora puedo, puedo crear mi tienda de sentido. Se, crea este lanzamiento, por ejemplo, aquí. Puedo almacenar eso en la salida por centro. Ahora puedo controlar mi sintetizador. No necesito definir el lanzamiento cada vez. Y se pueden imaginar si tuviera un sobre complejo y dije muchos valores ahí, significa que solo necesito establecer eso en la primera nota, la primera vez que se usa That's int, capture la salida de eso en una variable, y luego solo puedo hacer los ajustes que me parezca probablemente solo para cambiar las notas en lugar de tener que configurar todos esos parámetros cada vez. Entonces escuchemos eso. Entonces la razón por la esto es particularmente útil es que a principios de Roma, cuando miramos al mando de juego, hablábamos de libras de amplitud. También miramos filtros con cortes y resonancias, etcétera. Y dijimos eso, que esos parámetros sólo se aplicarán al comando play particular que se haya ejecutado. Entonces si quisiera todo pan a la izquierda y quisiera usar el comando play, por ejemplo, necesitaría agregar un pan menos uno a cada nota que se tocara. Mientras que ahora puedo establecer eso en el original, en la primera nota, capturar que la salida del sintetizador en una variable, y luego puedo usar eso en todo. Entonces no me refiero a poner un sobre en cada una de las noches. Si quiero mantener el sobre igual, la potencia y el corte, la, la resonancia del filtro, etcétera. Entonces demostrémoslo un poco. Usemos una frase. Entonces sintetizador usará esta base base y tenemos que hacer, y luego terminaremos este bloque de sintetizador. Así que ahora va a hacer exactamente lo mismo, pero usará este sintetizador base base. Para que pueda agregar mis parámetros aquí. Entonces podría decir el, por ejemplo, puedo establecer los patrones o menos uno. Y lo que esto va a hacer es más que tener que tener potenciado menos uno después de cada sola jugada Command, ahora lo puse aquí. Se capta dentro de esta variable y los parámetros que he aplicado aquí, puedo controlar a lo largo o aplicado a lo largo. Ahora hay unas ligeras restricciones a esto. Entonces cosas como AMP para amplitud con el volumen, el corte, pan, cosas así se pueden cambiar una vez que una sintasa comenzó. Pero no se pueden cambiar los parámetros de envolvente ADSR. Entonces no puedo cambiar el lanzamiento una vez a, una vez que comenzó una sintasa. Pero puedo controlar otros artículos. Así como la sartén. Podría aquí dentro, podría decir controlar mi sintetizador y luego puedo poner la nota de 40. Pero en la final, podría pan todo el camino hacia la derecha. Ya puedes volver a ver, esta es otra forma de usar Sonic Pi para tomar atajos para evitar que tengas que repetirte todo el tiempo y realmente controlar la reproducción de síntesis. Así que ten un juego con las opciones ahí dentro. Y creo que lo encontrarás. Como dije, es una función bastante avanzada, pero creo que encontrarás que es muy útil. 44. Diapositiva de notas de control: Otra cosa que tenemos cuando usamos la función de control ya que podemos usar una cosa llamada nota slide. Y esto es algo así como un deslizamiento o reportarlos en efecto. Por lo que podemos agregar esto cuando declaramos las variables originales. Entonces vamos, vamos a agregarlo aquí. Entonces solo es cuestión de agregar otro parámetro u otra opción. Podemos decir diapositiva de subrayado de nota. Y nos fijamos uno. Por lo que de nuevo, todo en Sonic Pi cuando preferimos el tiempo, Es el número de beats. Entonces en este caso va a tomar una diapositiva de tiempos de un nodo al siguiente. Entonces escuchemos cómo suena eso. Necesariamente. Nuevamente, puedo hacer esto realmente largo o mucho más corto. Podemos escuchar un leve in, mucho más rápido entre notas. Ahora. 45. Efectos de control: Además de controlar el sentido, también puedo controlar los efectos. Entonces vamos, probemos eso. Entonces vamos a aplicar un efecto. Entonces exactamente como lo hacíamos antes. Apliquemos este es bastante bueno. Aplicaremos el efecto bamboleo. Aquí. Necesitamos usar los operadores de tubería para proporcionar un nombre de variable. Es así como funciona este control con efectos ligeramente diferentes a la forma en que funciona con sintetizadores. Entonces solo le damos una variable. En realidad no importa cómo llamen sus variables. Yo sólo voy a llamarlo f x Así que tendré un n bloque también, o terminaremos el bloque también. Entonces dentro de ahí usaremos un sintetizador. Por lo que diremos con sintetizador usaremos las ganancias n para esa. Entonces solo agregaremos un poco de código dentro de esto con el bloque de sintetizador. El bloque funciona exactamente de la misma manera, realmente es el enorme sintetizador que usamos en comando que hemos usado anteriormente. Me enviaste tienden a colocar cerca de la parte superior de nuestro código y va a usar eso mismo en todo con sintetizador. Sólo dice, vale, solo usa este sintetizador entre el do y el final de este bloque. Entonces es sólo una forma de constreñir eso realmente. Entonces digamos aquí dentro jugará un 40 con un lanzamiento de cuatro. Entonces dormiremos por cuatro, y entonces controlaremos ese efecto. Entonces lo que vamos a hacer, de hecho, vamos a jugar eso antes de empezar a controlar las cosas. Para que puedas escuchar el efecto de bamboleo tal como es por defecto, entonces comenzarás a controlar que afecta mismo, mismo nombre de método. Entonces diremos control. Esta vez necesitamos pasarle esta variable aquí. Entonces esta variable que declaramos en la parte superior. Entonces sabe de qué afectaciones o efectos del que estamos hablando. Esta vez, vamos a establecer la mezcla para no querer. Entonces esta es la cantidad de señal húmeda que se va a emitir. Controlará los efectos sobre ellos, volverá a jugar. Tocaremos una nota diferente con, otra vez con un lanzamiento de cuatro. Por lo que podrás escuchar el cambio en la mezcla de los efectos son cuánto del efecto se emite entre la primera y la segunda nota. Por lo que se puede escuchar que mucho más de la señal seca pasó en la segunda nota que se tocó. También tenemos algunas opciones para efectos deslizantes. Entonces vamos sólo, vamos a quitar esto. En este caso, podemos establecer algunos de los parámetros que se encuentran dentro del efecto de bamboleo. Por lo que de nuevo, abajo en el panel de Ayuda aquí tenemos una lista de toda la lista de todos los efectos. Al dar clic en él, podemos ver todos los parámetros que podemos establecer. Entonces vamos a establecer un par de parámetros. Entonces vamos a establecer la fase, la cara a uno. También podríamos establecer una cosa llamada el tobogán Face. Y eso lo pondremos en seis. Así que dentro de aquí luego vamos, vamos, vamos a tocar nuestro sintetizador sólo hará que dure un poco más para que podamos escuchar el tobogán de toda la cara. Oigamos eso. Ahora. Entonces podemos controlar eso. Entonces podemos decir controlar el efecto mientras se está jugando. Y podemos poner la cara abajo a algo mucho, mucho más corto. De acuerdo, Así que como dije, los efectos son ligeramente diferentes. Tenemos que darle un nombre variable entre las tuberías cuando declaramos el efecto. Pero realmente se puede escuchar ese último ejemplo de que el efecto se está controlando como, como está sucediendo. Entonces solo tocamos una nota, pero el efecto, porque establecemos que el lanzamiento sea mucho tiempo, el efecto en realidad se está cambiando a medida que se toca la nota. 46. Bucles en vivo: De acuerdo, entonces es hora de hablar de actuación en vivo. Entonces hay un particular co-construido que está integrado en Sonic Pi, que realmente permite la actuación en vivo. Vamos, consideremos un bucle que podríamos haber usado en el pasado. Entonces digamos debido y luego terminemos. Entonces ahí adentro, haremos algo sencillo. Entonces vamos, vamos a jugar 60 animales dormir por uno. Vamos, vamos a jugar a eso. Ahora esto va a seguir adelante para siempre. Pero, ¿qué pasa si cambio esta nota? Cambiemos esto a un 80. Sólo te lo estoy recordando. Se puede ver que los bucles continuaron reproduciéndose y solo se agrega otro bucle en la parte superior, en la parte superior, y en la parte superior. Ahora esto no es ideal para la actuación en vivo es lo que realmente queremos hacer cuando estamos actuando en vivo. Y Sonic Pi es poder ir y hacer cambios a nuestro código y tener esos cambios reflejados en vivo. Así que no separan bucles jugando uno encima del otro, sino que en realidad cambian el funcionamiento sin holgado ya que se está ejecutando. Entonces la forma en que lo hacemos es a través del uso de vivaz. Entonces hagámoslo. Así que todo lo que hacemos son construcciones muy similares en el bucle, pero usamos la palabra live underscore loop en su lugar. ¿ Qué tal si hacemos esto? Tenemosque darle un nombre a esto. Así que llamemos a esto foo. Por lo que se hará más claro más adelante por qué necesitamos darles un nombre. Pero ahora cuando dirijo esto, estoy haciendo exactamente lo que esperas, dando vueltas jugando más bien a 60 monjes. Si lo cambio a 60, escucha lo que pasa. Silo cambio a 70. Tan hábilmente, Sonic Pi es capaz de detectar el cambio y hacer ese cambio en vivo como, ya que mi programa se está ejecutando. Ahora esto tiene, esto abre enormes posibilidades para, para actuaciones en vivo. Y te darás cuenta que fue muy inteligente que no hizo el cambio de inmediato. Esperó hasta los puntos correctos. Entonces si cambio esto a dormido por 234234. Ahora si voy hago este cambio y cambia a 55, y lo hago inmediatamente después de una nota. Notarás que espera y sigue durmiendo y en realidad no reinicia el bucle hasta el momento adecuado para ver si puedo darle bien. Por lo que siempre mantendremos ese temporizador interno funcionando y continuaremos el bucle y no haremos ese cambio hasta la próxima vez que se ejecute, en lugar de ejecutar de nuevo inmediatamente. Entonces esto nos da una gran posibilidad. Entonces podríamos, por ejemplo, establecer esto en algo un poco más asequible a menos que duerma nuevo a un período más corto. Para que pudiéramos, podíamos hacer todo tipo de héroes estaban reproduciendo en vivo. Entonces podemos decir que la arena puede cambiar esto a tres o tres. Y podemos hablar tanto código aquí como queramos informarnos y en realidad no se ejecutará hasta que presione Comando R o pulse de nuevo el botón Ejecutar. Desacelerándonos. Lo siento tanto. Perdón. Los hechos. Sólo riba. Cambiar las notas. Las notas. Para que vean lo que ha pasado aquí es que no he añadido otra nota, pero no he estado dormida. Por lo que efectivamente está tocando ambas notas al mismo tiempo. Otro sintetizador. Y ahí vamos. Se puede ver cómo somos capaces de hacer cambios a nuestro código tanto como queramos. Y luego cuando presionamos Comando o Control R o presionamos el botón Ejecutar, entonces la próxima vez que se ejecute ese bucle, entonces los cambios se harán de vida. Por lo que de nuevo, una manera fantástica de un poco poder actuar en vivo. Comienza con una base de código inicial, nuestra pieza inicial de código, y luego ve y haz que tus cambios tengan vida para realmente agregarle un elemento de rendimiento. Por lo que podemos tener múltiples bucles en vivo corriendo al mismo tiempo. Así que recuerda antes, si tuviéramos algo como esto, si tuviéramos un loop hacer escondido aquí, nosotros, vamos, vamos, vamos, vamos a tocar una nota y luego terminar. Entonces podríamos tener otro bucle, que podría tocar una, tocar una campana de vaca. Entonces, ¿qué va a pasar aquí? Esperando cada uno pero dormidos. Lo mismo aquí. Ahora por supuesto, el segundo bucle nunca se colocó realmente. Nunca llegamos a escuchar la campana de la vaca. Y eso es porque este bucle va dando vueltas y vueltas y vueltas para siempre. De modo que la secuencia del flujo del programa nunca llega a bajar al segundo bucle. Animado. Hace esto un poco diferente. Entonces si cambio esto para que sea un bucle en vivo, y podemos, de nuevo, necesitamos llamarlo un nombre. Así que llamemos a este foo, y cambiemos este a un bucle en vivo y llamemos a este. Bar. Ahora veremos que ambos bucles juegan al mismo tiempo. Entonces solo asegurémonos de que podemos escuchar los sonidos. Sólo cambiemos el sueño dentro de aquí. Va a haber un ritmo un poco raro, pero significará que podemos escuchar ambos sonidos tocando al mismo tiempo. Entonces esto significa que podemos tener múltiples bucles ejecutados al mismo tiempo. Y se puede ver que esto sería realmente útil para la actuación en vivo. Entonces donde queremos tener un, tal vez un, un patrón de batería tocar una melodía, tal vez algunos acordes o línea de base. Y podemos tener a todos aquellos jugando de forma independiente dentro de sus propios bucles. Al mismo tiempo. Mantiene el código bonito y limpio, realmente fácil, legible. Y somos capaces de cambiarlo en tiempo real como estamos actuando. 47. Rendimiento en vivo con bucles en vivo: De acuerdo, Así que antes escribimos un secuenciador que se parece un poco a esto. Vamos a recordarnos a nosotros mismos a cómo suena esto. Esto es genial, pero nunca soy tan útil para la actuación en vivo. Entonces, ¿cómo podemos tomar este código y convertirlo en algo que podría ser un poco más útil y luego tal vez agregar en una línea de base o algo así? Entonces echemos un vistazo a lo que podríamos hacer. Entonces, obviamente, necesitamos comenzar con un núcleo animado por mil. Este de Trump. Entonces eso ha cambiado todo. Tenemos que hacer ahora para que pueda entrar aquí y pueda correr esto. Puedo cambiar el patrón en vivo. Entonces sumemos tres patadas al final. Podemos escucharlos. Como parte de nuestro desempeño, cambiamos el contragolpe. Así que vamos a añadir otro bucle en vivo. Esta vez, agregaré una línea de base. Entonces vamos a crear un bucle en vivo. ¿ Tenemos que darle un nombre? Así que llamemos a esto la base de la biblioteca. Recordemos c, n el bucle. Y en, dentro de este bucle entonces vamos a utilizar un sintetizador. Por lo que usaremos, usarás la supertienda. Y entonces lo que haremos es tener un, un bucle aquí que se ve 16 veces. Y terminaremos el bucle. Y luego dentro de este bucle, tocaremos una nota de la escala pentatónica menor, pentatónica menor. Por lo que tocaremos desde una escala basada en la nota midi 40. Tocaremos una escala pentatónica menor. Y sólo escogeremos una nota de esa escala. Un par de otros parámetros sólo para que suene un poco mejor. Por lo que configuraremos el lanzamiento para que sea 0.3. Y diremos sólo tocar si uno de cada dos, así que con una probabilidad de uno y para tocar una de las notas. Entonces solo elige una nota al azar de la escala pentatónica menor. Pero luego necesitamos dormir porque estamos en un bucle. Por lo que dormiremos por 0.25 o repeticiones de cuarto. Y aquí vamos. Así que vamos a, sólo vamos a correr esto y escuchar cómo suena. Eso suena bien porque estamos tocando al mismo tipo de ritmo y tanto el fregadero, porque ambos empezaron a tocar juntos. Sin embargo, una de las cosas que es posible que desee hacer en, en, en una actuación en vivo es agregar un nuevo lípido, o muy comúnmente los bucles en vivo que podría construir de antemano y luego comentar y luego descomentar. Pero vamos, finjamos que podría simplemente cortar esto en mi portapapeles por ahora y vamos a empezar a correr este. Así que finjamos que volví a escribir esto ahora y voy a presionar el botón Ejecutar. No suena tan bien esta vez. No está en sincronía con el, con los triunfo. El bajo suena fuera de tiempo con la batería. Ahora bien, esta es una manera muy, muy simple de arreglar esto, y está integrado en Sonic Pi. Y todo lo que tenemos que hacer es adentro, están dentro de nuestras bibliotecas. Y es por esto que le damos nuestros loops en vivo y nombre. Nosotros sólo decimos simplemente enfermar esto con los tambores. Enfermo esto con los tambores. Así que ahora cuando presenté este bucle en vivo, si acabo de cortar esto al portapapeles de nuevo, pegarlo en. Cuando presiono el botón Ejecutar, va a esperar hasta el punto correcto en la biblioteca para iniciar la línea de base. Por lo que siempre hay permanece sincronizado en cuestión de cuando presiono Run. Por lo que ahora estoy como que el rendimiento está en marcha. Podríamos optar por cambiar algunas cosas. Entonces tal vez quieras cambiar una línea de base. Entonces, una forma fácil de hacer eso podría ser cambiar la semilla aleatoria que estamos usando. Entonces digamos que usas una prensa de semillas aleatorias de subrayado Run. Podríamos querer cambiar el inestimable estar usando. Ahora estamos recibiendo menos notas y la línea de base. Puedes eliminar este a1 por completo. Entonces ahora estamos tocando cada nota. Podemos introducir un hervidor diferente, diferente caja. Ahí vamos. Y podemos seguir haciendo el cambio como el, que la música está sonando contorno. Por lo que realmente se puede ver cómo se puede utilizar Live loops y hundirse entre bucles en vivo para asegurarse de que todo se mantiene en el tiempo entre sí. Y solo poder cambiar tu código como desees, ya que el rendimiento está pasando. 48. MIDI in: De acuerdo, Así que además de usar código para reproducir música, también podemos tomar entrada desde un controlador midi. Por lo que necesitamos configurar un par de cosas dentro sus preferencias para habilitar esto. Entonces si pasamos a la ventana de Preferencias aquí, si vamos a I0, podemos ver aquí que tenemos esto habilitado. Así que menos menos toma el tuyo podría estar deshabilitado aquí. Así que tenemos que asegurarnos de que habilitamos entrante cuz entonces se puede ver que tengo mi mi teclado midi habilitado aquí. Entonces vamos a cerrar eso. Yeso ya lo veremos. Esta es otra instancia donde el, el panel de señales puede ser particularmente útil. Entonces por ejemplo, si presiono una nota en mi teclado ahora, verás que ingresado aquí es el nombre del controlador. Y nos está diciendo que mi tiro con arco o paso clave 37, que es el nombre de mi controlador midi. Había una nota off, una nota sobre evento, seguida de una nota off eventos. Y lo que esto nos está diciendo es que las notas en era una nota 60, que es un asiento medio. Esta segunda parte de esta lista aquí está diciendo 100s. Esa es la velocidad con la que presiono esa nota, si la presiono de nuevo, obtendré una velocidad diferente. Entonces ahí estamos. Ese fue un 112. Una nota diferente me dará un número diferente. Entonces esta era una nota 67, que era una G, Y le pegué a esa con una velocidad de 115. Así que podemos usar esta información que viene de nuestro teclado midi para tocar algo de música usando quizás un sintetizador o un sonido que hemos creado dentro de Sonic Pi, pero poder tocarlo en nuestro teclado. Entonces así es como vamos por hacer eso. Entonces, antes que nada, creemos una obra viva. Simplemente llame a este ejemplo midi. Eso está bien. Terminemos con eso. Entonces aquí dentro, necesito hacer un par de cosas. Entonces necesito crear dos variables para que podamos separar estas variables. Entonces estos son los que más velocidad y esto es lo que vamos a sacar de esta lista que vemos en la cola aquí. Entonces este es el número de nota y la velocidad. Vamos a decir que una sincronice esto a un. ahora tenemos que darle el nombre del evento que está sucediendo. Entonces en nuestro caso entonces, entre comillas, vamos a decir exactamente como está escrito en el panel de colas. Y aquí estamos. Entonces lo va a recoger del panel de cola para nosotros. Pero vamos a decir middy, colon son shari'a paso clave 31371. Y esta es la nota en la pluma. Por lo que queremos decir, cuando consigamos una nota, quiero usar un sintetizador. Voy a usar el piano. Piano. Y le voy a pasar la nota que vino del teclado midi. Y voy a pasar eso al parámetro de nota o a la opción no. Voy a establecer la amplitud para que sea cualquiera que sea la velocidad dividida por 127. El motivo de ello se debe a que la amplitud que proviene de Midea es un valor entre 0127. Pero el parámetro de amplitud o la opción de amplitud dentro Sonic Pi se establece como un valor entre generalmente entre 01. Entonces sólo vamos a tomar eso, tomar esa velocidad que entra dividida por 127 y eso nos dará una amplitud adecuada para el sitio Pi. Entonces vamos a correr eso. Y ahora al presionar notas en mi teclado, soy capaz de tocar el sintetizador para piano desde con el interior de Sonic Pi. Y otra vez, si hubiera añadido algún filtro, sobres, y él tipo de parámetros ADSR, etc. se verán reflejados como yo, mientras toco mi teclado midi. No obstante, si tienes conectado un teclado midi y acabas de usar este ejemplo, obviamente reemplazando esta parte aquí con lo que sea tu, tu teclado se llama desde el panel de señales. Notarás que hay una gran cantidad de latencia. Ahora esta latencia en realidad existe propósito y podemos eliminarla, pero la latencia existe. Te puedo garantizar que cuando presionas este botón, hay exactamente 2.5th entre nuevo presionando una tecla. Y en realidad se puede ver que si se mira en el panel de acusados, hay un retraso de 2.5 entre cuando se presiona una tecla. Y cuando en realidad suena. Ahora, esto, esta latencia está integrada en Sonic Pi a propósito. Y realmente ayuda con el tiempo porque las computadoras, dependiendo de qué más está pasando en la computadora, computadoras pueden correr a velocidades muy variables. Entonces para poder tener las cosas se hunden y trabajar en un ritmo constante es que queremos en una pieza de música normalmente, dependiendo de lo que esté pasando en la computadora, este retraso 2.5th se introduce en propósito para poder contrarrestar eso. Por lo que es realmente sencillo eliminar esa latencia si queremos jugar en tiempo real. Y eso lo hacemos con sólo un simple comando. Por lo que sólo decimos usar subrayado en tiempo real. Ahora cuando presiono Run, el aviso sonó inmediatamente que presioné la tecla correspondiente en mi teclado controlador midi. Entonces todo esto está bien y bien. Y puedes decir, Bueno Steve, eso es genial, pero ya puedo tocar un sintetizador. Tengo lo que podría puerta, tengo un sintetizador independiente que puedo usar. Pero en realidad ahora podemos aplicar parte de la programación que hemos aprendido a nuestro, a nuestro sintetizador ya que obtiene algunos resultados interesantes. Entonces podríamos decir algo como esto. Así que en lugar de usar este sintetizador, podríamos decir, vale, bueno, cuando presiono una nota en mi teclado, sólo tal vez cuaderno, pero disculpe, algo al azar de una escala que está definida por la nota que se pasa. Y luego sólo tocarme algo y al azar en la escala pentatónica mayor. Dependiendo de la nota que haya elegido. En cualquier lugar dentro de tres octavas. Y establecer el, como lo hicimos antes. Vamos a establecer la amplitud a la, para ser la velocidad que se pasa en. Entonces qué tan duro o qué tan rápido golpeamos el teclado dividido por un 127. No te preocupes, si echas de menos la amplitud que se pone en marcha. Simplemente jugarás a la amplitud predeterminada de uno sin importar lo fuerte que golpees la tecla. Por lo que funcionó perfectamente bien. Sin él, perderás sensibilidad a la velocidad de tu teclado. Entonces lo que va a pasar ahora es que lo que toque una nota va a elegir una nota en la escala pentatónica mayor, en algún lugar en tres octavas para las notas que he presionado. Entonces voy a presionar un C medio o S3. Y así cuando haga clic en Ejecutar aquí, cada vez que presione esta nota, me va a tocar una nota de la escala pentatónica mayor. Se puede ver en la cola está aquí en el, en el, en el panel de señales. Acabo de estar presionando C 60 medio a lo largo de todo. Pero emite una nota diferente. En algún lugar dentro de la escala pentatónica mayor, dentro de tres octavas de la nota que toqué. Ahora, es un buen ejemplo para poder mostrarte que tal vez podamos lograr algunas cosas útiles con el código. Pero echemos un vistazo a tal vez un ejemplo cada vez más útil. Simplemente quitemos esto. Vuelve a jugar. Esta vez, usaremos un sintetizador, así que usaremos los fundidos. Bueno, nos quedaremos con este código. Este código es perfectamente bueno. Esto es solo decir, vale, esto es solo crear un bucle en vivo, es decir usar tiempo real y capturar las notas y la velocidad de la nota sobre evento desde nuestro teclado. Pero esta vez haremos algo un poco más interesante. Entonces digamos que cada vez que presiono una nota, quiero tocar un patrón cronometrado. Por lo que en lugar de sólo tocar una nota tocará una serie de notas. Entonces volvamos a sacar la escala de la nota. De las notas que nosotros, que recibimos del teclado. Y volveremos a utilizar el pentatónico menor. Pero esta vez lo vamos a reflejar. Entonces tocaremos toda la escala hacia arriba y hacia abajo. Y debido a que usamos en el patrón de juego cronometrado, necesitamos decirle cuánto tiempo queremos hacer una pausa entre, entre notas. Entonces vamos a establecer que esto sea muy corto. Y luego volveremos a establecer la amplitud para que sea la velocidad dividida entre ciento veintisiete. Veintisiete. Así que déjenme mover un poco esto para que podamos ver toda la línea. Entonces mientras toco una nota en mi teclado midi, me va a tocar la escala pentatónica menor, basada en la nota que he presionado. Y lo va a jugar muy rápido todo el camino hacia arriba y luego volver a bajar de nuevo a la velocidad que pase. Entonces escuchemos cómo suena eso. Para que vean que solo estoy presionando en OneNote. Jugamos en toda esa escala pentatónica todo el camino hacia arriba y todo el camino hacia abajo otra vez. Y por supuesto que puedo agregar otro objeto a esto para poder decir octavas. Muy bueno. Así que puedes ver que realmente podemos escribir algún código que se activa cuando presionamos una nota en nuestro teclado midi para hacer toda una gama de cosas diferentes. Y la gente ha utilizado esto para realmente gran efecto unido por actuaciones, particularmente con diferentes tipos de controladores midi, para poder desencadenar diferentes funciones basadas en la nota que se toca en. Entonces si tienes un controlador midi, ya sea un teclado o si es un PAD, tener un juego alrededor es bastante fácil de configurar como vimos dentro de Sonic Pi. Y de nuevo, hay más ayuda para ti disponible en el panel de Ayuda en torno a la configuración de esto. Pero en realidad es bastante sencillo de hacer. Y es un dispositivo de actuación en vivo realmente, muy potente. Por lo que no sólo tienen la capacidad de cambiar el código en vivo dentro de los bucles Live a medida que se realiza. Pero también puedes usar un controlador midi para agregar algunas dinámicas diferentes a tu actuación en vivo. 49. MIDI out: De acuerdo, así que eso cubre cómo nos metemos en Sonic Pi. Pero Sonic Pi también puede emitir fangoso. Para que podamos controlar otros dispositivos midi o enviar midi a nuestro DAW desde nuestro código. Entonces para demostrar esto, voy a utilizar un sintetizado como un fantástico sintetizador libre llamado vital. Es un sintetizador que utilizo en mi completa guía para principiantes de curso de síntesis y diseño de sonido. Entonces si quieres aprender más sobre vital, por favor ve a echar un vistazo a ese curso. Sólo voy a cargar un preset que creé el otro día llamado el Skynet quiet. Entonces así es como suena eso. De acuerdo, entonces eso es sintetizado corriendo y puedo tocar con mi teclado midi, pero también puedo reproducirlo usando código. Por lo que puedo ver que en las preferencias que tengo una salida conectada, que es mi tiro con arco un paso clave 37. Ahora bien, esto no es algo que pueda descifrar. Esto es algo que Sonic Pi pudo recoger a medida que se abría en base al, los dispositivos que tenía conectado a mi computadora. Así puedo configurar mi canal de salida midi predeterminado. Simplemente dejo ese conjunto a todos y podemos controlar qué canal podemos usar codificar. Y esto puede ser útil si estás usando algo como contacto donde podrías tener múltiples instrumentos funcionando a la vez y enviar diferentes comandos a diferentes canales Midi para poder controlar diferentes instrumentos de contacto, por ejemplo. Pero lo mantendremos agradable y sencillo. Usamos vital. Entonces vamos a escribir un poco de código. Así que todo lo que necesitamos hacer es usar el comando midi, midi note on para iniciar la nota midi tocando o enviar una nota midi on command al dispositivo de salida midi, nuestro teclado en este caso. Y luego vete a decir, vale, ahora muy sutil. Así que vamos, vamos a ejecutar un poco de código para que podamos decir nota midi en. Ahí vamos. Entonces podemos decir emitiendo luz encendida. Juguemos un E tres. En realidad no importa si se usa una minúscula o una mayúscula aquí. Pero solo estoy usando aplicaciones para mantenerlo consistente a lo largo de todo. Podemos decir, entonces estamos jugando E3 y lo vamos a jugar a una velocidad de 50. Y enviaremos esto al canal midi uno. Entonces vamos a dormir cuatro latidos. Y luego enviaremos el comando midi note off , midi note off. Y de nuevo, tendremos que decir qué nota apagar. Entonces vamos a apagar el E3 que acabamos de enviar. Y de nuevo, este va a ser un comando que vamos a enviar en el canal número uno. Vamos, vamos a correr eso. Y se puede escuchar eso saliendo el sintetizador. Ahora si vuelvo a correr eso, se puede ver en realidad el fondo del centro que compré mi vital. Se puede ver en el teclado midi nota realmente ha sido enviada. Por lo que había sido enviado a través de mi controlador midi. Y los respaldos son vitales. Como dije, con diferentes instrumentos virtuales, sin duda podrías y he controlado el contacto directamente desde dentro de Sonic Pi basado en los canales midi que lo envío. No obstante, acabo de elegir, optado por usar vital en esta instancia porque es un sintetizador fantástico y gratuito para que todos puedan seguirlo. Entonces agreguemos otra nota también. Entonces vamos a enviar una nota midi. En. En esta ocasión le vamos a mandar un A4. Y de nuevo, usaremos una velocidad de 50 y enviaremos por el canal uno. Dormirá para. Y entonces de pronto realmente lo sabremos. Y le diremos que apague no, a4 en el canal uno. Y presionemos Play y luego, o ron y luego volteemos a vital. Ahí vamos. Entonces un ejemplo bastante simple, pero sí demuestra cómo puedes enviar midi fuera de Sonic Pi y en cualquier instrumento o instrumentos virtuales al que quieras conectarte. Y es sin duda un gran uso para esto podría ser controlar y un sintetizador analógico externo. Por lo que tal vez quieras conectar esto a algún tipo de sintetizadores externos que hayas sacado de tu computadora a través de un cable midi y luego enviar comandos midi fuera de Sonic Pi para controlar lo que sea. Desde que tal vez lo hayas hecho. 50. Audio en directo: De acuerdo, y hay una forma más mejorar nuestras actuaciones en vivo con Sonic Pi, y es a través del uso del audio. Así que en realidad podemos tomar audio desde un micrófono o un instrumento externo como una guitarra, y en realidad acceder a eso a través de Sonic Pi. Y podemos aplicar un montón de efectos y escribir código alrededor de la entrada que obtenemos. Para configurar eso, debes ir a Preferencias. Ve a la sección de audio, asegúrate de tener habilitadas las entradas de audio aquí. Entonces en este panel abajo aquí abajo, si está desactivado, simplemente haga clic en eso para habilitar las entradas de audio. Por lo que Sonic Pi puede tomar entrada de audio de varios lugares diferentes. Por lo que podría tomarlo del micrófono de tu computadora por defecto. Se puede tomar de una tarjeta de sonido externa o de una interfaz de audio. Y si como yo, tienes una interfaz de audio con múltiples canales, entonces Sonic Pi va a tomar la entrada de audio del primer canal en tu interfaz de audio al primer canal en la interfaz de audio que tengo, he enchufado mi guitarra para tocar eso a través de Sonic Pi, simplemente necesito usar los comandos de audio en vivo. Entonces solo puedo decir audio de subrayado en vivo y necesito dar este audio en vivo y nombre. Entonces lo voy a llamar guitarra. Y ahora con este comando cuando presiono Run, ahora deberías poder escuchar la guitarra pasando, a través de Sonic Pi. Entonces estamos, podemos ver encima en el alcance y la parte superior derecha aquí, podemos ver el análisis de espectro de la entrada de audio. Entonces presionemos parar ahí por ahora. Y como dije, esto no necesita ser guitarra, podría ser una base, podría ser un teclado, podría ser un micrófono, etc. Lo emocionante es que nos permite agregar efectos, por ejemplo. Así que podemos simplemente envolver esto con un bucle de efectos. Entonces digamos con efectos de subrayado, Vamos a agregar una reverberación. Entonces ahora cuando yo, cuando corro esto, debería tener el sonido de mi guitarra como lo hacía antes, pero con algo de reverberación, puedo agregar alguna prensa de distorsión Run. Y por supuesto que puedo seguir estos efectos como lo hacía antes, pero como dije antes, solo ten cautela con esto. Si empiezas a agregar demasiados efectos, descubrirás que empiezas a sufrir con un poco de rendimiento, con algunos problemas de rendimiento. Entonces, pero podemos agregar una reverberación, por ejemplo, en el exterior de aquí, y necesitamos otro bucle final. Vamos a formatear eso y ejecutar eso. Y ahora debería tener una guitarra distorsionada con revert. De acuerdo, vamos a conseguir algunos realmente interesantes por posibilidad de rendimiento. Desplázate hacia este búfer en lugar de escribir todo esto. Yo he, he, he guardado esto en un buffer diferente y te hablaré a través del código. Entonces en la parte superior aquí tengo exactamente lo mismo que teníamos en la última sección. Así que solo el audio en vivo que viene de la guitarra a través de mi interfaz de audio y simplemente aplicando algo de distorsión y algo de reverberación para que luego configuremos el BPM a 96. Sólo por este ejemplo. Entonces tenemos un bucle en vivo que está tocando una secuencia de batería de una manera muy similar a lo que hemos visto antes en secciones anteriores. Así que solo usando este patrón de batería aquí que hemos descrito en estas cuerdas para tocar nuestros tres samples de batería. Entonces nos dieron un loop, otro loop en vivo pasando, que es sólo tocar una parte de bajo. Así que esto es usando una base cínica, y solo está haciendo un bucle 16 veces y eligiendo una nota de la escala pentatónica menor o la escala pentatónica E menor, eligiendo una fila aleatoria para eso y es tocando una nota cada medio tiempo. Y luego tenemos otra biblioteca, que se llama llaves. Y esto es usar el sintetizador para piano. Y de nuevo, es elegir de la escala pentatónica E menor, pero tres octavas por encima este uno o dos autores madre encendido, y está tocando una nota cada cuarto de compás y eso va bucle redondo de 16 notas. Entonces encima de eso, porque tenemos el audio en vivo, puedo reproducir entrada a través de mi interfaz de audio. Encima del sonido se está produciendo con Sonic Pi. Y en realidad puedo grabar esto un archivo de audio con Sonic Pi reproduciendo mi código en segundo plano. Y luego con los lípidos están en la parte superior pulsando el botón Grabar aquí. Y luego presionando Ejecutar. Y luego detener la grabación. Y me dura donde quiero guardar este archivo también. Para que pueda guardar esto en mi escritorio, por ejemplo, audio. Haga clic en Guardar. Y luego encima en mi escritorio, el archivo se ha salido como un archivo WAV. Y puedo escuchar eso a través del reproductor de audio Mac. 51. Para terminar: De acuerdo, así que eso es todo por este curso. Hemos visto que algunas de las fantásticas posibilidades se abren cuando usas Sonic Pi para escribir código para crear música. Pero hay alrededor de 250 diferentes comandos separados en Sonic Pi me, realidad sólo hemos rayado la superficie. Así que mira en la sección de pulmón de la, del panel de salud y realmente tener una excavación por ahí dentro. Todos los comandos tienen una documentación realmente genial. En esa nota. Me gustaría animarles a que miren en los paneles de ejemplos. Entonces si miras en el panel de salud, mira debajo de ejemplos y verás algunos ejemplos realmente geniales que se han proporcionado con Sonic Pi. Sin duda te animaría a echar un vistazo a algunos de esos y cavar a través de ese código y realmente leer a través de él y entenderlo. Te puedo recomendar una buena, una. Un buen lugar para empezar podría ser algo así como Tilburg dos, que es uno de los ejemplos ahí dentro. Simplemente haz clic en el ejemplo en el panel de salud y luego puedes copiar y pegar el código en uno de los búferes en la ventana de código en el interior, dentro de Sonic Pi, puedes reproducirlo y hacer cambios en ella y realmente experimentar. Recuerda, no hay errores. No se puede romper nada por, por experimentado dentro de Sonic Pi. Y quién sabe que algunos de estos experimentos podrían convertirse en tu próxima gran idea musical, tu próxima gran producción musical. Por lo que es una manera realmente genial para simplemente experimentar y descubrir nueva música. Simplemente no olvides guardar tu trabajo regularmente. Como dije, Sonic Pi, lo almacenaremos dentro del buffer cuando lo recargues. Pero, pero sólo para estar seguro, siempre me gusta cuando estoy realmente particularmente feliz con algo, tomar una copia separada y guardar en formas de archivo separado. Y siempre está el botón de deshacer. Si lo haces, si experimentas y vas por el camino que no te gusta particularmente, entonces siempre puedes deshacer tu salida o volver a un estado seguro previo. Pero eso realmente es todo. Así que diviértete y realmente te animo a que pruebes alguna actuación en vivo, aunque sea solo tú mismo en tu habitación realizando un registro, tal vez frente a algunas familias y amigos, o cuando te pongas realmente bueno en ello, adelante, escenifica, ve y presume lo que tienes. Echa un vistazo a algo rave. Por lo que tan solo unos cuantos algoritmo de Google te enviará al sitio web del algoritmo y podrás ver dónde están algunas otras personas que quizás tengan en tu área o poniendo algunas actuaciones en vivo. Sólo se necesita un poco de práctica. Esto es lo mismo que cualquier otro instrumento. Y así que realmente te animo a que pases tu tiempo cada día igual que lo harías si estuvieras aprendiendo la guitarra o el piano, el arpa, o cualquier otro instrumento, solo pasa tu tiempo, un poco de tiempo cada día practicando Sonic Pi, practicando una actuación en vivo, probando diferentes bits de código y diferentes experimentos, ese poco de práctica cada día te conseguiremos competente en ningún momento en absoluto. Estoy seguro. Sé más corto para compartir tu código y tu música con el resto del mundo, ya sea a través de la comunidad en el sitio web de Sonic Pi o por más que te sientas libre, te sientas cómodo al hacerlo. Me encanta volver a saber de ti, así que por favor comparte tu código conmigo. No lo compartan en este sitio web. Si quieres aprender más sobre algunos de los otros cursos y las otras cosas que tengo pasando. Entonces por favor dirígete a Steve en vivo con music.com y descubrirás todo lo que necesitas saber que ha sido fantástico tenerte Muchas gracias por ver y te veré de nuevo pronto.