Introducción a la
computación física
con Raspberry Pi y Python
Clase 3
Conozcamos a Sonic Pi
Objetivos
Conocer y utilizar la aplicación Sonic Pi.
Utilizar la aplicación Sonic Pi.
Contenidos
Módulo 2
Clase 3
Instalación de Sonic Pi.
Descripción de la
interfaz de Sonic Pi.
Programación de
música con Sonic Pi.
Sintaxis del código.
Sonic Pi
• Sonic Pi es un entorno de síntesis OpenSource con versiones para
Mac OSX y Windows.
• Diseñado específicamente como una herramienta tecnológica de
apoyo para enseñar conceptos básicos de música y sonido en las
escuelas.
• La distribución Raspbian tiene preinstalada a Sonic Pi, se puede
ingresar desde el Escritorio.
• Si no encuentran la aplicación instalada, deben abrir la Terminal
y ejecutar los siguientes comandos:
sudo apt-get update ( presionar enter)
sudo apt-get install sonic-pi (presionar enter)
• Al finalizar estos pasos, volver al escritorio para ingresar a Sonic Pi haciendo doble clic
sobre su icono.
Vista del workspace
Vista del workspace
Para grabar el audio producido
Este botón permite grabar el archivo de audio en formato .wav.
Antes de presionar el botón , primero debe estar ejecutándose la
música, es decir: 1- presionar , 2- inmediatamente presionar
, 3- al terminar la música se presiona nuevamente y aparece el
cuadro de diálogo para colocar el nombre al archivo.
Para grabar el código del programa de audio producido
Este botón permite guardar las sentencias de código de la música
creada. El archivo es de formato .rb.
Para ver el contenido, se utiliza el botón .
Programación de música
con Sonic Pi
Sintaxis del código
Estructura básica de un programa
Sonic Pi tiene un lenguaje de programación propio, es sencillo y permite
reproducir notas controlando distintos parámetros de cada sonido. Las
estructuras de control como bucles, iteraciones entre otras, facilitan la
creación de pistas y voces de una pieza musical.
Sonic Pi ejecuta los comandos en orden secuencial (uno después de otro).
Cada nota musical tiene un valor numérico comprendido entre 60 y 71.
Do Do# Re Re# MI Fa Fa# Sol Sol# La La# Si
60 61 62 63 64 65 66 67 68 69 70 71
Para escuchar la nota DO:
Se escribe la instrucción play 60
Se presiona el botón
Comencemos a crear música
Escribir las sentencias que se muestran en la imagen y luego presionar el
botón .
¿Se distinguen las tres notas? La respuesta es no. Se escuchan las notas
juntas.
Veamos si podemos agregar una pausa entre una y otra para
distinguirlas. Usaremos el comando sleep.
Sintaxis: sleep segundos
Ejemplo: sleep 0.5 (hace una pausa por el tiempo de medio segundo).
Comencemos a crear música
Modificar el código escrito anteriormente, agregando la sentencia sleep
0.5 entre cada nota. Debería quedar como muestra la imagen.
Presionar el botón para escuchar.
¿Se distinguen las tres notas? La respuesta es sí.
Las notas de Sonic Pi tienen su equivalente en los códigos MIDI, puede
utilizarse cualquiera de los dos para codificar un programa musical.
Do Do# Re Re# MI Fa Fa# Sol Sol# La La# Si
:c4 :cs4 :d4 :ds4 :e4 :f4 :fs4 :g4 :gs4 :a4 :as4 :b4
60 61 62 63 64 65 66 67 68 69 70 71
Comencemos a crear música
La composición de ambos códigos es la misma.
La equivalencia de las notas musicales con los números es una
orientación para quienes conocen poco de música, lo importante es que
es un punto de partida para comenzar a experimentar. También se
pueden utilizar otros valores de notas distintos a los mostrados en la
tabla, por ejemplo 48, teniendo en cuenta que los números bajos
emiten pitidos más bajos y los números altos emiten pitidos más altos.
Programación de música con Sonic Pi
Iteraciones y bucles
Las iteraciones se utilizan para repetir una secuencia o grupo de notas.
Es recomendable aplicar iteraciones en lugar de copiar y pegar las
sentencias repetidas veces.
La iteración tiene la siguiente estructura:
[Link] do # n indica las veces que se repetirán las notas
play …
sleep ….
play …
end #cierra la iteración.
Ejemplo de iteración
La sentencia [Link] do indica que la
iteración se repite 4 veces. Es decir,
las notas que contiene la iteración se
escucharán 4 veces.
Programación de música con Sonic Pi
Un bucle (loop) se utiliza cuando las repeticiones son infinitas. La única
forma de salir del bucle es presionando el botón (Detener). Tener en
cuenta que las sentencias que se escriban a continuación de un loop
nunca se escucharán.
Sintaxis:
loop do # inicia el bucle
play …
sleep ….
play …
end #cierra el bucle
Ejemplo de bucle:
Acceso a sonidos pregrabados
Sonic Pi dispone de 90 sonidos pregrabados con licencia libre que se
llaman sampleos o samples.
Los samples se agrupan en categorías:
:ambi_ Para utilizar un sample, se puede escribir el
comienzo de un grupo, por ejemplo, sample
:bass_
:ambi_ y se desplegará el menú de nombres
:elec_ disponibles de esa categoría para seleccionar.
Otra forma es escribir directamente el
:perc_
comando, teniendo en cuenta la sintaxis, es la
:guit_ siguiente:
:drum_ sample: nombredelsample.
:misc_
:bd_
Acceso a sonidos pregrabados
Al escribir sample, se despliega una lista para seleccionar como muestra
la imagen.
Ejemplo:
sample:ambi_lunar_land
Los samples se pueden intercalar con
las notas y con el comando sleep
para establecer pausa en ellos.
Ejemplo:
Uso de sintetizadores
Los sintetizadores en Sonic Pi consisten en un rango de instrumentos,
llamados synths. Con ellos se pueden generar nuevos sonidos. Sonic Pi
tiene más de 20 sintetizadores para utilizar y combinar.
Para acceder, se comienza la línea de código de la siguiente manera:
use_synth
y se despliega una lista como muestra la imagen, que permite ver el
listado y seleccionar un synth. También se puede escribir directamente la
línea de código, teniendo en cuenta la sintaxis:
: use_synth nombresynth.
Uso de sintetizadores
Ejemplo:
Los synths se pueden combinar con
las notas, samples y otros synths.
Por ejemplo:
Parámetros para configurar el comportamiento
del sonido
Cada parámetro tiene dos partes: nombre y valor.
•Parámetro amplitud que define el volumen, amp:
•Parámetro que controla en qué altavoz se escuchará, pan:
•Parámetro para el tiempo de duración del sonido, release:
•Parámetros que modifican la forma de onda, la envolvente acústica posee
cuatro fases (Attack, decay, sustain, release):
• ataque (tiempo desde la ejecución hasta su amplitud máxima luego
de esta),
• decaimiento (tiempo entre que el ataque termina y se estabiliza),
• sostenimiento (tiempo en el cual el volumen del sonido se mantiene
estable) y
• relajación (tiempo entre que el sonido empieza a desvanecerse hasta
ser inaudible).
Explicación de las fases
• ataque - tiempo desde amplitud de 0 hasta el attack_level,
• decaimiento - tiempo para mover la amplitud desde attack_level a
decay_level,
• sostenimiento - tiempo para mover la amplitud desde decay_level a
sustain_level,
• release - tiempo para mover la amplitud desde sustain_level a 0
Es importante recalcar que la duración de un sonido es la sumatoria de todos
los tiempos de todas las fases.
Ejemplo:
Uso de efectos
• Los efectos permiten generar sonidos más complejos, pues utilizan bloques
y también se pueden anidar para lograr sonidos más elaborados.
• La lista de efectos que tiene Sonic Pi se puede obtener en la Ayuda,
pestaña FX.
Uso de efectos
La sintaxis para utilizar un efecto es la siguiente:
with_fx :nombre_del_efecto
Notarán que al escribir wirh_fx, se
desplegará la lista como muestra la
siguiente imagen.
Ejemplo:
Actividad 2 - Parte 1 - Descripción
Las actividades que se desarrollarán son las siguientes:
• Parte 1 – Crear secuencias de notas utilizando iteraciones y
bucles.
• Parte 2 – Utilizar samples y sintetizadores para crear sonidos.
• Parte 3 – Añadir efectos a la pieza creada.
Materiales necesarios:
• Sistema operativo Raspbian
• Aplicación Sonic Pi
Actividad 2 – Parte 1 – Crear secuencias de
notas utilizando iteraciones y bucles
• Crear la secuencia
de notas
• Aplicar a la secuencia
anterior una iteración
para que se repita 4
veces.
Actividad 2 – Parte 1 – Crear secuencias de
notas utilizando iteraciones y bucles
• Aplicar una iteración
anidada que encierre
solamente la primera
nota de la secuencia. La
iteración se debe repetir
4 veces.
• Aplicar un bucle a la
secuencia anterior.
Recordar: deberán presionar
Stop para detener la
ejecución.
Actividad 2 – Parte 2 – Utilizar samples y
sintetizadores para crear sonidos
• Seleccionar el sample :
:drum_heavy_kick.
Aplicar un bucle infinito y
un tiempo de espera de .
25 segundos.
• Seleccionar el sample
drum_snare_hard y • Agregar una iteración para que
agregarlo dentro de ambos samples se repitan 2 veces.
loop.
Actividad 2 – Parte 3 – Añadir efectos a la pieza
creada
• Seleccionar el efecto
:wooble y agregarlo a la
secuencia creada en el
ejercicio anterior.
• Seleccionar el efecto
reverb y agregarlo • Seleccionar el efecto vowel y
entre los samples. agregarlo fuera del loop.
Síntesis
Durante el desarrollo de la clase conociste los siguientes temas:
Qué es Sonic PI.
Programar música con Sonic Pi.
Sintaxis del código.
Gracias