Generieren Sie Ihre eigene karnatische Musik mit Google Magenta

Inhalt

Dieser Artikel wurde im Rahmen der Data Science Blogathon.

Musik ist der Rhythmus des Lebens

es ist eine universelle sprache. Hat die Fähigkeit, den undurchsichtigen Körper mühelos zu transzendieren, der subtile Geist und die unsichtbare Seele. Am Ende eines langen Arbeitstages, Das Hören Ihrer Lieblingsmusik kann Ihnen den dringend benötigten Komfort und frische Energie bringen, um dem Leben mit einem Lächeln zu begegnen.

In diesem Artikel, Ich habe mich auf folgende Themen konzentriert:

  1. Spielen und betrachten Sie Carnatic Music Ragas mit der Google Magenta Library
  2. Generieren Sie Carnatic Music-Raga-Noten mit Techniken des maschinellen Lernens
  3. Generieren Sie zufällige Carnatic Music-Raga-Noten mit einfachen Python-Skripten

Einführung

Ich habe in meiner Kindheit die Grundlagen der karnatischen Musik gelernt, Ich hatte schon immer eine Faszination dafür, die Generierung dieser uralten Form der klassischen südindischen Musik zu automatisieren. Hindustani-Musik ist in Nordindien beliebt. Indische Filmmusik ist heutzutage beliebter, die oft von diesen beiden klassischen Musikformen inspiriert ist.

Auf der Suche nach einem guten Werkzeug um Musik zu generieren, Ich bin auf das Google Magenta-Projekt gestoßen. Es hat eine einfache, aber leistungsstarke Möglichkeit, Notensequenzmusik zu erzeugen. Hier ist mein Versuch, mit diesem Tool karnatische Musik zu erzeugen.

Grundlagen der karnatischen MusikeinLive-Westernmusik

Western Musik hat Skalen und Noten, die von den Tasten mit erzeugt werden Wichtig Ja Weniger Waage, während indische klassische Musik hat Vielfalt Ö Karosserie das ist mehr als eine Reihe von Notizen oder Swaras.

Westliche notengenerierte Musik ist vom Design her unauffällig. Raga ist kontinuierlich und fängt menschliche Emotionen zusammen mit der Stimmung ein, Ausdruck und Energie.

Trotz vieler Unterschiede, Glücklicherweise, beide basieren auf 12 Keynotes oder Swaras was dazu beitragen kann, indische klassische Musik aus einer breiteren Perspektive zu generieren, mikrotonale Perfektion ignorieren.

Mal sehen, wie die Noten der klassischen indischen Musik (karnatische Musik) werden den Tönen des E-Pianos zugeordnet, um die Gemeinsamkeiten und Möglichkeiten der karnatischen Musikgeneration zu verstehen.

59760keyboard_raga_notes-1025838

Im Gegensatz zum westlichen Musiksystem, wo Swaras/ die Frequenzen der Töne sind fest; im klassischen Musiksystem Indiens sind Variationen in wenigen Tönen erlaubt. Dieses Schema bietet ‚Sa‘ Ja ‚Pensilvania‘ als feste Notizen, mit ‚Mutter‘ haben 2 Varianten und die restlichen Swaras haben 3 Varianten jeweils. Swaras / Anmerkungen und seine Variationen sind in der obigen Tabelle angegeben.

Gesamt, Carnatic Music berücksichtigen 16 Swaras / Hinweise zur Klassifizierung und Unterbringung einer reichen Vielfalt von Ragas.

„Mutter“ ist der Median zwischen den 7 hauptsächlich Swaras. Angenommen ‚Ma‘ verfügt über 2 Varianten, teile die Wurzel Ragams auch genannt „MelakartaRagams Ö Eltern-Ragams in zwei gleichen Teilen. Dieses Bild unten zeigt die Aufteilung dieser 72 wichtig Ragams was haben die 7 hauptsächlich Swaras. Tausende von Kinder-Ragas werden durch das Hinzufügen verdient, die Noten dieser überspringen oder transponieren 72 Hauptragas.

85831melakartas-1877691

1.Karnatische Musik mit Magenta

Genug Theorie, Kommen wir nun zur Carnatic Music Generation mit Google Magenta.

Klicken dieser Link um die folgenden Beispiele selbst auszuführen. Dies ist der einfachste Weg, um Magenta zu verwenden. Hier, kann Musik erzeugen, laden Sie es als MIDI herunter und sehen Sie sich auch die grafischen Musikmuster mit der Bokeh-Bibliothek an.

Alles in Magenta konzentriert sich auf HinweisSequenzen. Dies ist eine fantastische abstrakte Darstellung einer Reihe von Notizen, jeweils mit unterschiedlichen Nuancen oder srutis, Schlaginstrumente und Geschwindigkeiten, mögen MIDI.

Anfänger der Carnatic Music werden zunächst mit . unterrichtet Mayamalavagowla Vielfalt, das 15 von Melakarta (siehe Tabelle oben). Hat folgendes Noten / swaras.

zu, ri1, ga2, ma1, so, da1, ni2

Aufsteigende Reihenfolge (Aarohana) und absteigende Reihenfolge (Avarohana) sie haben alle das gleiche 7 Swaras, das ist ein gemeinsames Eigentum für alle Ragams de Melakarta. Das folgende Python-Skript spielt diese Ragam-Notizen ab. Laufen dieser Code in El Paso 1 aus dem oben gezeigten Hello Magenta Colab-Fenster.

Visualisieren der Ragas

Der obige Code generiert den Graphen und die Notensequenz als MIDI-Datei für 3 Horn.

72531mg_sb_ragas-5176142

Sie können die Symmetrie der Noten in der Grafik sehen, das könnte der Grund sein, warum neue Studenten damit anfangen Mayamalavagowla Ragam.

Das Drücken der wichtigsten Tastennoten auf dem Klavier erzeugt Sankarabharam Ragam, die eine gaußsche platicúrtic-Normalverteilung zu sein scheint.

Musik handelt von melodischen Mustern

Einem neuen Schüler wird das Singen beigebracht / spiel ein paar Noten /Swaras Muster. Hier ist ein Code Fragment eines so schönen Musters namens sarali swaram.

Etwas Vielfalt mit der gleichen auf- und absteigenden Reihenfolge, Noten können mit dem vorherigen Pattern gespielt werden

Generierung von Notenfolgen mit variabler Länge

Viele Male, Die Noten / Swaras sollten mit unterschiedlichen Längen gespielt werden. NoteSequence ha proporcionado esta función con los Parameter start_time y end_time. Dies dieser Code erzeugt Noten für eine dieser Grundkompositionen namens Pillari Geetam.

2. Genera notas Raga usando Melody_RNN

Bis jetzt, Wir verwenden NoteSequence nur, um Carnatic Raga Notes zu generieren. Jetzt, Versuchen wir, Musik mit dem Recurrent Neural Network-Modell zu generieren, das vom Google Magenta-Team entwickelt wurde.

Ein MelodyRNN ist eins Basierend auf LSTM Sprachmodell für Musiknoten: am besten fahren Sie mit einer Notenfolge fort, die Sie versorgt. Versuchen Sie, dies auszuführen dieser Code in El Paso 2 aus der Hello Magenta Colab-Datei, um das Ergebnis der Generierung von Carnatic Raga Notes mit Melody_RNN . zu sehen.

Ich habe gesehen, dass die von Melody_RNN generierte Ausgabesequenz über die angegebenen Raga-Noten hinausgeht. Ein einzelner Notenwechsel kann zu einer Abweichung vom Raga-Muster führen. Dies ist aufgrund der starren Eigenschaften von Raga . nicht so wünschenswert.

3. Generieren Sie Raga-Notizen mit einfachen Python-Skripten

Wenn komplexe Dinge nicht funktionieren, Probieren Sie einfache Optionen aus

Dies ist ein einfaches dieser Code um zufällige Raga-Noten mit unterschiedlichen Längen zu erzeugen. Dieses Skript generiert nur die im Raga . vorhandenen Noten. Dieser ist sehr einfach und hat den Hauptzweck, zufällige Notizen zu generieren.

Fazit

In diesem Artikel, Ich habe versucht, die Möglichkeiten zu erkunden, Carnatic Music Raga-Noten mit Magenta NoteSequence zu erzeugen. Automatische Notensequenz kann mit Melody_RNN erzeugt werden, aber es erzeugte Noten jenseits der Noten des Raga-Musters. Dann, Ich habe einen einfachen Zufallsnotengenerator bereitgestellt, die die Grundbedürfnisse befriedigen kann, während sie sich auf die Grenzen der Notensequenz von Raga beschränkt.

Abonniere unseren Newsletter

Wir senden Ihnen keine SPAM-Mail. Wir hassen es genauso wie du.

Datenlautsprecher