Erstellen Sie eine MIDI-Datei in Python mit pretty_midi

Einführung

Ich spiele mit TensorFlows Musikgenerierungsprojekt "Magenta".

Referenz: [Lassen Sie Sakanaction von TensorFlows Kunst- und Musikgenerierungsprojekt "Magenta" lernen. ]] (http://qiita.com/tackey/items/1295a0347a8b4cc30d46)

Als Vorprozess fand ich heraus, dass ich mit MIDI-Dateien in Python spielen wollte, und es schien, dass Magenta hübsche_midi verwendete. In diesem Beitrag führe ich das Beispiel Pretty_Midi 0.2.6-Dokumentation aus, um zu sehen, wie Pretty_Midi funktioniert.

Beispielcode

Schreiben Sie den Beispielcode und die Kommentare.

sample.py


import pretty_midi

# Create a PrettyMIDI object
#Erstellen Sie ein hübsches MIDI-Objekt.
cello_c_chord = pretty_midi.PrettyMIDI()

# Create an Instrument instance for a cello instrument
#Erstellen Sie eine Instrumenteninstanz. Hier Cello

#Geben Sie den Instrumentennamen ein und es wird die entsprechende General MIDI-Programmnummer zurückgegeben
cello_program = pretty_midi.instrument_name_to_program('Cello')


#Erstellen Sie eine Instrumenteninstanz als Cello
cello = pretty_midi.Instrument(program=cello_program)


# Iterate over note names, which will be converted to note number later
#Die Melodie wird von NoteName beschrieben, später jedoch in NoteNumber konvertiert.

for note_name in ['C5', 'E5', 'G5']:
    # Retrieve the MIDI note number for this note name
    #Suche nach Notennummer aus Notenname.
    note_number = pretty_midi.note_name_to_number(note_name)

    # Create a Note instance, starting at 0s and ending at .5s
    #Erstellen Sie eine NoteInstance. Klang(pitch)Startzeit und Endzeit,
    #Geschwindigkeit definieren.
    note = pretty_midi.Note(
        velocity=100, pitch=note_number, start=0, end=.5)
    
    # Add it to our cello instrument
    #Fügen Sie die oben erstellte NoteInstance zum Celloinstrument hinzu.
    cello.notes.append(note)
    
    
# Add the cello instrument to the PrettyMIDI object
#Fügen Sie das Chello-Instrument zum Pretty MIDI-Objekt hinzu.
cello_c_chord.instruments.append(cello)


# Write out the MIDI data
#Exportieren Sie ein PrettyMIDI-Objekt als MIDI-Datei.
cello_c_chord.write('cello-C-chord.mid')

Erstellt MIDI

Eine MIDI-Datei mit einem Domiso-Sound von 0,5 Sekunden (1 Takt bei 120 BPM) wurde erstellt. (Wird in Logik X angezeigt)

スクリーンショット 2016-10-07 17.56.55.png

Am Ende

Als nächstes möchte ich eine vorhandene MIDI-Datei lesen und die Datei für jedes Instrument teilen.

Vielen Dank.

Recommended Posts

Erstellen Sie eine MIDI-Datei in Python mit pretty_midi
Erstellen Sie eine Binärdatei in Python
[GPS] Erstellen Sie eine kml-Datei mit Python
So erstellen Sie eine JSON-Datei in Python
Erstellen Sie eine Funktion in Python
Erstellen Sie ein Wörterbuch in Python
Erstellen Sie mit Selenium einen Datenerfassungsbot in Python
Erstellen Sie Ihre erste GDSII-Datei in Python mit gdspy
Pakete, die MIDI mit Python Midi und Pretty_Midi verarbeiten
Erstellen Sie mit tkinter eine Python-GUI
Erstellen Sie einen DI-Container mit Python
Erstellen Sie eine zufällige Zeichenfolge in Python
Erstellen Sie eine einfache GUI-App in Python
[Python] Erstellen Sie eine Stapelumgebung mit AWS-CDK
Scraping von Websites mit JavaScript in Python
Zeichnen Sie mit graphviz eine Baumstruktur in Python 3
Dateioperationen in Python
Erstellen Sie Verknüpfungen, um Python-Dateien auf dem Terminal mit VScode auszuführen
Dateiverarbeitung in Python
[Python] Teilen Sie eine große Flask-Datei mit Blueprint
Lesen Sie eine Datei mit verstümmelten Linien in Python
Erstellen Sie ein Python-Modul
Ich möchte mit Python ein Fenster erstellen
Erstellen Sie in Python ein Diagramm der Standardnormalverteilung
Erstellen Sie eine Webmap mit Python und GDAL
Erstellen Sie mit python3 eine WAV-Datei aus dem GLSL-Shader
Dateimanipulation mit Python
Ich habe versucht, eine CSV-Datei mit Python zu lesen
Erstellen Sie in Python ein einfaches Momentum-Investmentmodell
Erstellen Sie eine neue Seite im Zusammenfluss mit Python
Erstellen Sie ein Datum / Uhrzeit-Objekt aus einer Zeichenfolge in Python (Python 3.3).
Führen Sie Python-Dateien mit Django aus HTML aus
Erstellen Sie mit Python eine Datei im Photoshop-Format (.psd)
Erstellen Sie in Python ein Paket mit globalen Befehlen
Erstellen Sie mit dem Python-Anforderungsmodul einen Datensatz mit Anhängen in KINTONE
Erstellen Sie eine Python-Umgebung
Erstellen Sie in KiCad ein Rahmenantennenmuster in Python
[Python] [Word] [python-docx] Versuchen Sie, mit python-docx eine Vorlage für einen Wortsatz in Python zu erstellen
[Docker] Erstellen Sie in 3 Minuten eine jupyterLab (Python) -Umgebung!
Testen Sie das Hochladen von Bildern, indem Sie in Python erstellen, ohne Dummy-Bilddateien in Django zu platzieren
Erstellen Sie in Python ein elliptisches Streudiagramm, ohne eine multivariate Normalverteilung zu verwenden
Analysieren Sie eine JSON-Zeichenfolge, die in eine Datei in Python geschrieben wurde
Laden Sie eine JPG-Datei mit der Google Drive-API in Python hoch
Versuchen Sie, eine komprimierte Datei mit Python und zlib zu erstellen
Registrieren Sie gemeinsam Daten im Firestore mithilfe der CSV-Datei in Python
[CRUD] [Django] Erstellen Sie eine CRUD-Site mit dem Python-Framework Django ~ 1 ~
[LINE Messaging API] Erstellen Sie mit Python ein umfangreiches Menü
Erstellen Sie eine Bilddatei mit PIL (Python Imaging Library).
[Python] Generieren Sie ValueObject mit dem vollständigen Konstruktor mithilfe von Datenklassen
Erstellen Sie ein Plug-In, um Python Doctest mit Vim (1) auszuführen.
Ein Memorandum zum Ausführen eines Python-Skripts in einer Bat-Datei
Ich möchte eine Datei mit Python zufällig testen
Erstellen Sie in Python einen Dekorator, der Argumente dynamisch akzeptiert. Erstellen Sie einen Dekorator
[CRUD] [Django] Erstellen Sie eine CRUD-Site mit dem Python-Framework Django ~ 2 ~
Python-Skript, das eine JSON-Datei aus einer CSV-Datei erstellt
So führen Sie einen Befehl mit einem Unterprozess in Python aus
[Python] Erstellen Sie mit cx_Freeze eine Verteilungsdatei für das Tkinter-Programm
Erstellen Sie mit Quarry einen gefälschten Minecraft-Server in Python