Générez votre propre musique carnatique avec Google Magenta

Contenu

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:

  1. Jouez et visualisez des ragas de musique carnatique à l'aide de la bibliothèque Google Magenta
  2. Générer des notes de raga de musique carnatique à l'aide de techniques d'apprentissage automatique
  3. 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 carnatiqueunemusique 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.

59760clavier_raga_notes-1025838

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édian entre les 7 principaux Swaras. Depuis ‘Ma’ possède 2 variantes, diviser le Racine Ragams aussi appelé “MelakartaRagams 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.

85831melakartas-1877691

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.

72531mg_sb_ragas-5176142

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ètres 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.

Abonnez-vous à notre newsletter

Nous ne vous enverrons pas de courrier SPAM. Nous le détestons autant que vous.