Anda di halaman 1dari 13

Introducción a la Tecnología

de Sintetizadores

por Santiago J. Barro Torres

Como habíamos comentado en el artículo anterior, los sintetizadores

son dispositivos que generan sonido a partir de la información MIDI que le

llega como entrada. Para entenderlo mejor, consideraremos un subconjunto

del protocolo MIDI, formado únicamente por los siguientes mensajes:

Mensaje MIDI Breve descripción Parámetro


Indica que tiene que notaId es un entero
NOTE_ON(notaId) iniciarse la ejecución de
entre 0 y 127 que
la nota notaId.
representa una nota
Indica que tiene que
NOTE_OFF(notaId) finalizarse la ejecución musical (se comentará
de la nota notaId. posteriormente).

Tabla 1: Simplificación del Protocolo MIDI

El mensaje NOTE_ON indica que hay que iniciar la ejecución de una

nota, la indicada por el parámetro notaId. El mensaje NOTE_OFF indica que

hay que finalizar la ejecución de la nota notaId, como cabría esperar.

Es importante indicar que el protocolo MIDI se pensó originalmente

para trabajar en tiempo real. A medida que el músico utiliza el controlador, se

van generando los mensajes NOTE_ON y NOTE_OFF, que son los que indican
el inicio y final de las notas.

¿Cómo podría generar el controlador los eventos NOTE_ON y

NOTE_OFF? Pues depende de cómo sea el controlador. Por ejemplo, en un

piano, el evento NOTE_ON podría ser generado al pulsar una tecla, mientras

que el evento NOTE_OFF podría ser generado al dejar de pulsar esa misma

tecla.

Identificación de notas en MIDI

Cuando el controlador genera un evento NOTE_ON y NOTE_OFF,

también se indica qué nota es la que se tiene que tocar o dejar de tocar,

respectivamente. Pero, ¿cómo se identifican las notas en el protocolo MIDI?

Los músicos hablan de la nota “do”, “re sostenido”, “si bemol”. Sin

embargo, es una forma poco precisa de identificar una nota. También sería

necesario indicar la octava sobre la que estamos trabajando, pues por todos

es conocido que no es el mismo “do” de la primera línea adicional de la clave

de Sol (agudo), que el “do” del segundo espacio de la clave de Fa en cuarta

(grave).

Figura 1: Dos notas DO en distintas octavas

Desafortunadamente, en el mundo de la informática sería demasiado

engorroso trabajar con el nombre de las notas, su alteración (en caso de


poseerla) y su octava. ¿Qué os parece si asignamos un número a cada nota?

Por ejemplo, asignemos el número 60 a la nota “do” (el do central), el número

61 la nota “do sostenido”, el número 62 a la nota “re”… Y así sucesivamente.

A continuación se muestra la escala cromática de DO, y una tabla que

indica las correspondencias entre las notas de la escala cromática de DO y su

respectivo identificador MIDI.

Figura 2: Escala cromática de DO

DO# RE# FA# SOL# LA#


Nota DO ó RE ó MI FA ó SOL ó LA ó SI DO
REb MIb SOLb LAb SIb
notaId 60 61 62 63 64 65 66 67 68 69 70 71 72

Tabla 2: Identificadores MIDI de la escala cromática de DO

Desde un punto de vista ingenieril, es mucho más práctico identificar

las notas con un número. Basta darse cuenta de que, conocido el número, se

determina de forma unívoca la nota, junto a su alteración y la octava a la que

pertenece.

Aunque sólo se han representado trece notas, se puede intuir que el

protocolo soporta más, tanto ascendentemente como descendentemente. En

concreto, como se utiliza un byte para representar la nota, y teniendo en

cuenta que el primer bit de ese byte tiene un valor prefijado, el rango de

valores válidos para representar una nota va desde 0 hasta 127, ambos
inclusive.

Modelo de Síntesis

Para nosotros, un sintetizador va a ser una caja negra que genera

sonidos a partir de mensajes NOTE_ON(notaId) y NOTE_OFF(notaId) obtenidos

de un controlador.

Figura 3: Modelo de Síntesis

Lo único que sabemos es que la definición del instrumento se

encuentra almacenada en un banco de sonidos. Es decir, el banco de sonidos

describe cómo tendría que sonar el instrumento “piano”, el instrumento

“flauta”, etc.

Posteriormente se darán más detalles sobre el banco de sonidos.

Estructura de la Información Musical

Como decíamos, el sintetizador es quien se encarga de generar

sonido. Una de las características deseables de un sintetizador sería la de

poder ser configurable. Es decir, que podamos escoger entre un determinado


conjunto de instrumentos, o incluso, que podamos escoger un instrumento

creado por nosotros mismos.

Por ejemplo, imaginemos una sencilla partitura, tal como podría ser la

que se muestra a continuación:

Partitura Mensajes MIDI generados


NOTE_ON(60), NOTE_OFF(60),
NOTE_ON(64), NOTE_OFF(64),
NOTE_ON(67), NOTE_OFF(67),
NOTE_ON(64), NOTE_OFF(64).

Tabla 4: Mensajes MIDI obtenidos a partir de la interpretación de la partitura

Como podemos ver, a la derecha se muestran los mensajes MIDI que

obtendríamos del controlador, en tiempo real, a medida que el músico toca.

Se puede apreciar que el protocolo MIDI no envía sonido, sino eventos a partir

de los cuales se puede obtener música. Esta separación es una de las

grandes ventajas del protocolo MIDI, pues nos permite escoger cualquier tipo

de instrumento para tocar una determinada melodía.

La idea es más intuitiva de lo que parece. Pensemos en una partitura

escrita para un determinado instrumento, por ejemplo, una flauta. Ahora

pensemos en un violín tocando esa misma partitura. En ambos casos seremos

capaces de reconocer la misma melodía. ¿Se tocan de la misma forma una

flauta y un violín? No, cada instrumento tiene su propia forma de interpretar

una nota, la flauta es un instrumento de viento, y un violín es un instrumento

de cuerda. Son dos instrumentos de dos familias bien diferentes. Sin

embargo, existe un punto en común, y es que ambos instrumentos obtienen


información sobre cómo tocar una melodía del mismo sitio: La partitura.

El razonamiento anterior sugiere que parte de la información musical

es independiente del instrumento. Efectivamente, una partitura representa

información musical (una melodía cualquiera) independientemente del

instrumento que se utilice posteriormente para tocarla. Una grabación sonora

de un instrumento tocando una melodía también es información musical. Pero

por el contrario, aquí la información musical es dependiente del instrumento,

como cabría esperar.

Por tanto, podemos dividir la información musical en dos niveles:

Primer Nivel Segundo Nivel


Característica Independiente del Dependiente del
distintiva instrumento instrumento
Grabación Sonora:
Ejemplos Partitura, Protocolo MIDI
Flauta, Violín...

Tabla 5: Clasificación de la Información Musical

El protocolo MIDI se sitúa en el primer nivel, puesto que representa la

información musical de forma análoga a como haríamos en una partitura, sin

indicar ninguna referencia a cómo tiene que sonar. El sintetizador se encarga

de transformar esa información musical en sonido, y por tanto, podríamos

decir que se sitúa en el segundo nivel.

A continuación hablaremos sobre cómo se puede obtener sonido a

partir de la información obtenida a partir del controlador MIDI. De esa forma,

lograremos entender el funcionamiento básico de un sintetizador MIDI.


Funcionamiento de un Sintetizador MIDI

En pocas palabras, un banco de sonidos es una estructura en la que se

almacenan las definiciones de los instrumentos que puede tocar un

sintetizador. Pero vayamos por partes.

En primer lugar, ¿qué es un instrumento? En la Tabla 4 habíamos

observado que, a medida que el músico toca, el controlador genera en tiempo

real los mensajes MIDI correspondientes a su ejecución. También se comentó

que la información proporcionada por el protocolo MIDI era independiente del

instrumento. En consecuencia, podemos tocar la melodía con el sonido de

cualquier instrumento.

La idea de un instrumento es bastante intuitiva. Vendría a ser como

una especie de “instrumento virtual”. ¿Quieres que la melodía suene en un

piano? Pues selecciona el instrumento “piano” en tu sintetizador. ¿Quieres

que la melodía suene en una flauta? Pues selecciona el instrumento “flauta”.

Y así sucesivamente.

Por tanto, un instrumento no es más que un parámetro de

configuración del sintetizador, que provoca que los sonidos generados sean

como los de un piano, como los de una flauta, etc.

En segundo lugar, haremos hincapié en el término “definición de

instrumento”. Con “definición de instrumento” nos referimos a la información

que hay que proporcionar al sintetizador para que suene como un

determinado instrumento. Por ejemplo, si nuestro sintetizador es capaz de

sonar como un piano, es porque alguien ha definido dicho instrumento

previamente.
Como veremos posteriormente, la definición de un instrumento se

realiza en dos pasos: (1) “Definición de Samples”, y (2) “Definición de

Articulación”. Con esa información, el sintetizador será capaz de sonar como

dicho instrumento.

Por último, indicar que la definición de los instrumentos se almacena

en el banco de sonidos.

Definición de un Banco de Sonidos

Supongamos un caso práctico. Imaginemos un pianista y un ingeniero

de sonido. El ingeniero de sonido se encargará de grabar un cierto número de

notas, que serán tocadas por el pianista en cuestión. Los sonidos serán

cortos, de un segundo de duración, aproximadamente.

Por ejemplo, imaginemos que se han grabado las siguientes notas:

Archivo de Audio
do.wav mi.wav sol.wav si.wav
(sample)
Nombre Nota DO MI SOL SI
Identificador
60 64 67 71
MIDI

Tabla 6: Conjunto de samples grabados por el ingeniero de sonido

Ahora imaginemos que queremos definir un instrumento “piano” que

sea capaz de sonar con cualquier nota de la escala cromática de DO, como la

vista anteriormente. Por tanto, tenemos que ser capaces de generar un

sonido para cualquier mensaje NOTE_ON en el que el identificador de nota

esté entre 60 y 72, ambos inclusive.


El primer problema salta a la vista. ¡No tenemos un sample para cada

nota que queremos generar! Sin embargo, esto no representa un problema.

El sintetizador es capaz de obtener una nota a partir de otra, modificando la

frecuencia del sonido. Por ejemplo, podemos obtener la nota 61 (DO

sostenido) a modificando la frecuencia de la nota 60 (DO).

Ahora bien, tenemos que indicar qué samples se utilizarán para

generar qué notas, puesto que existe más de una posibilidad. Por ejemplo,

para obtener la nota 62 (RE), se puede utilizar el sample de la nota 60 (DO), o

también el sample de la nota 64 (MI). En éste caso es indiferente, puesto el

RE está a la misma distancia del DO que del MI: dos semitonos.

Sin embargo, en general siempre habrá que escoger la nota más

cercana que hayamos sampleado, para minimizar el efecto de la distorsión

producido por la modificación de la frecuencia. Por ejemplo, para generar la

nota 61 (DO sostenido), lo más lógico es utilizar el sample de la nota 60 (DO),

puesto que se encuentra a un semitono de distancia. También se podría

generar la nota 61 (DO sostenido) a partir de la nota 64 (MI), pero aquí la

distancia es mayor, de un tono y un semitono, por lo que no lo

seleccionaríamos. Y menos aún las notas 67 (SOL) y 71 (SI), por estar a una

distancia todavía mayor.

En definitiva, tenemos que indicar qué sample se utiliza para generar

qué nota. Por ejemplo, como muestra la tabla siguiente:


DO# RE# FA# SOL# LA#
Nota DO ó RE ó MI FA ó SOL ó LA ó SI DO
REb MIb SOLb LAb SIb
notaId 60 61 62 63 64 65 66 67 68 69 70 71 72
sample do.wav mi.wav sol.wav si.wav

Tabla 7: Una posible asignación de samples a cada una de las notas

Como tenemos trece notas (desde la 60 hasta la 72) y cuatro samples

equiespaciados, lo más normal es repartir tres notas a cada sample, excepto

una, que necesariamente tendrá cuatro notas asociadas.

No existe ninguna norma estricta sobre cómo realizar la anterior

asignación. Únicamente hay que entender lo siguiente: Al asociar un sample a

una nota, cada vez que se solicite la ejecución de dicha nota, sonará el

sample con la frecuencia “ajustada” de la forma adecuada.

Por ejemplo, si se solicita la ejecución de la nota 62 (RE), y teniendo en

cuenta la información de la tabla anterior: (1) Se obtiene el sample contenido

en do.wav, pues es el sample que está asociado con la nota en cuestión. (2)

El sintetizador observa que el sample do.wav se corresponde originalmente

con la nota 60 (DO). (3) Como la nota que se ha solicitado, la 62 (RE), es

distinta de la nota almacenada en el sample (la 60, el DO), entonces el

sintetizador procesa el sample, modificando su frecuencia en una cantidad

proporcional a la diferencia de frecuencias entre la nota y el sample (62 – 60

= 2). En otras palabras, el sintetizador sube la frecuencia del sample un tono.

Por último, (4) se escucha el sonido por los altavoces.

Una pregunta que podría surgir llegados a éste punto, sería: ¿Se podría
definir un instrumento utilizando un único sample? La respuesta es sí. Sin

embargo, hay un detalle que hemos mencionado anteriormente, y que

merece mayor explicación.

Aunque técnicamente se pueda conseguir cualquier nota de la escala

modificando la frecuencia de un único sample, en la práctica no es deseable,

puesto que se percibe una distorsión que es mayor cuanto mayor sea la

distancia entre la nota deseada y la nota real del sample. Por ejemplo, si

tenemos un sample que ha sido grabado con la nota 60 (DO), una leve

modificación en la frecuencia para obtener una nota 61 (DO sostenido) o una

nota 62 (RE) producirá también una leve distorsión, que podríamos considerar

como imperceptible. Sin embargo, a medida que intentamos generar notas

más distantes, la distorsión aumentará hasta llegar a niveles que podríamos

considerar como inaceptables. Por eso, al realizar la tabla Tabla 7 intentamos

que la distancia entre las notas y el sample fuesen lo menor posibles.

Lo ideal sería tener un sample para cada una de las notas. En el

ejemplo propuesto, implicaría tener trece grabaciones con cada una de las

trece notas. Desafortunadamente, las grabaciones ocupan una cantidad

considerable de espacio, factor que puede ser importante, si el banco de

sonidos está cargado en una memoria RAM, además de que puede ser

costoso procesar tanta información. También hay que pensar que,

probablemente, el sintetizador será capaz de generar muchas más notas y

muchos más instrumentos, lo que aumenta el espacio requerido de forma

considerable, en caso de utilizar un sample por cada nota.

La alternativa sería asociar varias notas a cada sample.

Desafortunadamente, tampoco debemos abusar de ésta técnica, puesto que


la distorsión evitará que obtengamos sonidos de una calidad aceptable. En el

ejemplo se podrían generar las trece notas a partir del DO, pero si

escuchamos el resultado final, apreciaremos que el instrumento no suena de

forma natural.

El truco está, como siempre, en encontrar el equilibrio. Ni muchos

samples, porque supondría ocupar demasiado espacio, ni pocos samples,

porque nos veríamos obligados a tener que modificar las frecuencias de los

samples constantemente, lo que provocaría una distorsión inaceptable si la

distancia entre la nota generada y el sample es medianamente grande.

Fases de la Definición de un Instrumento

En resumen, la definición de un instrumento consta de las siguientes

fases:

1. Definición de Samples. Los samples son las unidades básicas con

las que trabaja el sintetizador, la materia prima con la que se fabrican

las notas que sonarán como resultado de las peticiones de NOTE_ON y

NOTE_OFF provenientes del controlador. Técnicamente, un sample no

es más que un archivo de audio que ha sido grabado a partir de un

instrumento real, y que tiene asociado un número que indica la nota

que es (por ejemplo, 60 es un DO).

2. Definición de Articulación. Sin embargo, no basta con tener

samples. El controlador nos pedirá que iniciemos la ejecución de una

nota (indicada con un número entre 0 y 127), y en principio, no

sabemos qué sample hemos de tocar. El hecho se ve agravado si


pensamos que no tiene por qué haber un sample por cada nota.

Necesitamos conocer la correspondencia entre notas y samples. Con

esa información, el sintetizador es capaz de generar la nota correcta,

utilizando el sample adecuado y modificando su frecuencia de forma

conveniente. Es decir, ¿cómo articulamos los samples para producir

cada una de las notas?

Ambas definiciones son almacenadas en el banco de sonidos.

Sobre el documento

Este documento forma parte del proyecto OpenPipe. Para obtener más

información sobre el mismo puedes visitar su blog [1]. También puedes

escribirme a mi dirección de correo [2].

[1] http://openpipe.wordpress.com/

[2] santiagojbt@gmail.com

Anda mungkin juga menyukai