La parte 1 rompió la soldadura entre tono y tiempo saliendo del dominio temporal. No hacía falta. Alcanzaba con dejar de trabajar sobre la muestra y elegir una unidad más grande. Esta parte lo rompe tres veces más sin usar una sola FFT — y después muestra que una única operación se come dos de los cuatro mecanismos.
Duración
3 horas
Requisito
La parte 1, o al menos sus módulos 2, 3 y 5
Herramientas
CDP 7.1, ffmpeg, un editor de texto
Te llevás
Una reverb que escribiste vos, en un archivo que podés mirar
Un mismo sonido, tres duraciones: 0,498 s · 2,000 s · 5,985 s. Las tres calles están dibujadas a la misma escala de tiempo y las bandas de frecuencia están a la misma altura: el tono no se movió ni un semitono. Ninguna de las tres operaciones toca la FFT. distort telescope arriba, la fuente en el medio, distort interpolate abajo.
01 La idea
En la parte 1 el módulo 2 dejó una frustración plantada a propósito: en el dominio del tiempo, la velocidad y el tono son un par soldado. Leer las muestras a otro ritmo mueve las dos cosas en proporción exacta, y no hay flag que las separe. El módulo 6 pagó esa deuda saliendo del dominio del tiempo: análisis, estirar frames espectrales, resíntesis.
Esa solución funciona y es la que usa todo el software moderno. Pero la conclusión que la mayoría se lleva de ahí es falsa. La conclusión no es "hay que ir al dominio de la frecuencia". Es esta:
Y hay un segundo movimiento, que llega en el módulo 3 y es el más grande de las dos partes. Los mecanismos 2 y 3 de la parte 1 — desplazar una copia en el tiempo, seleccionar frecuencias — parecían independientes. No lo son: los dos son la misma operación con distinto argumento, y ese argumento es un archivo de audio que podés dibujar, mirar y escribir a mano. Cuando eso encaja, la parte 1 se reorganiza sola.
Es barato equivocarse. Igual que en la parte 1: todo renderiza en centésimas de segundo, así que la pregunta "¿y si…?" se contesta antes de terminar de formularla.
Se puede predecir. Al final del taller, frente a un efecto nuevo, la pregunta ya no es qué hace sino sobre qué unidad opera. Eso alcanza para adivinar el resto.
Hay bugs de verdad. Cuatro de los footguns de esta parte se descubrieron corriendo los comandos: uno es un modo documentado que no funciona, y otro hace que el mismo comando dé un resultado distinto cada vez. Encontrarlos es parte del ejercicio.
02 Preparación
La instalación es la de la parte 1 y no cambió: bajar el release de SoundThread, destarear el cdprogs_linux.tar.gz que viene adentro, exportar el PATH. Está en la sección 02 de la parte 1.
Dos fuentes, no una
Esta parte necesita dos sonidos, y que sean lo más distintos posible en dos cosas concretas: la envolvente y el tono. El módulo 4 interpola esas dos cosas por separado, y si las fuentes se parecen no se ve nada.
Si el grupo trae material propio, la regla es la misma: uno con ataque y otro sostenido. Y ojo con una restricción nueva: casi todo distort exige mono y lo dice en el uso. Si tu fuente es estéreo, channelx separa los canales.
El footgun nuevo: nada de puntos en los directorios
Este merece su propio subtítulo porque cuesta media hora encontrarlo. Varios programas de CDP — modify brassage entre ellos — trabajan con archivos intermedios, y construyen el nombre del temporal insertando _cdptemp1 antes del primer punto de la ruta completa. No del nombre del archivo: de la ruta entera.
ERROR: INVALID DATA
ERROR: Cannot open output file /tmp/con_cdptemp1.qolFSC/g.wav
El error habla de un directorio que nunca escribiste y que no existe. Y lo peor: mktemp -d genera por defecto una plantilla con punto, tmp.XXXXXXXX, así que la forma estándar de hacer un directorio temporal en un script es exactamente la que rompe CDP. Puntos en el nombre del archivo no molestan; en los directorios sí.
T="$(mktemp -d /tmp/cdpXXXXXX)" # sin punto, funciona
03 Las cinco escalas
El mapa de esta parte no son mecanismos, son tamaños de unidad. Todo lo que sigue es elegir uno y aplicarle los mismos cuatro verbos de siempre: tirar, repetir, reordenar, promediar.
Unidad
Tamaño
¿Tiene tono?
En CDP
Muestra
0,023 ms
No
modify speed, modify loudness
Ciclo waveset
1 a 10 ms
Sí, es el tono
distort
Grano
10 a 100 ms
Sí, y timbre
modify brassage
Evento
0,1 a 2 s
Sí, y articulación
submix, sfedit
Textura
segundos
Sí, y armonía
texture
La columna del medio es la que importa. Una muestra sola no tiene tono: es un número. El tono aparece recién cuando hay un patrón que se repite, o sea a partir del ciclo. Por eso operar sobre muestras no puede separar tono de tiempo — no hay ninguna entidad en el modelo que sepa qué es el tono. Subí un escalón y la separación es gratis.
Los cuatro verbos, en cualquier escala
Tirar unidades → distort omit, densidad de grano baja
Promediar unidades → distort average, blur blur en la parte 1
Cómo ubicar un efecto que no conocés
¿Suena metálico, robótico, con zumbido? Escala del ciclo. Los artefactos del waveset tienen un tono propio
¿Suena nublado, texturado, como una nube de partículas? Escala del grano
¿Suena como el mismo sonido en otro lugar? Convolución, y el lugar está en un archivo
¿Suena como dos cosas que se volvieron una? Dos fuentes, y hay que elegir en qué escala mezclarlas
04 El taller
Siete módulos, 3 horas. Igual que en la parte 1: cada módulo tiene una escala, algo que hacés, y el momento en que encaja. Los números de este sitio salen todos de correr los comandos.
Hora
Min
Módulo
Programa
Escala
0:00
15
0 · Contar la unidad
distort cyclecnt
ciclo
0:15
30
1 · La escala del ciclo
distort ×5
ciclo
0:45
30
2 · La escala del grano
modify brassage
grano
1:15
10
pausa
1:25
35
3 · Convolución
fastconv
todas
2:00
25
4 · Dos fuentes, dos escalas
distort interact, morph
ciclo y espectro
2:25
15
5 · El parámetro como función
breakpoint files
—
2:40
20
6 · Compartir
—
—
Módulo 0
Contar la unidad
15 min
Escala El ciclo, y cómo se define
Un programa que no hace nada y enseña todo. Solo cuenta:
distort cyclecnt a.wav
distort cyclecnt b.wav
659 cycles found. ← a.wav, 330 Hz, 2 s
329 cycles found. ← b.wav, 165 Hz, 2 s
Antes de explicar nada, que el grupo mire esos dos números al lado de las dos frecuencias. 330 × 2 = 660. 165 × 2 = 330. Los conteos son 659 y 329.
O sea: lo que CDP llama «waveset» es el período. Un waveset es el tramo entre dos cruces por cero en la misma dirección, y en un sonido periódico eso es exactamente un ciclo de la fundamental. cyclecnt es, sin proponérselo, un medidor de tono: contás y dividís por la duración.
El momento La unidad no se la inventó nadie: está en la señal. Los cruces por cero ya estaban ahí, gratis, sin FFT y sin ventana de análisis. Todo el módulo que sigue se apoya en eso, y también todos sus artefactos: cuando el sonido no es periódico — ruido, un acorde, una consonante — los cruces por cero dejan de coincidir con nada musical, y ahí es donde distort se vuelve raro. Eso no es un bug, es el mapa de cuándo la herramienta aplica.
Módulo 1
La escala del ciclo
30 min
Escala 1 a 10 ms · la familia distort
Los mismos verbos de siempre, aplicados a ciclos en vez de a archivos. Tirar uno de cada dos, dar vuelta grupos de ocho:
distort omit a.wav omit.wav 1 2 # tirar 1 de cada 2 ciclos
distort reverse a.wav rev.wav 8 # dar vuelta grupos de 8 ciclos
distort omit 1 2: la mitad de los ciclos reemplazados por silencio. El contorno queda aserrado y el nivel baja de −15,8 a −18,8 dB, o sea 3 dB — exactamente la mitad de la energía. Pero la duración no se movió y el tono tampoco: sigue en 329,7 Hz. Tiraste la mitad del archivo y el sonido sigue afinado.
Ahí ya hay algo raro que conviene señalar. Sacar la mitad de las muestras alternadas por ciclo no cambia el tono, porque el patrón de repetición sigue estando cada 3,03 ms. Sacar la mitad de las muestras de cualquier otra forma sí lo cambiaría. La unidad protege la frecuencia.
Y ahora la deuda del módulo 2 de la parte 1
distort telescope a.wav corto.wav 4 # 4 ciclos colapsan en 1
distort interpolate a.wav largo.wav 3 # cada ciclo se repite 3 veces
Salida
Duración
Pico
Duración ×
Tono ×
a.wav
2,000 s
329,7 Hz
1,000
1,000
corto.wav
0,498 s
329,1 Hz
0,249
0,998
largo.wav
5,985 s
329,7 Hz
2,992
1,000
Las tres duraciones a una sola escala de tiempo: anchos en relación 1 : 4 : 12, bandas de frecuencia a la misma altura. El reproductor toca la versión corta, 0,498 s. Comparalo con la figura del módulo 6 de la parte 1: es el mismo resultado, y acá no hay ni análisis ni resíntesis.
Comparalo con el módulo 6 de la parte 1, que para estirar ×4 necesitó pvoc anal, stretch time, pvoc synth, un archivo intermedio 16 veces más grande y 0,12 s de cómputo. Acá es un comando, un entero, sin archivo intermedio, y va en las dos direcciones.
La contra es real y hay que decirla: esto suena distinto. stretch time conserva el timbre y suena "suave"; interpolate repite ciclos idénticos y por eso se vuelve estático y un poco metálico, porque un ciclo repetido tres veces es, literalmente, una onda perfectamente periódica. La parte 1 gastó 16× de disco comprando naturalidad.
Un lenguaje diminuto
distort shuffle a.wav shuf.wav abcd-adbc -c2
Ese abcd-adbc es el parámetro entero, y es un lenguaje. A la izquierda del guion, un dominio: cuatro grupos consecutivos de ciclos, llamados a, b, c, d. A la derecha, la imagen: el orden en que salen. Podés reordenar (abcd-adbc), duplicar (abcd-aabbccdd) u omitir (abcd-ac). -c2 dice que cada letra son 2 ciclos.
abcd-adbcpermutación1,988 s · 329,7 Hz
Reordenar ciclos no cambia ni la duración ni el tono. Cambia el timbre.
grupos de 8reverse por cicloRMS idéntico
distort reverse 8: mismo RMS que la fuente, −15,8 dB. No se agregó ni se quitó nada.
Que alguien note en voz alta lo que es ese parámetro: una notación para escribir permutaciones, metida dentro de un argumento de línea de comandos. No es un número ni una bandera. Es sintaxis, con un dominio y una imagen — el vocabulario exacto con el que se define una función en matemática.
El momento Tirar, repetir y reordenar la unidad correcta hace, sin FFT y sin ventanas, casi todo lo que en la parte 1 costó cambiar de representación. El dominio espectral no era el requisito: era una opción, con su propio precio en disco y su propio color. Y el criterio para elegir entre las dos deja de ser "cuál es la buena" y pasa a ser "qué artefacto quiero".
Módulo 2
La escala del grano
30 min
Escala 10 a 100 ms · modify brassage
Un escalón más arriba. Un grano son decenas de milisegundos: ya no es un ciclo, es un pedacito de sonido con timbre propio y ataque propio. modify brassage corta la fuente en granos y los vuelve a pegar, y sus siete modos son siete formas de pegarlos.
Las dos filas resaltadas son el par espejo, y conviene ponerlas una al lado de la otra en el pizarrón. lento.wav dura casi cuatro veces más con el tono quieto. agudo.wav sube 7 semitonos — factor 1,539, y 27/12 = 1,498 — con la duración quieta. Las dos direcciones del desacoplamiento, con el mismo programa, en el dominio del tiempo.
Fijate en el detalle del parámetro del modo 2: no se llama timestretch, se llama velocity, y es la velocidad de avance en el archivo de entrada relativa a la salida. Es el inverso del estiramiento. Esa elección de unidad no es un capricho:
Con velocidad cero el programa no avanza nunca en la entrada: sigue tomando granos del mismo instante para siempre. Eso es el freeze, y es la razón por la que el parámetro es velocidad y no factor de estiramiento — un factor de estiramiento infinito no se puede escribir, una velocidad de cero sí. Por eso también -l pasa a ser obligatorio: sin avance no hay final del archivo, y alguien tiene que decidir cuándo parar. Sin ese flag el programa aborta.
Arriba la fuente, 2,000 s. En el medio brassage 5 con densidad 0,5: los pulsos deshechos en granos, con silencio entre grano y grano — densidad menor a 1 deja huecos. Abajo el congelado: 6,275 s de material continuo sacados de 2 segundos, y podrían haber sido 600.
densidad 0,5granuladoRMS −17,7 dB
velocity 0,25estirado ×3,8tono ×1,016
+7 sttranspuestoduración ×0,964
El momento Ese 0.5 de densidad es el mismo tipo de perilla que el delay del módulo 3 de la parte 1: una sola escala de tiempo que, barrida, produce efectos con nombres distintos. Granos de 5 ms es distorsión; de 50 ms, textura granular; de 200 ms, un eco rítmico; de 2 s, un collage. Y con densidad mayor a 1 los granos se superponen y aparece la reverb. Los catálogos de plugins venden esas cinco cosas en cinco cajas separadas. Son un parámetro.
Módulo 3
Convolución
35 min — el módulo central
Concepto Una operación se come dos mecanismos
Cambio de tema aparente. fastconv toma dos archivos: una señal y una respuesta al impulso. Vamos a construir la respuesta al impulso a mano, con ffmpeg, y a mirarla.
Empezamos por el caso más tonto posible: un impulso de una sola muestra en 1,0.
Guardá eso, porque significa que la operación tiene un elemento neutro y por lo tanto vale la pena preguntarse qué hacen los demás. Ahora tres impulsos más, todos escritos a mano:
S=44100
# dos picos separados 100 ms
ffmpeg -f lavfi -i "aevalsrc='lt(t,1/$S)+0.6*between(t,0.1,0.1+1/$S)':d=0.12:s=$S" \
-ac 1 -c:a pcm_s16le imp_delay.wav
# 64 muestras iguales que suman 1
ffmpeg -f lavfi -i "aevalsrc='(1/64)*lt(t,64/$S)':d=0.01:s=$S" \
-ac 1 -c:a pcm_s16le imp_lopass.wav
# 600 ms de ruido que decae
ffmpeg -f lavfi -i "anoisesrc=c=white:d=0.6:r=$S:a=0.9" \
-af "afade=t=out:st=0:d=0.6:curve=exp" -ac 1 -c:a pcm_s16le imp_reverb.wav
Tres respuestas al impulso, ventana de 150 ms en las tres. Arriba: un pico. En el medio: dos picos separados 100 ms. Abajo: 64 muestras seguidas, o sea 1,45 ms — apenas un bloquecito. Los picos dibujados están ensanchados a 40 muestras y llevados a amplitud plena para que se vean; el impulso que se convoluciona es de una muestra y suma 1.Y esta es la cuarta: 600 ms de ruido que decae. Eso es una reverb. No la representa ni la modela: es la reverb, y la acabás de escribir con una línea de ffmpeg.
Ahora convolucioná la fuente con cada una y mirá qué apareció:
Impulso
Duración
Centroide
>2 kHz
Se llama
— la fuente
2,000 s
772 Hz
4,6 %
—
1 muestra
2,010 s
—
—
identidad
2 picos a 100 ms
2,120 s
—
—
delay
8 muestras de 1/8
2,010 s
587 Hz
2,0 %
lopass
64 muestras de 1/64
2,010 s
420 Hz
0,9 %
lopass más bajo
600 ms de ruido
2,600 s
806 Hz
5,1 %
reverb
b.wav
4,000 s
—
—
cross-síntesis
La fuente, después con 8 muestras, después con 64, después con el ruido. El centroide baja 772 → 587 → 420 Hz y la energía arriba de 2 kHz cae de 4,6 % a 0,9 %: el rectángulo más largo filtra más. La última calle tiene cola donde las otras tienen silencio. Un filtro y una reverb, mismo comando, distinto segundo archivo.
1 muestra= identidadcorrelación 0,999997
El elemento neutro. Es la fuente, y eso es exactamente lo interesante.
Ocho contra sesenta y cuatro: el rectángulo más largo corta más abajo. Compará con el módulo 4 de la parte 1 — ningún programa de filtro tampoco.
b.wav= cross-síntesis4,000 s
Con un sonido entero como impulso: A tocado a través de B. La duración es la suma, 2 + 2.
La regla de la suma 1
El impulso del lopass tiene 64 muestras de valor 1/64, no de valor 1, y eso no es un detalle de estilo. La primera versión de esta figura usaba 64 muestras de 0,9: la suma daba 57,6, la salida se pasó de escala y quedó recortada. Y el recorte es una distorsión, o sea que inventa armónicos justo arriba, donde el filtro los acababa de sacar. El resultado medía un centroide de 788 Hz — más alto que la fuente. Un lopass que sube los agudos.
La suma de la respuesta al impulso es la ganancia del sistema en continua. Si querés que el filtro no cambie el nivel, tiene que sumar 1. Y como después queda bajo de nivel, para eso está -aX.
La discusión — acá se reordena la parte 1
Dos mecanismos eran uno
La parte 1 presentó cuatro mecanismos como independientes. El 2 (desplazar una copia en el tiempo) y el 3 (seleccionar frecuencias) no lo son: los dos son convolución, y lo único que cambia es el impulso. Un delay es un impulso con dos picos. Un filtro es un impulso corto. Una reverb es un impulso largo y ruidoso. Cuatro mecanismos eran tres.
Y el filtro peine se explica solo
En la parte 1 quedó sin explicar por qué un delay de 0,5 ms es un filtro. Ahora es aritmética: un delay es un impulso de dos picos, un filtro es un impulso corto, y un delay de 0,5 ms es un impulso de dos picos separados 22 muestras — o sea un impulso corto. Es las dos cosas porque la distinción nunca existió, solo la escala de tiempo del mismo argumento.
Por qué se llama respuesta al impulso
El nombre dice el método de medición: metele a un sistema un impulso — un click, un globo que explota — y grabá lo que sale. Eso que sale contiene todo lo que el sistema le hace a cualquier señal. Por eso se pueden vender reverbs de catedrales reales: alguien fue con un micrófono, hizo un ruido seco, y el archivo resultante es la catedral.
El momento El que aparece cuando alguien pregunta "¿entonces cualquier sonido es un efecto?" y la respuesta es sí, literalmente, probalo. Un sistema lineal está completamente descrito por su respuesta a un click, y esa descripción es un archivo de audio como cualquier otro: lo podés mirar, editar, invertir, convolucionar con otro. Los efectos dejaron de ser programas y pasaron a ser datos.
Módulo 4
Dos fuentes, dos escalas
25 min
Escala El ciclo y el espectro, con dos entradas
Hasta acá, una fuente. Con dos entra una pregunta nueva: ¿en qué escala se combinan? Porque la respuesta cambia todo. Primero, en la escala del ciclo:
distort interact 1 a.wav b.wav alternado.wav # alternar ciclos de A y B
distort interact 2 a.wav b.wav impuesto.wav # los ciclos de A sobre B
distort interact 2 b.wav a.wav impuesto2.wav # y al revés
Salida
Duración
Pico
Qué pasó
a.wav
2,000 s
329,7 Hz
—
b.wav
2,000 s
165,6 Hz
—
alternado.wav
3,000 s
107 Hz
la alternancia es un período nuevo
impuesto.wav
0,997 s
328 Hz
timbre de B, tono de A
impuesto2.wav
1,994 s
166 Hz
timbre de A, tono de B
Las dos filas resaltadas son cross-síntesis, y sin una sola FFT. El modo 2 impone los largos de ciclo del primer archivo sobre las formas de onda del segundo: el contenido es de B y la frecuencia es de A. Eso es lo que hace un vocoder, y acá sale de contar cruces por cero. Fijate también en la duración: impuesto.wav dura la mitad, porque los ciclos de A son la mitad de largos que los de B y los 329 ciclos de B tuvieron que entrar en el molde de A.
interact 2A sobre B0,997 s · 328 Hz
interact 1ciclos alternados3,000 s · 107 Hz
Alternar ciclos crea un período que no está en ninguna de las dos fuentes: 107 Hz, un subarmónico de la alternancia misma.
Y ahora en el espectro, donde hay dos campos
Acá vuelve el hallazgo del módulo 7 de la parte 1. Un frame espectral tiene dos números por bin: amplitud y frecuencia. En la parte 1 los rompimos por separado para descubrir que uno es local y el otro es estado. Ahora los vamos a interpolar por separado, que es la versión constructiva de lo mismo.
as y ae son cuándo empieza y termina la interpolación de amplitud. fs y fe, la de frecuencia. Son cuatro tiempos independientes, y ahí está todo el módulo: podés cruzar la envolvente en el primer medio segundo y las frecuencias recién al final.
Archivo
a los ~1,0 s
energía 165/330 Hz
planitud
a.wavpercusivo, 330
0,00
0,20
b.wavsostenido, 165
1,67
1,00
juntos.wav
0,09
0,64
desfasado.wav
0,01
0,95
Leé la última fila despacio, porque es un sonido que no existe en ninguna de las dos fuentes. A un segundo del comienzo, desfasado.wav tiene la envolvente de B — planitud 0,95, o sea sostenido, cuando A vale 0,20 — y a la vez las frecuencias de A: la razón 165/330 vale 0,01, igual que A, contra 1,67 de B. Sostenido como B, afinado como A.
juntosamplitud y frecuencia a la vez0,2 → 1,8 s
Una sola transición. Se parece a un crossfade largo, y de hecho es lo más cerca que esto llega a un crossfade.
Escuchalos uno atrás del otro. En el medio del segundo hay un sonido sostenido como B pero afinado como A, que no existe en ninguna de las dos fuentes.
A, B, el morph simultáneo y el desfasado. Mirá cuándo se llenan los huecos entre pulsos: en la tercera calle, de a poco a lo largo de todo el ancho; en la cuarta, casi en el primer cuarto, porque la interpolación de amplitud terminó en 0,6 s. La envolvente ya cruzó y las frecuencias todavía no.
El momento Un morph no es un crossfade. Un crossfade tiene una perilla; esto tiene dos, y se pueden mover en momentos distintos, porque la representación tiene dos campos separados. Y son exactamente los dos campos que en la parte 1 rompimos a martillazos para descubrir cuál era estado. El mismo hecho sobre el formato explica un bug y habilita un efecto: eso es lo que significa entender una representación.
Módulo 5
El parámetro como función
15 min
Concepto De comando a programa
Último movimiento, y es chico de escribir y grande de consecuencias. Casi todos los parámetros de CDP aceptan, en lugar de un número, un archivo de texto de dos columnas: tiempo y valor.
Tres líneas de texto y la ganancia ya no es un número: es una función del tiempo. Las reglas de interpolación no están documentadas con precisión, así que las medimos. La ganancia efectiva, comparando la salida contra la fuente:
t
Ganancia medida
Lineal esperada
0,00 s
0,100
0,100
0,25 s
0,326
0,325
0,50 s
0,550
0,550
0,75 s
0,776
0,775
1,00 s
1,000
1,000
1,25 s
0,774
0,775
1,50 s
0,550
0,550
1,75 s
0,324
0,325
Coincide con la recta a la tercera decimal, en las dos direcciones. La interpolación es lineal entre puntos, sin curvas y sin sorpresas. Y de ahí sale la regla práctica: si querés un escalón, poné dos puntos muy cerca.
Cuatro pulsos iguales, y los mismos cuatro con ganancias 0,101 · 0,559 · 0,975 · 0,559. El triángulo del archivo de texto, dibujado por los pulsos.
El momento Con un número, un comando de CDP es una operación. Con un archivo de breakpoints, es un programa con una línea de tiempo. Y como la salida de un comando es la entrada del siguiente, y como los parámetros son archivos de texto que otro programa puede generar, tenés un sistema entero: datos, control y composición, en tres formatos de archivo que se leen con cat. Eso es lo que CDP es en realidad, y por eso sobrevivió cuarenta años.
Módulo 6
Compartir
20 min
Concepto Cierre y evaluación
Cada uno arma una cadena de al menos tres pasos en dos escalas distintas, exporta 20 segundos, y dice una frase: en qué escala trabaja cada paso.
El pedido extra de esta parte: que cada uno entregue también su respuesta al impulso, el archivo. Es de dos líneas de ffmpeg y es la prueba de que el módulo 3 aterrizó — un efecto que se entrega como dato y no como receta.
El momento El que aparece cuando alguien escucha una cadena ajena y dice "eso está granulado, no filtrado". Escuchar la escala en vez del efecto es la habilidad completa que las dos partes de este taller intentan enseñar.
05 Lo que queda afuera
Entre las dos partes usamos unos 15 de los 220 programas. Lo que sigue afuera, y por qué:
Afuera
Por qué
Texturas (texture, 13 modos)
Necesita archivos de datos de notas. Es la escala del evento y es una parte 3
Mezcla por archivo (submix, 25 modos)
Un mixfile es un lenguaje entero. Merece sesión propia
La familia envel (17 modos)
Extraer, imponer y reescribir envolventes. Se solapa con el módulo 5
Edición (sfedit)
Es edición, no efectos
morph glide y morph bridge
Variantes del módulo 4 una vez que se entendió
Los otros modos de distort
Quedan 15. Con el módulo 1 se predicen casi todos
brassage modo 7 full monty
16 parámetros. Es el modo 6 con rangos, después de dominar el 6
Multicanal y espacialización
Necesita monitoreo que un taller portátil no tiene
06 Para seguir
Convolucionar un sonido con sí mismo, y otra vez
La autoconvolución al cuadrado, al cubo, a la cuarta. La duración crece como la suma y el espectro se concentra: cada pasada multiplica el espectro por sí mismo, así que lo fuerte se hace más fuerte y lo débil desaparece. Después de cuatro pasadas cualquier sonido se convierte en una campana. Mirá la duración en cada paso y explicá por qué crece así.
cp a.wav x0.wav
for i in 1 2 3 4; do fastconv -a2.0 x$((i-1)).wav a.wav x$i.wav; done
for f in x*.wav; do sndinfo props $f | grep -i samples; done
Reportar el bug de los impulsos en texto
Ejercicio real de ingeniería: aislá el problema al mínimo caso reproducible (un impulso de un valor), documentá qué esperabas y qué pasó, probá si el mismo impulso como WAV funciona para descartar todo lo demás, y escribilo. El repo de CDP está en GitHub. Un reporte con reproducción mínima vale más que cualquier ejercicio inventado.
Medir dónde deja de servir el waveset
Corré distort cyclecnt sobre material cada vez menos periódico: un seno, una guitarra, una voz, un acorde, ruido rosa. Anotá el conteo y compará con el tono real. Encontrá el punto donde el número deja de significar algo. Ese punto es el borde de aplicabilidad de toda la familia distort, y saber dónde está una herramienta vale tanto como saber usarla.
Barrer el tamaño de grano de 2 ms a 2 s
Con modify brassage 6, fijá todo menos grainsize y barré cinco órdenes de magnitud. Ponéle nombre a cada zona de oído, igual que con el delay en la parte 1. Es el mismo ejercicio, una escala más arriba, y cierra el arco de las dos partes.
for g in 2 10 50 200 1000; do
modify brassage 6 a.wav g$g.wav 0.5 2 $g 0 1 0.5 1 1
done
Un impulso invertido en el tiempo
Convolucioná con una reverb dada vuelta (modify radical 1 sobre el impulso). Sale el efecto de reverb inversa, el que en los 80 se hacía con cinta al revés. Es un impulso más, y llegar a él razonando en vez de buscando un preset es la prueba de que el módulo 3 quedó.