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:
- Reproduzca y visualice Carnatic Music Ragas usando la biblioteca de Google Magenta
- Genere notas de Carnatic Music Raga utilizando técnicas de aprendizaje automático
- 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ática–a–vis 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.
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 medianaLa mediana es una medida estadística que representa el valor central de un conjunto de datos ordenados. Para calcularla, se organizan los datos de menor a mayor y se identifica el número que se encuentra en el medio. Si hay un número par de observaciones, se promedia los dos valores centrales. Este indicador es especialmente útil en distribuciones asimétricas, ya que no se ve afectado por valores extremos.... 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.
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.
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ámetrosLos "parámetros" son variables o criterios que se utilizan para definir, medir o evaluar un fenómeno o sistema. En diversos campos como la estadística, la informática y la investigación científica, los parámetros son fundamentales para establecer normas y estándares que guían el análisis y la interpretación de datos. Su adecuada selección y manejo son cruciales para obtener resultados precisos y relevantes en cualquier estudio o proyecto.... 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.