Generación Procesal de Música

Generación de música Introducción

por Christer Kaitila

“TL;DR: Piensa en la música como si fuera una mazmorra .”

La música tiene un efecto profundo en tus jugadores. Es ese brillo adicional que permanece en la memoria, que enciende la imaginación y crea el ambiente. En este artículo, vamos a explorar patrones y reglas útiles que te ayudarán a crear tu propio generador de música.

Incluso si no sabes nada sobre la teoría de la música y no sabes distinguir una escala mayor de una menor, la buena noticia es que muchas de las reglas que usarías para la generación de una mazmorra también se pueden aplicar a la música. Después de aplicar algunos patrones y crear algunos límites, tu sistema de generación de música producirá canciones sorprendentemente buenas.

Por favor rompe estas reglas

Las siguientes "reglas" están llenas de consejos subjetivos y dogmáticos, y tienden a crear melodías genéricas, tradicionales y familiares. Si eres un experto en música, verás que estoy simplificando mucho y que no entro en muchas cosas avanzadas e importantes. Considera estos consejos como simples puntos de partida para que te sirvan de inspiración. Al igual que con cualquier consejo artístico, una vez que conozcas las reglas, siempre es una buena idea romperlas de vez en cuando.

Las frases musicales son como salas de mazmorras

Al crear código, piensa en tu música como un nivel de juego. Considera lo que es necesario para crear un buen generador de niveles. La estética de la música es muy similar. Para comenzar, para ir más allá del mero ruido sin sentido, podríamos decidir «agrupar» las cosas, como lo hacemos con los biomas de terreno o las salas de mazmorras.

Da a un generador de mazmorras unas reglas simples (salas conectadas por pasillos, un camino viable de principio a fin, algunas cosas especiales inusuales como cofres de tesoros), y tus mazmorras, que ahora ya no están hechas completamente al azar, toman forma y se vuelven divertidas para jugar. Tienen un ritmo. Zonas de acción y zonas de descanso. Lo mismo debería suceder en tu generador de música.

Piensa en cada parte de tu canción como una "sala" en una mazmorra. Una sala puede ser una introducción, la siguiente un coro, y otra más allá, un solo. Son partes conceptuales conectadas por «pasillos» simples.

Así como una mazmorra debería tener una entrada fácil, algunos altibajos que conducen a una batalla impresionante, y luego una salida, una canción también debe tener una introducción simple, aumentar en complejidad y utilizar dinámicas de momentos más altos y bajos, y al final un clímax, y luego recapitular el tema central, volver atrás, o desaparecer gradualmente.

Tocar una nota

Se dejará como un ejercicio para que el lector explore su motor de juego preferido y descubra cómo reproducir sonidos con diferentes tonos. A menudo esto significa establecer el tono de referencia o la frecuencia de reproducción (acelerar las ondas de sonido hacia arriba o hacia abajo, lo que extiende la onda de sonido para crear notas graves y bajas, o la acelera para crear tonos muy altos como los de Mickey Mouse). Para ayudarte en tu camino, puedes comenzar con este ejemplo o crear el tuyo propio, en el motor que quieras. En Unity, ajusta el tono de una fuente de audio. Si quieres ir a un nivel muy básico (por ejemplo, estás generando tonos usando ondas sinusoidales), aquí se explica cómo determinar la frecuencia de una nota musical en Hz.

El ritmo lo es todo

Es más importante que las notas que eliges; el ritmo es lo que hace que un sonido se convierta en música. Cuando comiences a crear código para tu generador de música, asegúrate primero de poder reproducir un sonido cuatro veces por segundo por un tiempo indefinido. Estamos hablando de un metrónomo; un latido del corazón que se repite una y otra vez. Esto requerirá medir el tiempo transcurrido y reproducir los sonidos en momentos específicos, y se deja como un ejercicio para el lector.


(procjam-metronome.mp3)

Énfasis

TLa nota más importante en cada grupo es la primera. El comienzo. Debería ser la más alta a nivel de volumen. La siguiente más importante está a la mitad de una barra. El primer tiempo.


(procjam-beats.mp3)

En un compás de 4 tiempos, da una fuerza especial a los tiempos 1 y 3. Elige esas notas para llenarlas de sonido más a menudo, y permite que los tiempos 3 y 4 se queden vacíos con más frecuencia.

Repetición

La parte más importante de un grupo de notas, la que hace que parezca una canción, es la repetición. Añade ritmo y un sentimiento de conversación, un sentimiento poético, y de llamada y respuesta. Repito de nuevo que cada regla que agregamos reduce el ruido aleatorio y el caos, y añade orden y familiaridad.

Casi toda la música popular repite alguna parte de los 4 o 3 compases anteriores, normalmente entre 4 y 8 veces seguidas. Por lo tanto, en lugar de generar una larga cadena de notas, genera unos pocos fragmentos de entre 4 y 16 notas y luego repite esa "frase" cuatro veces antes de pasar a otra sección de la canción. Es como crear un patrón que se repite de «sprites».

Patrones y repetición

La repetición es un componente clave de la música; si hay mucha, resulta aburrido, y si no hay suficiente, la música sonará sin sentido y agotadora. Las cosas nuevas aportan tensión e interés, pero al igual que con los detalles en el arte visual, y como es el caso con toda la arquitectura, tanto real como virtual, el ritmo y la repetición relajan las cosas y crean una sensación de comodidad. La repetición permite que el oyente sienta que la canción es familiar, pueden anticipar lo que vendrá después, y de este modo la canción se vuelve pegadiza. No te gustaría que tu mazmorra solo usara cada sprite de pared una vez: una pared larga debería usar el mismo sprite, tal vez con "detalle" más complejo de vez en cuando.

Reducir los detalles también es clave para que una música suene bien: las secciones interesantes que marcan la emoción pueden tener muchos detalles y complejidad, pero no debes mantener ese nivel todo el tiempo o sería como una canción que contuviera solamente un solo de guitarra. Debes desarrollarla y después dejar que termine antes de que se convierta en aburrida.

Paleta reducida

Las mazmorras que usan todos los colores del arcoiris o todas las formas posibles terminan quedando chillonas y baratas; esto puede ser útil para esa escena disco que querías añadir, pero el resto del tiempo, un artista recomendaría usar solo unos pocos colores que se complementen entre sí.


(procjam-chromatic.mp3)

Lo mismo es cierto en la música; a menos que estés escribiendo jazz disonante de vanguardia, puedes seleccionar una "paleta" de notas musicales para usar en una canción, de la misma manera en que unos pocos colores bien elegidos serían recomendables para un artista de píxeles. Si puedes hacer que se coordinen, y que se combinen bien entre sí, de repente tu arte (píxeles o notas) adquiere un tono más maduro, mejor integrado y menos chillón. Los límites son el secreto de la creatividad.


(procjam-major.mp3)

Por lo tanto, en lugar de elegir al azar cualquier nota en el teclado del piano, ¿y si tu música solo seleccionara notas de una escala o acorde en particular? Inmediatamente, la música comenzará a tener sentido.

Intervalos de notas

La distancia entre dos notas se llama intervalo. Por ejemplo, la distancia entre Do y Do # en un teclado de piano es de un semitono. Para tocar una escala mayor en Do que suene alegre, no tocarías todas las teclas, solo las blancas comenzando desde Do. No sería recomendable tocar todos los tonos de la escala musical. En lugar de eso, selecciona solo notas que suenen bien juntas. Intenta elegir entre 5 y 8 colores de un arcoiris que contiene 12.

Los acordes y arpegios se construyen a partir de escalas utilizando las reglas de la armonía. Puedes aprender mucho sobre los acordes aquí.

Armado con estas matrices, que básicamente son tablas de búsqueda, puedes comenzar a generar música, en lugar de generar notas aleatorias.

Intervalos pequeños (caminar, no saltar)

Un patrón común que se ve en casi toda la música popular es que la melodía no salta al azar: normalmente va paso a paso hacia arriba o hacia abajo, avanzando no más de una o dos notas a partir de la nota anterior. Los intervalos grandes agregan tensión y emoción, mientras que los pasos pequeños (como puede ser simplemente tocar la misma nota nuevamente o pasar solo a la siguiente nota más baja en la matriz de notas permitidas en la escala elegida).


(procjam-intervals.mp3)

Dinámica

Las salas, como los temas o secciones de la música, representan áreas importantes que cuentan una historia o tienen una razón de ser; señalan momentos cruciales en el juego, o un aumento en la dificultad. Entre ellos, como una forma de darle a tu juego un "ritmo" (y mejor rendimiento) hay pasillos menos detallados, meras transiciones entre las salas principales que proporcionan un respiro, un poco de descanso, y que conducen al jugador hacia adelante.

En la música, podemos hacer lo mismo. Presenta los temas importantes, como si fueran una nueva sala, de manera que permitan el subir y bajar de la dinámica (tensión y liberación, volumen y suavidad, rápido y lento, complejo y simple). Las transiciones entre los eventos principales, al igual que los pasillos conectores, dan a la composición un impulso y dan un descanso a los oyentes.

Una mazmorra llena de tesoros o monstruos en cada segmento es mala de la misma manera en la que una pieza musical en la que cada momento está lleno de sonido es mala; en ambos casos hay demasiados estímulos. Al igual que una mazmorra puede poner un número máximo de elementos o mobs por sala, un generador de música puede imponer máximos y mínimos para la cantidad de notas por sección, por compás o por tiempo, evitando que todo se haga confuso al haber demasiados elementos.

Interpolar

Para empezar, una mazmorra aleatoria no es divertida si es "verdaderamente aleatoria", es decir, si hay teselas en todas partes sin conexión ni lógica, si no hay bordes automáticos, y el mapa no se siente como un mundo, de pronto parece solo basura, solo ruido. Lo mismo se aplica a la música: elegir notas aleatorias creará los pitidos y ruiditos de las computadoras del cine de los setenta, sonidos que no tienen emoción, ni tensión y liberación, ni armonía. Las notas elegidas puramente al azar suenan como basura, al igual que un terreno completamente aleatorio parece basura.

Para actualizar nuestros generadores para paisajes tanto físicos como de sonido, podríamos considerar implementar algo con transiciones más suaves, como el ruido perlin. Cada valor está muy cerca del siguiente; las cosas cambian gradualmente de blanco a negro. Todos los motores de juego ya vienen con código que sirva como ejemplo, y generan valores "suavizados" no aleatorios que no son ruido blanco puro. En lugar de eso, permiten que "la próxima nota" sea en general "cercana" a la anterior, de la misma manera en la que un terreno perlin tiene pendientes suaves; los píxeles vecinos del mapa de altura siempre tienen un valor cercano, no es ruido aleatorio.

De repente, en lugar de estático, el mapa parece un terreno, con montañas y lagos. Esta analogía también es perfecta para la música; suaviza las transiciones y hace que comience a sonar como algo real. No saltes al azar, haz que las notas vecinas tengan un valor similar.

El espacio vacío es importante

Añade otra regla a tu generador que no permita que más de aproximadamente la mitad de la canción tenga notas sonoras. Deja espacio libre, especialmente al final de una frase. Al igual que en el habla humana, necesitamos espacio para respirar. Cuanto más compleja sea una sección, más vacía debe estar la siguiente. Disminuye la densidad de notas en tu canción para cubrir desde un 25% hasta 50% del espacio disponible.

Selecciona aleatoriamente notas de una escala. Crea unos pocos grupos de ocho notas que estén cerca las unas de las otras. Después, repite cada una cuatro veces. Y magia: ya tienes una canción. Sonará sorprendentemente parecida a la música real.


(procjam-melody.mp3)

Ve un paso más allá y limita la distancia que recorres de una nota a la siguiente. Los tonos fluirán como las palabras de un ser humano hablando, subiendo y bajando en el tono, pero rara vez saltando de repente una gran distancia. La evolución gradual de bajo a alto o de fuerte a suave es preferible a los cambios repentinos.

Las armonías añaden belleza

Tocar más de una nota al mismo tiempo puede sonar encantador cuando las notas están en armonía, pero puede también sonar muy mal cuando las notas son disonantes. El secreto es elegir intervalos que se sincronicen bien con la nota raíz.


(procjam-harmony.mp3)

Por ejemplo, se obtiene una armonía agradable al aplicar una nota dos más allá en la escala [offset +2] armonizando un Do con un Fa. Esto se llama terceras. Otra que funciona en casi todas las situaciones es la quinta, así que pasa la nota que quieres complementar 4 posiciones más allá en la matriz de escala para obtener una nueva nota que suene bien por encima de la primera.

Los tonos graves son muy importantes

Junto con la melodía y la armonía, es posible que quieras tener una línea de bajo para unir todo. Crea una regla que generalmente elija la primera nota del compás (y la tercera) para jugar. Crea otra que seleccione la primera nota (la raíz) de la escala de la que estás eligiendo las notas. Estas dos reglas son suficientes para llenar el papel que el bajo tiene generalmente en la música popular.


(procjam-bassline.mp3)

Ahora diviértete y amplía estos conceptos. Asegúrate de romper las reglas de la teoría de la música y las convenciones de la música pop, y agrega todo tipo de sonidos interesantes a tu música, por ejemplo ritmos de batería o texturas ambientales.

Incluso podrías añadir gradualmente canciones nuevas que compartan el mismo ritmo, armonías simples y relajantes como las de escala mayor en su mayoría vacías, con melodías que utilizan pequeños intervalos entre las notas para las secciones de exploración.

Para las batallas importantes, genera una canción muy intensa con una melodía que utilice intervalos y notas más largos de una de las escalas menores. La gente no se creerá que la música se genera procesalmente. Sonará feliz o aterradora según el momento.

De vez en cuando encontrarás "esa semilla aleatoria perfecta" o una ubicación y tamaño del ruido perlin que producen una canción que suena "real".


(random-happy-song.mp4)

¡Nada más! Con estas pocas reglas, ya tienes las bases conceptuales para un buen generador de música. Ahora, pongamos estos conceptos en práctica de una manera que sea directamente útil para ti cuando realices la generación procedural de contenido.

Buena suerte en el PROCJAM de este año. Si creas una música procedural impresionante, me encantaría escucharla. Ponte en contacto a través de Twitter: @mcfunkypants. Aquí hay algunas docenas de canciones aleatorias que puedes usar para tus juegos si al final no creas tu propio generador de música. Las he puesto en el dominio público como un pequeño regalo a la comunidad. ¡Disfruta de ellas!

Christer "McFunkypants" Kaitila


www.christerkaitila.com