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.