Leccion 00 — Fundamentos: Pulso y Entorno (version Strudel)
Objetivo
Al terminar esta leccion podras: (1) calcular el setcps correcto de Strudel a partir de cualquier
tempo en bpm, y (2) hacer sonar cualquier instrumento de percusion con la biblioteca de sonidos
incorporada de Strudel, reconociendo de oido las articulaciones basicas (abierto, tapado, bajo) de
cada familia.
Concepto
Pulso, compas y subdivision
Toda la musica cubana que vas a programar en este curso esta en compas de 4/4: cuatro tiempos por compas, y cada tiempo se subdivide en dos corcheas ("y"). Eso da 8 corcheas por compas, que es la unidad que vamos a usar constantemente para escribir patrones, por ejemplo:
posicion: 1 2 3 4 5 6 7 8
corchea: 1 & 2 & 3 & 4 &
tiempo: 1 2 3 4
Cuando en este curso veas una notacion como X..X..X., cada caracter es una de esas 8
posiciones: X es un golpe, . es silencio.
Ojo: posicion no es lo mismo que tiempo
Esta es una confusion muy comun al empezar. A lo largo del curso vas a leer frases como "el golpe cae en la posicion 4" — eso NO significa "en el tiempo 4". Son 2 cosas distintas:
- Tiempo son los 4 pulsos principales del compas (1, 2, 3, 4) — lo que cuentas con el pie al bailar.
- Posicion es el indice de las 8 corcheas de la tabla de arriba — una numeracion mas fina que incluye tanto los tiempos como las "y" que caen entre ellos.
Cada tiempo ocupa 2 posiciones: el tiempo en si, y su "y" inmediatamente despues. Formula rapida:
- Si la posicion es impar (1, 3, 5, 7), cae exactamente sobre un tiempo:
tiempo = (posicion + 1) / 2. Ej.: posicion 5 -> tiempo (5+1)/2 = tiempo 3. - Si la posicion es par (2, 4, 6, 8), cae en la "y" de un tiempo:
tiempo = posicion / 2. Ej.: posicion 4 -> "y" del tiempo 4/2 = "y" del tiempo 2, NO el tiempo 4 ni el tiempo 3.
Este ultimo ejemplo (posicion 4 = "y" del tiempo 2) es exactamente el primer tono abierto del tumbao de conga que vas a estudiar en la Leccion 02.
La relacion cps / bpm
Strudel (como Tidal) no piensa en "bpm" (beats per minute) sino en cps (cycles per second): cuantos ciclos completos suenan por segundo. En este proyecto usamos la convencion 1 ciclo = 1 compas de 4/4. Como un compas tiene 4 tiempos, y bpm mide tiempos por minuto:
cps = bpm / 60 / 4 = bpm / 240
Ejemplos:
| bpm | cps | Genero de referencia |
|---|---|---|
| 80 | 0.333 | bolero / son muy lento |
| 100 | 0.417 (aprox. 0.42) |
son tradicional (tempo base de este curso) |
| 130 | 0.542 | mambo / songo rapido |
En Strudel esto se escribe con setcps, y puedes dejarle a JavaScript la division en vez de
redondear a mano: setcps(100/60/4) es exactamente igual que setcps(0.4166...). (Alternativa
equivalente: setcpm(100/4), cycles per minute = bpm/4.)
Hacer sonar un instrumento
El patron de salida que vas a usar en TODO este curso es siempre el mismo:
$: s("clave")
s(...) recibe una secuencia de nombres de sonido de Strudel (usa ~ para silencio) y los
reproduce por los altavoces del navegador. El nombre del sonido es el que determina que instrumento
suena (clave, conga, guiro, cowbell...); las distintas articulaciones o alturas de un
instrumento se eligen con el indice :n (conga:0 tapado, conga:4 abierto, conga:28 bajo). Por
eso el mapa SONIDOS.md (raiz de este curso) es tu referencia constante durante todo el curso.
El prefijo $: declara un patron; si pones varias lineas $: suenan a la vez (son las capas del
arreglo). Ctrl+Enter evalua y reproduce todo el documento; Ctrl+. detiene todo. No hace falta
instalar ni configurar nada: el sonido sale directo del navegador.
Escucha y analisis: "El Manisero" (The Peanut Vendor, Moises Simons, 1930)
"El Manisero" fue el primer gran exito mundial de un ritmo cubano: la version instrumental de Don Azpiazu y su Havana Casino Orchestra (grabada en 1930) desato la primera "fiebre de rumba" en Estados Unidos y Europa, mucho antes de que existieran el mambo o la salsa. La cancion original es un pregon — el canto callejero de un vendedor ambulante de mani ("¡Mani, mani, manisero, que rico el mani!") tal como se escuchaba en las calles de La Habana.
Lo que nos interesa de "El Manisero" para esta leccion es su base ritmica: el bajo y la percusion tocan una celula de 5 golpes en 8 corcheas conocida como cinquillo cubano:
X . X X . X X .
1 2 3 4 5 6 7 8
Es una celula simetrica (corchea-semicorchea-corchea-semicorchea-corchea, duraciones 2+1+2+1+2): se lee igual de adelante hacia atras que al reves.
Escucha la grabacion (por ejemplo la version de Don Azpiazu) prestando atencion solo al bajo/tumbadora: notaras que el patron no cae "parejo" sobre los 4 tiempos — tras el golpe inicial (posicion 1) hay dos grupos de dos golpes pegados (posiciones 3-4 y 6-7). Esa irregularidad es la firma sonora de la musica cubana desde el siglo XIX (el cinquillo viene de la contradanza y la habanera), y es el ancestro directo de la sincopa que en la Leccion 01 vas a estudiar de forma mas refinada: la clave.
El archivo codigo_ejemplo/02_cinquillo_manisero.strudel te deja escuchar exactamente esa celula,
aislada, tocada con claves.
Ejemplo de codigo
00_disparo_instrumentos.strudel — un disparo por instrumento/articulacion
setcps(0.42)
$: s("clave*4") // claves (Hit) <-- ACTIVA por defecto
_$: s("cowbell*4") // campana / cencerro 1 shank
_$: s("conga:28*4") // conga 2, golpe de bajo (Bass)
// ...y asi hasta 12 lineas, una por cada familia de instrumento
Cada instrumento suena como un pulso de 4 golpes por compas (*4) para que se oiga con claridad; un
solo golpe por ciclo se pierde con facilidad. Cada linea hace sonar UN solo instrumento. A diferencia de Tidal (donde se evalua una
linea a la vez con Shift+Enter), en Strudel Ctrl+Enter evalua TODO el documento de una vez —
pero solo suenan las lineas que NO empiezan por _. Por eso 11 de las 12 lineas vienen muteadas
con el prefijo _ (_$:) y solo la de las claves esta activa: al evaluar oiras las claves. Para oir
otro instrumento aislado, pon _ delante de la linea activa y quitaselo a la que quieras, y pulsa
Ctrl+Enter. Asi comparas timbres de uno en uno.
01_pulso_y_cps.strudel — el mismo patron a 3 tempos distintos
// 80 bpm -> cps = 80/240 = 0.333...
setcps(80/60/4)
// 100 bpm (tempo del resto del curso)
// setcps(100/60/4)
// 130 bpm
// setcps(130/60/4)
// clave (misma en los 3 tempos)
$: s("clave ~ ~ clave ~ clave ~ ~")
El patron de clave (68 ~ ~ 68 ~ 68 ~ ~) es identico en los 3 casos; lo unico que cambia es cual
setcps esta activo. Como en Strudel todos los setcps del documento se ejecutan (gana el ultimo),
deja uno solo sin comentar y comenta los otros dos con //, luego Ctrl+Enter. Ve cambiando
cual esta activo para sentir como cambia la velocidad del ciclo sin cambiar ni una nota del patron.
02_cinquillo_manisero.strudel — el cinquillo con claves
setcps(100/60/4)
// cinquillo con claves: X.XX.XX.
$: s("clave ~ clave clave ~ clave clave ~")
s("clave ~ clave clave ~ clave clave ~") es la celula de cinquillo completa en una sola secuencia de 8
corcheas: 68 dispara la clave (Hit), ~ es silencio explicito. Evalua con Ctrl+Enter.
Ejercicios
- Programa el cinquillo (
X.XX.XX.) pero con maracas (sonidoshaker_small) en vez de claves, a 90 bpm. - Calcula y escribe el
setcpscorrecto para una pieza a 96 bpm, y dispara un patron de 4 golpes de cajon (sonidobd, bajo abierto) a ese tempo. - Combina por primera vez 2 instrumentos sonando simultaneamente: clave (sonido
clave) tocando solo en las posiciones 1 y 5 de un compas de 8 corcheas, y maracas (sonidoshaker_small) tocando las 8 corcheas completas, usando dos capas (dos lineas$:).
Soluciones en solucion_ejercicios/ejercicio_1_solucion.strudel,
ejercicio_2_solucion.strudel y ejercicio_3_solucion.strudel.
Ejemplos de codigo
Pulsa ▶ Tocar aqui para abrir el editor de Strudel y reproducir el patron directamente en el navegador (usa los sonidos nativos de Strudel, no hace falta instalar nada). O Copia el codigo y pegalo en strudel.cc.
// Leccion 00 - Disparo individual de cada familia de instrumento de la biblioteca de sonidos de Strudel
// Requiere: un navegador con sonido. No hace falta MIDI ni programas externos: el audio suena en el navegador.
//
// Cada instrumento suena como un pulso de 4 golpes por compas ("*4") para que se oiga con claridad.
// Uso: al pulsar Ctrl+Enter suena SOLO la linea activa (la que NO empieza por "_"). Por defecto
// suenan las claves. Para oir otro instrumento aislado: pon "_" delante de la linea activa y quitaselo
// al que quieras escuchar, luego Ctrl+Enter. Detener todo: Ctrl+.
// (Nota: la primera vez que suena un instrumento, Strudel descarga su sample; puede tardar un instante.)
setcps(0.42)
$: s("clave*4") // claves (Hit) <-- ACTIVA por defecto
_$: s("cowbell*4") // campana / cencerro 1 shank
_$: s("conga:28*4") // conga 2, golpe de bajo (Bass)
_$: s("conga:4*4") // conga 2, tono abierto (Open Right)
_$: s("conga:0*4") // conga 2, tono tapado / manoteo (Muted Right)
_$: s("bongo:0*4") // bongo 1, tono abierto (Open Finger)
_$: s("guiro:1*4") // guiro (Hit)
_$: s("shaker_small*4") // maracas 1 (Beat)
_$: s("bd*4") // cajon, bajo abierto (Bass Open, "kick")
_$: s("sd*4") // cajon, palmada abierta (Slap Open, "snare")
_$: s("conga:26*4") // timbal 1, tono abierto (Open)
_$: s("bongo:26*4") // redoble de timbal (Timbale 2 Roll)
// Reto de oido: ve activando una linea a la vez (deja solo UNA sin "_"), cierra los ojos
// y nombra el instrumento y su articulacion (abierto/tapado/bajo) solo por el timbre.
// Leccion 00 - Relacion entre cps (cycles per second) y bpm (beats per minute)
// Convencion de este proyecto: 1 ciclo = 1 compas de 4/4 -> cps = bpm / 60 / 4 = bpm / 240
//
// Uso: deja UN solo setcps sin comentar (los otros dos con "//") y pulsa Ctrl+Enter para oir
// el mismo patron de claves a esa velocidad. Cambia cual setcps esta activo para comparar.
// Detener todo: Ctrl+.
setcps(80/60/4) // 80 bpm (son muy lento / bolero) = 0.333...
// setcps(100/60/4) // 100 bpm (son tradicional tipico, tempo del resto del curso) = 0.4166...
// setcps(130/60/4) // 130 bpm (songo/mambo rapido) = 0.5416...
$: s("clave ~ ~ clave ~ clave ~ ~") // clave (misma en los 3 tempos)
// Nota: setcps(0.42) es la forma abreviada de ~100 bpm; usar (bpm/60/4) es mas legible.
// Leccion 00 - El cinquillo cubano, celula ritmica de "El Manisero" (1930)
// Celula simetrica de 5 golpes en 8 corcheas: X.XX.XX. (posiciones 1,3,4,6,7 de 8)
// = corchea-semicorchea-corchea-semicorchea-corchea (duraciones 2+1+2+1+2)
// Ancestro historico de la sincopa cubana que mas tarde se refina en la clave (Leccion 01)
//
// Uso: pega en strudel.cc y pulsa Ctrl+Enter. Detener todo: Ctrl+.
setcps(100/60/4)
$: s("clave ~ clave clave ~ clave clave ~") // cinquillo con claves: X.XX.XX.
// Escucha como el patron NO cae parejo sobre los 4 tiempos: tras el golpe inicial (posicion 1)
// hay dos grupos de 2 corcheas pegadas (posiciones 3-4 y 6-7) que generan el "tumbao"
// caracteristico que luego escucharas en la conga (Leccion 02). La celula es simetrica.
Soluciones de los ejercicios
Pulsa ▶ Tocar aqui para abrir el editor de Strudel y reproducir el patron directamente en el navegador (usa los sonidos nativos de Strudel, no hace falta instalar nada). O Copia el codigo y pegalo en strudel.cc.
// Solucion ejercicio 1 (Leccion 00)
// Enunciado: programar el cinquillo (X.XX.XX.) pero con maracas en vez de claves, a 90 bpm.
setcps(90/60/4)
$: s("shaker_small ~ shaker_small shaker_small ~ shaker_small shaker_small ~") // cinquillo con maracas 1 (sonido `shaker_small`), 90 bpm
// Solucion ejercicio 2 (Leccion 00)
// Enunciado: calcular el setcps correcto para 96 bpm y disparar 4 golpes de cajon a ese tempo.
// Formula: cps = bpm / 60 / 4 = 96 / 60 / 4 = 0.4
setcps(96/60/4) // = 0.4
$: s("bd bd bd bd") // 4 golpes de cajon, bajo abierto (sonido `bd`), a 96 bpm
// Solucion ejercicio 3 (Leccion 00)
// Enunciado: combinar clave (posiciones 1 y 5 de 8) con maracas tocando las 8 corcheas, en 2 capas.
//
// Uso: Ctrl+Enter reproduce las 2 capas a la vez. Mutear una: pon "_" delante ("_$:"). Parar: Ctrl+.
setcps(100/60/4)
$: s("clave ~ ~ ~ clave ~ ~ ~") // clave en posiciones 1 y 5 de 8
$: s("shaker_small*8") // maracas en las 8 corcheas