Cet article a été publié dans le cadre du Blogathon sur la science des données.
La musique est le rythme de la vie
c'est une langue universelle. A la capacité de transcender sans effort le corps opaque, l'esprit subtil et l'âme invisible. A la fin d'une longue journée de dur labeur, écouter votre composition musicale préférée peut vous apporter le confort dont vous avez tant besoin et une énergie fraîche pour affronter la vie avec le sourire.
Dans cet article, Je me suis concentré sur les sujets suivants:
- Jouez et visualisez des ragas de musique carnatique à l'aide de la bibliothèque Google Magenta
- Générer des notes de raga de musique carnatique à l'aide de techniques d'apprentissage automatique
- Générez des notes Raga de musique carnatique aléatoires avec des scripts Python simples
introduction
Ayant appris les bases de la musique carnatique dans mon enfance, J'ai toujours eu une fascination pour automatiser la génération de cette ancienne forme de musique classique de l'Inde du Sud. La musique hindoustani est populaire en Inde du Nord. La musique de film indienne est plus populaire de nos jours, qui s'inspire souvent de ces deux formes classiques de musique.
A la recherche d'un bon outil pour générer de la musique, Je suis tombé sur le projet Google Magenta. Il a un moyen simple mais puissant de générer de la musique de séquence de notes. Voici ma tentative de générer de la musique carnatique avec cet outil.
Bases de la musique carnatique–une–musique occidentale en direct
musique "western a des gammes et des notes générées par les touches avec Important Oui Moins Balance, tandis que la musique classique indienne a Variété O corps qui est plus qu'un ensemble de notes ou Swaras.
La musique occidentale générée par des notes est discrète par conception. Raga est continu et capture les émotions humaines ainsi que l'humeur, expression et énergie.
Malgré de nombreuses différences, Heureusement, les deux sont basés sur 12 discours ou Swaras qui peut aider à générer de la musique classique indienne dans une perspective plus large, ignorer les perfections microtonales.
Voyons comment les notes de la musique classique indienne (musique carnatique) sont affectés aux notes du piano électronique pour comprendre les similitudes et les possibilités de la génération de musique carnatique.
Contrairement au système musical occidental où Swaras/ les fréquences des notes sont fixes; dans le système de musique classique de l'Inde, les variations de quelques notes sont autorisées. Ce régime fournit 'À’ Oui 'Pennsylvanie’ comme notes fixes, avec 'Maman’ ayant 2 variantes et le reste Swaras ayant 3 variantes chacune. Swaras / Remarques et ses variations sont données dans le tableau ci-dessus.
En tout, Considération de la musique carnatique 16 Swaras / Notes pour classer et accueillir une riche variété de Ragas.
“Maman” est le médianLa médiane est une mesure statistique qui représente la valeur centrale d’un ensemble de données ordonnées. Pour le calculer, Les données sont organisées de la plus basse à la plus élevée et le numéro au milieu est identifié. S’il y a un nombre pair d’observations, La moyenne des deux valeurs fondamentales est calculée. Cet indicateur est particulièrement utile dans les distributions asymétriques, puisqu’il n’est pas affecté par les valeurs extrêmes.... entre les 7 principaux Swaras. Depuis ‘Ma’ possède 2 variantes, diviser le Racine Ragams aussi appelé “Melakarta” Ragams O ragams de parents en deux parties égales. Cette image ci-dessous montre la division de ces 72 important Ragams qu'est-ce que le 7 principaux Swaras. Des milliers de Ragas pour enfants sont gagnés en ajoutant, sauter ou transposer les notes de ces 72 Principaux ragas.
1.Musique carnatique avec magenta
Assez de théorie, Passons maintenant à la génération Carnatic Music en utilisant Google Magenta.
Cliquer ce lien pour exécuter vous-même les exemples suivants. C'est le moyen le plus simple de commencer à utiliser Magenta. Ici, peut générer de la musique, téléchargez-le en MIDI et visualisez également les motifs musicaux graphiques avec la bibliothèque Bokeh.
Tout dans Magenta se concentre sur RemarqueSéquences. Il s'agit d'une fantastique représentation abstraite d'une série de notes, chacun avec des nuances différentes ou sruti, instruments de frappe et vitesses, Comme MIDI.
Les débutants de la musique carnatique sont d'abord enseignés avec Mayamalavagowla Variété, les 15 de Melakarta (voir tableau ci-dessus). A ce qui suit notes / swaras.
à, ri1, ga2, ma1, donc, da1, ni2
Ordre croissant (Aarohana) et ordre décroissant (Avarohana) ils ont tous pareil 7 Swaras, qui est une propriété commune à tous Ragams de Melakarta. Le script Python suivant joue ces notes ragam. Courir ce code à El Paso 1 à partir de la fenêtre Hello Magenta Colab illustrée ci-dessus.
Visualiser les Ragas
Le code ci-dessus génère le graphique et la séquence de notes sous forme de fichier MIDI pour 3 Corne.
Vous pouvez voir la symétrie des notes sur le graphique, ce qui peut être la raison pour laquelle les nouveaux étudiants commencent avec ce Mayamalavagowla Ragam.
En appuyant sur les notes principales du piano, vous générerez Sankarabharam Ragam, qui semble être une distribution normale platicúrtique gaussienne.
La musique parle de motifs mélodieux
Un nouvel étudiant apprend à chanter / jouer quelques notes /Swaras motifs. Voici un code fragment d'un si beau motif appelé sarali swaram.
Quelque variété avec le même ordre croissant et décroissant, les notes peuvent être jouées avec le motif précédent
Génération de séquences de notes de longueur variable
Beaucoup de fois, les notes / les swaras doivent être joués avec des longueurs variables. NoteSequence ha proporcionado esta función con los paramètresLes "paramètres" sont des variables ou des critères qui sont utilisés pour définir, mesurer ou évaluer un phénomène ou un système. Dans divers domaines tels que les statistiques, Informatique et recherche scientifique, Les paramètres sont essentiels à l’établissement de normes et de standards qui guident l’analyse et l’interprétation des données. Leur sélection et leur manipulation correctes sont cruciales pour obtenir des résultats précis et pertinents dans toute étude ou projet.... start_time y end_time. Ce ce code génère des notes pour l'une de ces compositions de base appelées Pilari Geetam.
2. Genres notas Raga usando Melody_RNN
Jusqu'à maintenant, nous utilisons uniquement NoteSequence pour générer des notes Carnatic Raga. À présent, Essayons de générer de la musique avec le modèle de réseau neuronal récurrent développé par l'équipe Google Magenta.
Un MelodyRNN est un Basé sur LSTM modèle de langage pour les notes de musique: il est préférable de continuer avec une séquence de notes qui vous. Essayez d'exécuter ceci ce code à El Paso 2 à partir du fichier Hello Magenta Colab pour voir le résultat de la génération de Carnatic Raga Notes à l'aide de Melody_RNN.
J'ai vu que la séquence de sortie générée par Melody_RNN va au-delà des notes Raga données. Un seul changement de note peut entraîner une déviation du motif Raga. Ce n'est pas si souhaitable sur la base des propriétés rigides de Raga.
3. Générer des notes Raga avec des scripts Python simples
Quand les choses complexes ne fonctionnent pas, essayez des options simples
C'est un simple ce code pour générer des notes Raga aléatoires avec des longueurs variables. Ce script ne génère que les notes présentes dans le Raga. Celui-ci est très simple et a pour objectif fondamental de générer des notes aléatoires.
conclusion
Dans cet article, J'ai essayé d'explorer les possibilités de générer des notes Carnatic Music Raga avec Magenta NoteSequence. Une séquence de notes automatique peut être générée avec Melody_RNN, mais il a produit des notes au-delà des notes du motif Raga. Ensuite, J'ai fourni un simple générateur de notes aléatoires, qui peut répondre aux besoins de base tout en se limitant aux limites de séquence de notes de Raga.