Aratu lenguaje orientado a la performance musical y la composición algorítmica

17. Sonidos y efectos

▶ Abrir en Aratu para escuchar y cambiar los ejemplos

Cada parte tiene un sonido y una cadena de efectos, escrita como el camino de la señal:

bajo: synth.saw -> lowpass -> reverb
bajo = | do2 _ do2 mib2 | fa2 _ sol2 sib1 |
bajo {
  reverb.mix = 0.42
  lowpass.cutoff = 800 Hz
  lowpass.resonance = 0.3
}

Cada número que ajusta un parámetro también es un control: el editor dibuja una perilla al lado, con la forma del parámetro (la de cutoff se mueve en hercios en una escala logarítmica, la de mix de 0 a 1). Girar la perilla reescribe el número, así que guardar el texto guarda la presentación. Mantén Shift para pasos más finos. Un número escrito en otra unidad la conserva: 1.2 kHz gira en kilohercios, 40% en porcentaje.

Los efectos son los de Manguebyte, y entran en la cadena en cualquier orden (bajo: synth.saw -> eq -> chorus -> delay); el motor los ejecuta siempre en el mismo orden, del filtro al delay:

Efecto Parámetros
la parte volume (0 a 1), pan (-1 izquierda a 1 derecha), reverb.mix (cuánto va a la reverb de la mezcla, 0 a 1)
highpass, lowpass cutoff (20 a 20000 Hz), resonance (0 a 1)
eq low_gain, mid_gain, high_gain (-24 a 24 dB), low_freq, mid_freq, high_freq, mid_q
drive amount (0 a 36 dB), output, mix, shape (0 suave, 1 blando, 2 duro, 3 plegado, 4 válvula)
bitcrush bits (1 a 16), rate (Hz), mix
compressor threshold, ratio, attack, release, knee, makeup, mix
chorus, flanger, phaser mix, rate, depth, y más: voices, feedback, stages…
tremolo, autopan rate, depth, shape (0 senoide, 1 triángulo, 2 cuadrada, 3 y 4 sierra), sync (en tiempos)
delay time (en s o ms), feedback, mix, damping, pingpong, sync (en tiempos)
tube (valvula) drive (0 a 24 dB), output, mix: el drive de Manguebyte con su curva de válvula (forma 4), que aplana la parte de arriba de la onda antes que la de abajo y añade armónicos pares; en una cadena, o la válvula o el drive

Al lado de eq, tube, drive, lowpass y highpass en una cadena, el editor dibuja la curva del efecto con los números de la parte: la respuesta del ecualizador y de los filtros, de los graves a los agudos, y cuánto aplanan el sonido el drive y la válvula. La curva del eq, con un clic, abre un ecualizador cuyos puntos de graves, medios y agudos se arrastran; los números se reescriben en el código, o se escriben debajo de la cadena cuando todavía no están.

Los sonidos. Cada sonido tiene un código, escrito al principio de la cadena: bajo: bass.slap -> reverb, drums: drums.808, piano: piano.grand. El panel Sonidos, junto a los mensajes en Tocar, los muestra todos por familia (baterías, teclados, láminas y campanas, cuerdas pulsadas, cuerdas frotadas, bajos, vientos, voces, sintetizadores), toca un compás de cada uno y pone el código en el texto con un clic. Un código que no existe se avisa, con el más parecido: "¿quisiste decir bass.slap?". Sin código, la batería, la guitarra y los acordes eligen solos.

Algunos sonidos tocan con el acento: en bass.slap la nota normal es el pulgar y la mayúscula es el pop, la cuerda tirada (| mi2 Mi3 mi2 Mi3 |); en bass.acid la mayúscula abre el filtro, como el accent de la TB-303.

Los sonidos marcados como grabados (pianos, clave, órgano de tubos, arpa, marimba, vibráfono, xilófono, glockenspiel, kalimba, campanas tubulares, saxo tenor, armónica, flauta dulce y la batería acústica) son grabaciones de la Versilian Community Sample Library, de dominio público (CC0), descargadas la primera vez que una pieza las usa. Mientras llegan, suena en su lugar un sonido sintetizado parecido. Vienen a la frecuencia con que se grabaron, en estéreo (la armónica, grabada en mono, en mono). Los pianos, el órgano de tubos, el arpa, la marimba, el vibráfono, el xilófono y el glockenspiel, las campanas tubulares, el saxo tenor, la armónica y las piezas de la batería acústica (salvo el hi-hat abierto y el aro) tienen grabaciones en dos o tres dinámicas: cuanto más suave la nota, más suave y oscura la grabación que toca, y cuanto más fuerte, más brillante (f, ff y un acento sobre mf llegan a la más fuerte; en la batería, una nota fantasma (s) toca la más suave). En el órgano las dos son registros, uno discreto y uno fuerte; en la armónica, las grabaciones fuertes se tocan con acento. En el piano vertical y en la batería, las notas grabadas más de una vez alternan sus tomas. Los demás sonidos se sintetizan en el navegador.

La batería grabada de Alesson (drums.alesson) la grabó Alesson Queiroz y también es de dominio público (CC0). Bombo, caja y crash son grabaciones, con varias tomas de cada uno que se turnan; en la caja, la nota fantasma (s) y las dinámicas más suaves tocan un golpe leve, y los acentos, uno más fuerte. Las demás piezas (hi-hats, ride, toms) son sintetizadas.

El motor de Manguebyte. Todos los sonidos del panel suenan con el motor de Manguebyte, el motor de audio del ecosistema, que funciona en el navegador: los grabados en un sampler; guitarras y bajos (guitar.nylon, guitar.steel, bass.finger, bass.slap) en cuerdas modeladas; el piano eléctrico y la campana (keys.epiano, keys.bell) en FM; el órgano (keys.organ) con su caja rotativa, cuya velocidad es organ.rotary (0 parada, 1 lenta, 2 rápida); el bajo 808 (bass.808), el acid (bass.acid) y los sintetizadores (synth.*); las baterías electrónicas (drums.808, drums.909, drums.606, drums.cr78, drums.trap, drums.house, drums.techno, drums.dnb, drums.lofi, y drums.modeled, cuyas piezas se modelan mientras suenan) en su caja de ritmos; los códigos poly.*, los sonidos listos de su sintetizador polifónico; la celesta y el steelpan (mallets.celesta, mallets.steelpan) en láminas modeladas; las cuerdas frotadas (strings.*, también en pizzicato), los vientos (flute, clarinet, sax, trumpet, trombone) y las voces (choir.aah, choir.ooh, voice.solo) como instrumentos modelados. Cada parte tiene sus efectos en el motor, y la mezcla pasa por una reverb compartida, un compresor de pegamento y un limitador. La percusión brasileña (pandeiro, zabumba, triángulo, agogó, surdo, tamborim, alfaia, gonguê, ganzá, cuíca y cajón), el golpe y la palmada suenan en la caja de ritmos de Manguebyte, modelados, iguales en todos los kits: cuando el sonido de la parte no tiene teclas para ellos (drums.kit, drums.acoustic, una guitarra en su golpe), una caja de ritmos los toca a su lado, con los efectos y los números de la parte. Un motor provisional toca una voz grabada cuya descarga falló; si algo sale mal en una presentación, el interruptor del panel Sonidos apaga Manguebyte y todo pasa al provisional.

Un sonido solo suena después de descargado. Al pulsar Tocar o Escuchar, Aratu espera a que lleguen los sonidos de la pieza, y un aviso abajo de la pantalla muestra cuáles se están descargando. Un sonido cambiado con la música sonando entra cuando llega; hasta entonces sigue el anterior. Si una descarga falla, o no responde en 60 segundos, el mismo aviso dice qué sonido, por qué, y qué suena en su lugar: la copia del motor provisional o un sonido parecido.

Los parámetros pueden cambiar por compás como todo lo demás: at bar 16: bajo.reverb.mix = 0.65.