Síntesis de sonido

Síntesis de sonido

by MicroBlocks

Boards
Boards:

ESP32

Component/s
Components:

Speaker

Configuración

Para esta actividad necesitaréis alguna manera de transportar una señal eléctrica desde la placa hacia un altavoz. La manera más sencilla de hacerlo es simplemente conectar un pequeño altavoz o un conector minijack al pin DAC o PWM de la placa. En el caso del ESP32, el DAC está disponible en el pin 25, pero tiene una resolución muy baja, de manera que obtendréis un sonido mucho mejor si conectáis con un pin PWM. En esta actividad utilizaremos el pin A0, que equivale al pin 2 del ESP32, pero cualquier otro pin PWM también servirá.

La conexión es muy sencilla. El terminal positivo se debe conectar al pin PWM y el terminal negativo a tierra (GND). Si usáis un módulo de altavoz como el de la imagen, es probable que tenga un conector que encaje en un puerto PWM analógico de vuestra placa.

Un Poco de Teoría

¿Qué es el Sonido?

Sentimos el sonido cuando el aire en movimiento llega a nuestros oídos. El sonido es, simplificándolo mucho, aire en movimiento. Estamos sumergidos en un gran volumen de fluido —el aire— que puede verse alterado cuando determinados objetos se mueven dentro de él. Estas perturbaciones se propagan por el fluido y pueden acabar llegando a una membrana extremadamente sensible —el tímpano— situada en el interior del oído, la cual genera señales eléctricas proporcionales a la magnitud de dichas perturbaciones. Estas señales acaban llegando al cerebro, que las interpreta como sonidos.

Los instrumentos constituyen una categoría muy especial de objetos capaces de generar sonido. Todos los instrumentos armónicos —es decir, prácticamente todos los instrumentos que pueden producir notas diferentes— vibran de manera que su sonido se puede describir como la combinación de varias ondas sinusoidales.

¿Qué es una Onda Sonora?

Una onda sonora no es más que una sucesión de niveles de presión sonora. Igual que una piedra lanzada al agua crea una serie de ondas en su superficie, un objeto que genera sonido crea una serie de ondas en el aire. No se pueden ver como las ondas del agua, pero sí se pueden percibir con el sentido del oído o, si el sonido es extremadamente fuerte y grave, incluso con todo el cuerpo.

Una onda sinusoidal es el tipo particular de onda que veríais al lanzar una piedra a un lago. Es una onda que transita repetidamente y de manera suave entre un pico alto y un pico bajo.

Una onda sinusoidal, como ya hemos dicho antes, es también el tipo de onda que generan los instrumentos armónicos. El sonido que emiten estos instrumentos normalmente corresponde a la suma de varias ondas sinusoidales simultáneas, igual que cuando se lanzan varias piedras todas a la vez en un lago.

Dispositivos Electrónicos de Sonido

Como suele ocurrir, la tecnología se inspira en la naturaleza. Los micrófonos funcionan de una manera muy parecida a los oídos. Una membrana fina y muy sensible recibe las vibraciones del aire, y estas vibraciones se transforman en niveles de tensión eléctrica mediante un electroimán. Estas señales se transmiten después a cualquier equipo de audio.

Curiosamente, en el caso de los micrófonos este proceso también es reversible. Un altavoz no es más que un micrófono funcionando al revés. Cuando se envía corriente eléctrica a un altavoz, un electroimán mueve una membrana de manera proporcional, y esto genera vibraciones en el aire que reproducen el mismo sonido que había originado aquellas señales eléctricas.

Música Electrónica

Con la invención del altavoz, por primera vez en la historia de la humanidad, tuvimos la libertad de generar cualquier tipo de onda que quisiéramos, y no solo aquellas que pueden producirse mediante la vibración de materiales naturales. Es decir, ya no necesitábamos pulsar una cuerda, golpear una membrana ni hacer pasar aire a presión por un tubo. Podíamos dar a una onda sonora la forma más arbitraria que quisiéramos.

El altavoz, junto con cualquier artilugio generador de señales que le conectemos, ha dado lugar a sonidos que la humanidad nunca había oído antes. La música electrónica es aquella que aprovecha esta nueva forma de generar ondas sonoras.

Así que, si queréis crear música electrónica, ¡más vale que empezar por ver cómo generar algunas ondas diferentes!

Generación de una Onda Sencilla

Como hemos visto, una onda eléctrica no es más que una secuencia de tensiones. La sucesión más sencilla que podemos imaginar es aquella que cambia bruscamente de un valor a otro a intervalos regulares.

Como vuestro altavoz está conectado al pin 2 (A0), el siguiente código debería cambiar el nivel de tensión en ese pin alternativamente cada 3 milisegundos:

Si todo va bien, deberíais oír un sonido como este:


Esto es lo que llamamos una onda cuadrada, y si abrís el archivo de audio en un editor de sonido y ampliáis la vista, veréis inmediatamente por qué recibe este nombre:

El mundo físico nunca es perfecto, pero esta onda se aproxima bastante a ángulos de 90° en cada transición entre los niveles de tensión bajo y alto. Estos ángulos rectos son los que dan nombre a esta onda.

Ahora echad un vistazo a los dos parámetros que podéis modificar en el código anterior y escuchad qué efecto provocan en la onda cuadrada resultante. El primero es el intervalo con que los valores cambian de bajo a alto. Probad a duplicarlo, pasando de 3 milisegundos a 6:


Aumentar el intervalo da como resultado un sonido más grave. En concreto, duplicar el intervalo hace que el sonido sea una octava más baja.

Si observáis la onda, también veréis algo muy interesante:

Así pues, parece que la componente horizontal de una onda determina su altura tonal. En la terminología de las ondas, esta característica se llama frecuencia. Cuanto más alta es la frecuencia, más a menudo se repite la onda y más agudo es el sonido.

Ahora modificad el otro parámetro: el valor que se asigna al pin. El valor inicial era 512, así que ahora probad a reducirlo a la mitad:


El audio resultante suena más flojo, y la forma de la onda también lo refleja:

Podéis ver que la componente vertical de una onda determina su volumen. En terminología de las ondas, esta característica recibe el nombre de amplitud. Cuanto mayor sea la amplitud, más estirada verticalmente será la onda y más alto será su volumen.

La Biblioteca Síntesis Analógica

Generar ondas escribiendo directamente los valores en el bloque de escritura analógica es un ejercicio interesante porque permite ver cómo las variaciones de tensión afectan directamente al sonido que se genera, pero bien pronto se convierte en una tarea tediosa.

Por eso, MicroBlocks proporciona una biblioteca que abstrae buena parte de estos conceptos para que podáis centraros en modelar el sonido y crear música. Empecemos importando la biblioteca Síntesis analógica desde la carpeta Sonido del navegador de bibliotecas.

Formas de Onda

La biblioteca Síntesis analógica proporciona bloques para las cinco formas de onda fundamentales de la síntesis sonora: sinusoidal, cuadrada, triangular, diente de sierra y ruido.

Dedicad unos minutos a experimentar con estas diferentes formas de onda y observad cómo suenan. Probad a modificar sus frecuencias —el primer parámetro— y amplitudes —el segundo—, y observad cómo esto afecta a su altura y volumen. Tened en cuenta que la biblioteca Síntesis analógica proporciona un rango de amplitudes muy amplio —de 0 a 32768— de manera que tengáis suficiente resolución para mezclar varias ondas.

En primer lugar, debéis configurar la biblioteca para que envíe el sonido al pin PWM donde habéis conectado el altavoz. En nuestro caso, este es el pin digital 2 (A0).

Ahora debéis pedir a la biblioteca Síntesis analógica que genere continuamente la forma de onda que queremos escuchar:


Si no oís nada, lo primero que hay que hacer es subir el volumen. Algunas ondas pueden ser muy silenciosas, especialmente en comparación con la primera prueba donde se escribían los valores directamente al pin PWM.

La siguiente prueba que vale la pena hacer es sumar unas cuantas ondas. La manera más sencilla de hacerlo es simplemente sumarlas aritméticamente utilizando el bloque:


En algún momento tendréis que sumar muchas ondas y la cantidad de bloques + anidados se hará difícil de gestionar. Por eso os sugerimos que utilicéis el bloque sum , que también podréis encontrar en la categoría Operadores, al final del segundo grupo de bloques.


Podéis probar diferentes relaciones entre frecuencias y amplitudes y observar cómo afectan al timbre final del sonido. También podéis utilizar una onda para modular la frecuencia o la amplitud de otra:



Puertas y Disparadores

Ahora que habéis estado experimentando con la creación de texturas sonoras, estaría bien poder utilizarlas como instrumentos para interpretar patrones y melodías.

La biblioteca Síntesis Analógica se inspira en los sintetizadores físicos, donde los generadores de sonido están "cerrados" detrás de una puerta (gate). Estas puertas se pueden abrir o disparar (trigger) a demanda, ya sea pulsando una tecla del teclado, enviando una señal específica al sintetizador o por algún otro medio.

La biblioteca proporciona unos cuantos generadores con puerta, uno para cada una de las formas de onda básicas.

Probad uno.

Ahora, si ejecutáis este script, no pasará nada. Esto es porque las puertas permanecen cerradas hasta que algún elemento las dispara. Para reproducir una nota en una puerta solo hay que utilizar el bloque toca la nota MIDI.


Fijaos que el bloque toca la nota MIDI espera como parámetro una tecla MIDI. En pocas palabras, MIDI es un estándar que prácticamente todos los instrumentos electrónicos entienden. Las notas MIDI se especifican mediante números: el valor 60 corresponde al Do central de un piano (normalmente C3) y cada unidad representa un semitono.

Probad a utilizar una lista de números para definir una melodía y reproducirla a través de una puerta:


Envolventes Acústicos

Otro concepto que la biblioteca Síntesis analógica toma de los sintetizadores es la idea de envolvente acústica (envelope). Una envolvente acústica es, en pocas palabras, la indicación de cuánto tiempo debería tardar una puerta en abrirse —ataque— y cuánto tiempo debería tardar en cerrarse —extinción—.

Tipos de envolventes acústicos

Hay muchos tipos diferentes de envolventes acústicas, pero la biblioteca Síntesis analógica utiliza la más sencilla de todas: el Ataque-extinción lineal (linear Attack-Release, abreviado AR). Otros sistemas pueden añadir más etapas a la envolvente o permitir definir una forma -una función- para alguna o todas las etapas.

Para definir la envolvente acústica para una puerta concreta podéis utilizar el siguiente bloque:

Ahora es un buen momento para experimentar con diferentes valores de ataque y de extinción para familiarizaros con el efecto que cada uno tiene sobre el sonido final.

Sintetizar Instrumentos Simples

Xilófono

Con todas estas herramientas ya podéis crear aproximaciones sencillas de algunos instrumentos acústicos. Por ejemplo, sabemos que un xilófono debe tener un ataque muy corto. Cuando se golpea una lámina, el sonido llega casi instantáneamente a su amplitud máxima. A continuación, la nota empieza a decaer casi inmediatamente, sin mantener el volumen durante mucho tiempo. Con esta información, y sabiendo que todos los instrumentos armónicos producen sonidos basados en ondas sinusoidales, podéis configurar un xilófono con los siguientes valores:


Flauta

Una flauta, en cambio, tardará un poco en vibrar a pleno volumen. Por tanto, el tiempo de ataque será un poco más largo. Después podéis mantener la nota tanto tiempo como queráis, o mientras os lo permitan los pulmones. Cuando se deja de soplar, el sonido decae con bastante rapidez, pero no de manera brusca. En consecuencia, el tiempo de extinción debería ser relativamente corto, pero no demasiado.

Algo así debería ir bien:


Sintetizar Instrumentos No-Tan-Simples

Sin embargo, hay algo que no acaba de cuadrar. Pensad en las envolventes acústicas de un piano y de un violín.

Cuando se pulsa una tecla del piano, se activa un pequeño martillo que golpea una cuerda casi instantáneamente. Entonces, el sonido empieza a decaer casi al instante, sin mantener el volumen mucho tiempo.

En cambio, cuando se frota el arco sobre la cuerda de un violín, el sonido aumenta gradualmente hasta llegar a su volumen máximo. El volumen se mantiene mientras se frota la cuerda, y luego el sonido decae bastante rápidamente, pero no de manera brusca.

Si estas descripciones os resultan familiares es porque describen las mismas envolventes acústicas del xilófono y la flauta. Obviamente, sin embargo, un piano y un xilófono suenan de manera claramente diferente, como también lo hacen una flauta y un violín.

Entonces, ¿qué hace que estos instrumentos tengan sonidos tan diferentes?

Timbre

El timbre es la característica que da a cada instrumento su personalidad; es lo que permite distinguir dos instrumentos aunque toquen la misma nota exacta con el mismo volumen. La envolvente acústica forma parte de lo que define el timbre, pero hay otra característica física igual de importante: el espectro de frecuencias.

Cuando se pulsa una tecla de un piano, el martillo golpea una única cuerda, pero esta vibración hace que muchas otras cuerdas también vibren por simpatía a frecuencias que son múltiplos superiores o inferiores de la nota particular que se ha tocado. Además, la misma cuerda golpeada no vibra de una manera puramente sinusoidal. Vibra igualmente con una mezcla de frecuencias que también son múltiplos enteros de la frecuencia fundamental.

Estas frecuencias adicionales son lo que, en teoría musical, se llaman armónicos (overtones).

Ya lo hemos insinuado, pero es importante remarcar que las frecuencias de estos armónicos mantienen siempre una relación de múltiplos enteros con la nota principal. Esto significa que, si tocáis una nota A4, que tiene una frecuencia de 440 Hz, sus armónicos aparecerán a 880 Hz, 1760 Hz, 3520 Hz, 7040 Hz, etc. Algunos de estos armónicos serán tan débiles que prácticamente no contribuirán al timbre, mientras que otros tendrán casi el mismo volumen que la frecuencia fundamental. En algunos instrumentos, los sobretonos también pueden ir en la dirección contraria, con un tono más grave. En este caso serían 110 Hz, 55 Hz, 27,5 Hz, etc.

Los volúmenes y las frecuencias de estos armónicos, en relación con la nota principal, definen el espectro de frecuencias de un instrumento y, conjuntamente con la envolvente acústica, dan a cada instrumento su sonido característico.

¡No es tan sencillo!

Algunos instrumentos presentan un espectro diferente según la nota fundamental. Otros, como las gaitas, tienen un bordón, una nota que suena constantemente en segundo plano. Otros incorporan un toque de ruido a su forma de onda. En este documento hemos elegido instrumentos relativamente canónicos porque nos permiten ilustrar los principios básicos de la síntesis sonora, pero este campo es prácticamente infinito.

Aproximación a un Piano

Aunque tanto la flauta como el xilófono también presentan multitud de armónicos, estos tienen un peso relativamente menor que la envolvente acústica en la definición de su timbre, y es por eso que hemos podido aproximar su sonido tan fácilmente. Este no es el caso del piano, donde los armónicos son absolutamente necesarios si queremos obtener una aproximación convincente de su sonido.

En un piano, la frecuencia más intensa es la fundamental, seguida por el segundo y el tercer armónico, cada uno aproximadamente con la mitad del volumen del anterior. También hay indicios de otros armónicos, pero de momento nos quedaremos con estos.

Definid un nuevo bloque que devolverá la suma de todas estas frecuencias para una puerta determinada. En la categoría Mis bloques, haced clic en Crea un bloque reportador y llamadlo puerta del piano. Esto creará la definición del bloque en el área de scripts.

A continuación, haced clic en la cabecera de la definición del bloque creado y añadid un parámetro al bloque haciendo clic en la flecha de expansión ▶ situada al lado del nombre del bloque. El nombre por defecto del nuevo parámetro es foo, pero lo podéis cambiar por uno más descriptivo haciendo clic con el botón derecho y seleccionando renombrar…. Un nombre como gate podría ser una buena opción.

Después de eso, deberéis averiguar la frecuencia y la amplitud actuales de esta puerta y guardarlas en variables locales. Nombradlas de manera adecuada y utilizad los bloques amplitud para puerta y frecuencia para puerta de la biblioteca Síntesis analógica para obtener sus valores.

¡No encuentro el bloque de variables locales!

Aseguraos de que estáis en modo avanzado activándolo en el menú de opciones (icono de engranaje), si no, no encontraréis el bloque inicializa variable local en la categoría Variables.

Añadid ahora las tres ondas principales que componen el espectro de frecuencias del timbre del piano:

  • Una onda sinusoidal con la frecuencia fundamental y amplitud completa.
  • Una onda sinusoidal con el doble de la frecuencia fundamental y la mitad de la amplitud.
  • Una onda sinusoidal con cuatro veces la frecuencia fundamental y un cuarto de la amplitud.

Finalmente, asignad a la puerta 1 exactamente la misma envolvente acústica utilizada para el xilófono, reproducid continuamente el bloque de piano -también en la puerta 1- y tocad alguna melodía.


Si tuvisteis alguno de los primeros órganos electrónicos, como el Casio PT-1, ¡esto os traerá muchos recuerdos! No es el sonido de piano más realista del mundo, pero sí una aproximación bastante convincente.

Aproximación a un Violín

Ahora que ya sabéis cómo funciona, haced un bloque que simule un violín. Los armónicos principales del violín son los siguientes:

  • La frecuencia fundamental a plena amplitud.
  • El primer armónico a casi plena amplitud.
  • El segundo, tercer y cuarto armónico a ¾ de amplitud.

El violín tiene muchos más armónicos, pero estos son suficientes para obtener una aproximación razonable.

Y este es el resultado de reproducir la misma melodía con el violín:


El sonido es un poco suave y le faltan muchos más armónicos, pero recuerda bastante a un violín, al menos a un violín sintetizado con una estética retro.

Instrumentos de Percusión

Cuando hablamos de instrumentos de percusión distinguiremos dos grandes grupos: armónicos e inarmónicos.

Los instrumentos armónicos son aquellos basados en ondas sinusoidales, donde los armónicos son múltiplos enteros de la frecuencia fundamental. Como ya hemos dicho, prácticamente todos los instrumentos acústicos capaces de producir diferentes notas son armónicos, y también lo son los tambores que generan el sonido mediante una membrana flexible en vibración.

En los instrumentos inarmónicos podemos encontrar formas de onda aleatorias o quizás ondas sinusoidales con armónicos que no corresponden a octavas de la nota fundamental. En este grupo encontramos instrumentos como los platillos, la caja o las campanillas.

Bombo

Cuando se golpea un bombo, la membrana vibra a plena amplitud casi al instante y luego empieza a decaer también bastante rápidamente. Se puede aproximar la forma de onda con una simple onda sinusoidal de baja frecuencia, ya que los bombos suelen producir sonidos bastante graves.

Probadlo:


El resultado no está del todo mal, pero se parece más al sonido de un bajo que al de un bombo. La razón es que solo se aplica la envolvente acústica al sonido del bombo, pero, a medida que la vibración de la membrana se amortigua, su frecuencia también cambia, vibrando cada vez menos rápidamente a medida que progresa el sonido. Dicho de otra manera, un bombo empieza con una amplitud máxima y una alta frecuencia, y después, tanto la amplitud como la frecuencia, disminuyen gradualmente hasta que el sonido se apaga y se vuelve extremadamente grave.

Esto es precisamente lo que permite simular el bloque rampa de frecuencia. Configuraréis una rampa para la puerta 1 que empiece con la frecuencia completa y acabe, por ejemplo, al 30% de la frecuencia inicial.


Caja

La caja, en cambio, es un instrumento inarmónico. Se puede obtener un sonido aproximado aplicando una envolvente acústica a una puerta de ruido y disparándola a una nota bastante aguda. Para ser exactos, la caja también tiene una membrana que vibra de manera armónica, pero los muelles metálicos situados en la parte inferior anulan prácticamente cualquier componente sinusoidal que pueda existir.


Charles (Hi-hat)

El hi-hat también es un instrumento inarmónico y se puede aproximar igualmente con una puerta de ruido, pero el tiempo de extinción es mucho más corto que el de la caja y no suena tan fuerte.


Nuevos Instrumentos Electrónicos

Hasta ahora habéis intentado aproximar sonidos producidos por instrumentos acústicos existentes, pero nada os impide inventar instrumentos nuevos que utilicen diferentes formas de onda, envolventes acústicas y espectros de frecuencias.

Aquí tenéis uno que me he inventado:


Composición Musical y Live Coding

Ahora que ya sabéis cómo crear vuestros instrumentos y sonidos, quizás queráis ponerlo en práctica para componer música, tal vez incluso interpretándola en directo ante un público.

MicroBlocks ofrece varias bibliotecas muy útiles para esta tarea, especialmente Escalas y acordes y Ritmo. Para profundizar, os recomendamos que echéis un vistazo a la actividad Música en directo con dispositivos MIDI, pero en lugar de enviar mensajes MIDI a un sintetizador externo, podéis encaminar las notas MIDI a una puerta de Síntesis Analógica.

Aquí tenéis un ejemplo sencillo de una melodía de síntesis, una caja y un hi-hat sonando al mismo tiempo:


Ahora ya estáis perfectamente equipados para divertiros mucho sintetizando vuestra propia música, literalmente, ¡a partir de la nada!

CC-BY-SA

© by MicroBlocks 2019-2025.
This work is licensed under a CC-BY-SA 4.0 license.