Laboratorio de Síntesis con SC

El punto de partida del cuaderno técnico

Esta primera sesión fija el vocabulario que luego se expande hacia la rítmica, la granularidad y la arquitectura temporal: ProxySpace, control en vivo y patches pensados como procesos abiertos.

Sesión 01 de 06 ProxySpace Síntesis sustractiva
Código de SuperCollider empleado como imagen de apertura de la sesión

Esta primera sesión arranca con un objetivo simple: construir un ~pad en ProxySpace a partir de ruido filtrado. En el proceso aparecen cuestiones más ricas de lo previsto: cómo controlar arrays dentro de NodeProxy, cómo obtener paneo realmente independiente por voz, qué cambia al decorrelacionar las fuentes de ruido y cómo una síntesis inicialmente sustractiva empuja casi sola hacia la resonancia y la organización armónica en tiempo real.

Material de partida: notas del documento de estudio y patch en .scd.

Idea central: usar un pad como objeto de aprendizaje, no como preset cerrado.

Estado: sesión abierta a futuras ampliaciones dentro del mismo hilo de estudio.

Punto de partida

La sesión comienza con un banco de filtros BPF excitados por BrownNoise. A nivel de escucha, el interés está en producir un pad inestable, respirado y ligeramente granular. A nivel técnico, el patch se convierte pronto en una excusa excelente para revisar varias cosas fundamentales de SuperCollider: qué ocurre cuando un array vive en sclang y no en scsynth, cómo se distribuyen las voces en estéreo y cómo pequeñas modulaciones lentas cambian por completo la sensación de profundidad.

Lo más valioso del proceso no es solo el sonido final, sino la cadena de decisiones: por qué var funciona donde arg falla en NodeProxy, por qué Pan2 más .flop es más preciso que Splay para este caso, y por qué una misma estructura armónica puede abrirse luego hacia Klank, Ringz y Tdef sin rehacer la lógica del patch desde cero.

Seis hallazgos que ordenan la sesión

1. Arrays en ProxySpace

var sirve para arrays fijos. \notes.kr([...]) sirve para arrays modificables en tiempo real. Ese giro organiza el resto del patch.

2. Paneo por voz

Splay no resuelve bien el movimiento independiente. Pan2 y Mix(sig.flop[n]) sí lo hacen con claridad.

3. Ruido decorrelacionado

Varias fuentes de ruido independientes limpian la mezcla y dejan emerger mejor los centros tonales de cada filtro.

4. Modulación lenta

Las frecuencias de LFO basadas en Fibonacci dan una irregularidad organizada, menos mecánica y menos sincronizada.

5. Resonancia

El mismo material armónico puede pasar de BPF a Klank y Ringz, cambiando más la física del sonido que la idea musical.

6. Armonía móvil

Con Tdef el patch deja de ser una foto y se vuelve proceso: la armonía entra como capa temporal sin recompilar el NodeProxy.

El patch base que queda de la sesión

Esta es la versión que mejor resume la fase sustractiva del estudio. Mantiene el pad sobre ruido filtrado, incorpora control armónico en tiempo real y ya deja abiertas las variaciones futuras sin rehacer la arquitectura del parche.

~pad = {
    var sig, pans, amp, fib, src, notes;
    notes = \notes.kr([60, 67, 72, 76, 79, 83]);
    fib = [1, 2, 3, 5, 8, 13] * (0.08 / 13);
    pans = LFNoise1.kr(Array.fill(6, { rrand(0.05, 0.3) })).range(-1, 1);
    amp = LFNoise1.kr(fib).range(0, 1);

    src = BrownNoise.ar({ 0.1 } ! 6) + BrownNoise.ar(0.05);
    src = src + SinOsc.ar(notes.midicps, 0, 0.02);

    sig = BPF.ar(src, notes.midicps, 0.005, 1);
    sig = sig * amp * 3;
    sig = Pan2.ar(sig, pans);
    sig = [Mix(sig.flop[0]), Mix(sig.flop[1])];
};

El uso de \notes.kr es la pieza clave para poder mover la armonía desde fuera del NodeProxy.

A partir de ahí, Tdef permite ciclar acordes sin recompilar. Ese paso es importante porque convierte un patch tímbrico en un objeto estructural: ya no solo diseña color, también organiza recorrido armónico.

~chords = [
    [60, 67, 72, 76, 79, 83],
    [57, 64, 69, 72, 76, 81],
    [53, 60, 65, 69, 72, 77],
    [55, 62, 67, 71, 74, 79]
];

Tdef(\armonia, {
    var i = 0;
    loop {
        ~pad.set(\notes, ~chords[i % ~chords.size]);
        i = i + 1;
        8.wait;
    }
}).play;

Expansiones dentro de la misma sesión

Aunque la sesión nace como síntesis sustractiva, el propio material empuja hacia otra pregunta: qué pasa si en lugar de filtrar una fuente continua dejamos que el sonido resuene como cuerpo? Ahí entran Klank y Ringz. No aparecen como capítulo independiente, sino como prolongación natural del mismo problema.

Con Klank, la energía se acumula y decae. Con Ringz más Dust, el comportamiento ya no se parece a un pad clásico, sino a una nube de golpes microscópicos y resonancias espaciadas. El interés de dejar estas versiones dentro de la misma sesión es precisamente mostrar continuidad: misma lógica de alturas, otra física del sonido.

~padRes = {
    var notes, pans, amp, fib, src, rings, sig;
    notes = [40, 45, 60, 67, 72, 76, 79, 83];
    fib = [1, 2, 3, 5, 8, 13, 21, 34] * (0.08 / 34);
    pans = LFNoise1.kr(Array.fill(8, { rrand(0.05, 0.3) })).range(-1, 1);
    amp = LFNoise1.kr(fib).range(0, 1);
    rings = LFNoise1.kr(Array.fill(8, { rrand(0.1, 0.4) })).range(0.5, 6.0);

    src = Dust.ar({ rrand(1.0, 8.0) } ! 8, 0.3);
    sig = Ringz.ar(src, notes.midicps, rings);
    sig = sig * amp * 0.4;
    sig = Pan2.ar(sig, pans);
    sig = [Mix(sig.flop[0]), Mix(sig.flop[1])];
};

La sesión deja una idea de método: estudiar un patch no es fijarlo, sino someterlo a variaciones que revelen su estructura.

Por dónde seguir

La siguiente ampliación natural de esta sesión podría ir por tres caminos: trabajar mejor el comportamiento del filtro y sus envolventes, separar una sesión específica de resonadores, o convertir este mismo ~pad en material para composición lenta y transiciones de larga duración.

  • hacer una versión centrada solo en rq, barridos y envolventes de filtro;
  • abrir una sesión propia para Klank y Ringz como síntesis por resonancia;
  • llevar este patch hacia una pieza más estable con cambios armónicos, capas y automatización.

Seguir en el laboratorio

Laboratorio de Síntesis con SC Volver al archivo principal de sesiones y al planteamiento general de la sección. Curtis Roads · Audio Digital Lectura de apoyo integrada en el laboratorio: capítulos 1 y 2 traducidos y comentados. Abrir patch de la sesión Versión de trabajo del código base publicada junto a esta primera sesión.