Genere su propia música carnática con Google Magenta

Contenidos

Este artículo fue publicado como parte del Blogatón de ciencia de datos.

La musica es el ritmo de la vida

es un idioma universal. Tiene la capacidad de trascender sin esfuerzo el cuerpo opaco, la mente sutil y el alma invisible. Al final de un largo día de arduo trabajo, escuchar su composición musical favorita puede brindarle un consuelo muy necesario y una energía fresca para esperar enfrentar la vida con una sonrisa.

En este artículo, me concentré en los siguientes temas:

  1. Reproduzca y visualice Carnatic Music Ragas usando la biblioteca de Google Magenta
  2. Genere notas de Carnatic Music Raga utilizando técnicas de aprendizaje automático
  3. Genere notas aleatorias de Carnatic Music Raga con simples scripts de Python

Introducción

Habiendo aprendido los conceptos básicos de la música carnática en mi infancia, siempre tuve la fascinación de automatizar la generación de esta antigua forma de música clásica del sur de la India. La música hindustani es popular en el norte de la India. La música de cine india es más popular hoy en día, que a menudo se inspira en estas dos formas clásicas de música.

En la búsqueda de una buena herramienta para generar música, me encontré con el proyecto Google Magenta. Tiene una forma simple pero poderosa de generar música de secuencia de notas. Aquí se presenta mi intento de generar música carnática con esta herramienta.

Conceptos básicos de la música carnáticaavis la música occidental

música del oeste tiene escalas y notas generadas por las teclas con Importante y Menor escalas, mientras que la música clásica india ha Ragam o Raga que es más que un conjunto de notas o Swaras.

La música occidental generada con notas es discreta por diseño. Raga es continuo y captura las emociones humanas junto con el estado de ánimo, la expresión y la energía.

A pesar de muchas diferencias, afortunadamente, ambos se basan en 12 notas clave o Swaras lo que puede ayudar a generar música clásica india desde una perspectiva más amplia, ignorando las perfecciones microtonales.

Veamos cómo las notas de la música clásica india (música carnática) se asignan a las notas del piano electrónico para comprender las similitudes y posibilidades de la generación de la música carnática.

59760keyboard_raga_notes-1025838

A diferencia del sistema de música occidental donde Swaras/ las frecuencias de las notas son fijas; en el sistema de música clásica de la India se permiten variaciones en pocas notas. Este esquema prevé ‘Sa’ y ‘Pensilvania’ como notas fijas, con ‘Mamá’ teniendo 2 variantes y el restante Swaras teniendo 3 variantes cada uno. Swaras / Notas y sus variaciones se dan en la tabla anterior.

En total, Carnatic Music considera 16 Swaras / Notas para clasificar y acomodar una rica variedad de Ragas.

«Mamá» es la mediana entre las 7 principales Swaras. Dado que ‘Ma’ tiene 2 variantes, divide el Raíz Ragams también llamado «Melakarta» Ragams o Ragams de padres en dos partes iguales. Esta imagen a continuación muestra la división de estos 72 importante Ragams que tienen los 7 principales Swaras. Se obtienen miles de Ragas infantiles al agregar, omitir o transponer las notas de estos 72 Ragas principales.

85831melakartas-1877691

1.Música carnática con magenta

Basta de teoría, ahora pasemos a la generación Carnatic Music usando Google Magenta.

Hacer clic este enlace para ejecutar los siguientes ejemplos usted mismo. Ésta es la forma más sencilla de empezar a utilizar Magenta. Aquí, puede generar música, descargarla como MIDI y también ver los patrones musicales gráficos con la biblioteca Bokeh.

Todo en Magenta se centra en NoteSequences. Esta es una fantástica representación abstracta de una serie de notas, cada una con diferentes tonos o srutis, instrumentos y velocidades de golpe, al igual que MIDI.

A los principiantes de la Música Carnática se les enseña primero con Mayamalavagowla Ragam, el 15 de Melakarta (vea la tabla de arriba). Tiene lo siguiente notas / swaras.

sa, ri1, ga2, ma1, pa, da1, ni2

El orden ascendente (Aarohana) y orden descendente (Avarohana) tienen todos los mismos 7 Swaras, que es una propiedad común para todos Ragams de Melakarta. La siguiente secuencia de comandos de Python reproduce estas notas ragam. Correr este codigo en el Paso 1 de la ventana Hello Magenta Colab que se muestra arriba.

Visualizando los Ragas

El código anterior genera el gráfico y la secuencia de notas como archivo MIDI para 3 ragas.

72531mg_sb_ragas-5176142

Puede observar la simetría de las notas en el gráfico, lo que puede ser la razón por la que los nuevos estudiantes comienzan con este Mayamalavagowla Ragam.

Pulsar las notas clave principales en el piano generará Sankarabharam Ragam, que parece ser una distribución normal platicúrtica gaussiana.

La música se trata de patrones melodiosos

A un nuevo alumno se le enseña a cantar / tocar algunas notas /Swaras patrones. Aquí hay un código fragmento de un patrón tan hermoso llamado sarali swaram.

Alguna ragam con el mismo orden ascendente y descendente, las notas se pueden tocar con el patrón anterior

Generación de secuencias de notas de longitud variable

Muchas veces, las notas / swaras deben tocarse con longitudes variables. NoteSequence ha proporcionado esta función con los parámetros start_time y end_time. Esta este codigo genera notas para una de esas composiciones básicas llamada Pillari Geetam.

2. Genera notas Raga usando Melody_RNN

Hasta ahora, solo usamos NoteSequence para generar Carnatic Raga Notes. Ahora, intentemos generar música con el modelo Recurrent Neural Network desarrollado por el equipo de Google Magenta.

Un MelodyRNN es un Basado en LSTM modelo de lenguaje para notas musicales: es mejor continuar con una secuencia de notas que le proporcione. Intenta ejecutar esto este codigo en el Paso 2 del archivo Hello Magenta Colab para ver el resultado de generar Carnatic Raga Notes usando Melody_RNN.

Vi que la secuencia de salida generada por Melody_RNN va más allá de las notas Raga dadas. Un solo cambio de nota puede resultar en una desviación del patrón de Raga. Esto no es tan deseable según las rígidas propiedades de Raga.

3. Genere notas Raga aleatorias con simples scripts de Python

Cuando las cosas complejas no funcionan, pruebe opciones simples

Este es un simple este codigo para generar notas Raga aleatorias con longitudes variables. Este script genera solo las notas presentes en el Raga. Este es muy simple y tiene el propósito básico de generar notas aleatorias.

Conclusión

En este artículo, intenté explorar las posibilidades de generar notas Carnatic Music Raga con Magenta NoteSequence. La secuencia automática de notas se puede generar con Melody_RNN, pero produjo notas más allá de las notas del patrón Raga. Entonces, proporcioné un generador de notas aleatorias simple, que puede satisfacer las necesidades básicas mientras se limita a los límites de secuencia de notas de Raga.

Suscribite a nuestro Newsletter

No te enviaremos correo SPAM. Lo odiamos tanto como tú.