Créez un fichier MIDI en Python en utilisant pretty_midi

introduction

Je joue avec le projet de génération de musique de TensorFlow "Magenta".

Référence: [Laissez Sakanaction apprendre du projet de création artistique et musicale de TensorFlow "Magenta". ] (http://qiita.com/tackey/items/1295a0347a8b4cc30d46)

En guise de pré-processus, j'ai découvert que je voulais jouer avec des fichiers MIDI en Python, et il semblait que Magenta utilisait pretty_midi. Dans cet article, je vais lancer l'exemple documentation pretty_midi 0.2.6 pour voir comment fonctionne pretty_midi.

Exemple de code

Écrivez l'exemple de code et les commentaires.

sample.py


import pretty_midi

# Create a PrettyMIDI object
#Créez un objet Pretty MIDI.
cello_c_chord = pretty_midi.PrettyMIDI()

# Create an Instrument instance for a cello instrument
#Créez une instance d'instrument. Ici violoncelle

#Entrez le nom de l'instrument et il renverra le numéro de programme General MIDI correspondant
cello_program = pretty_midi.instrument_name_to_program('Cello')


#Créer une instance d'instrument en tant que violoncelle
cello = pretty_midi.Instrument(program=cello_program)


# Iterate over note names, which will be converted to note number later
#La mélodie est décrite par NoteName, mais elle sera convertie en NoteNumber ultérieurement.

for note_name in ['C5', 'E5', 'G5']:
    # Retrieve the MIDI note number for this note name
    #Recherche du numéro de note à partir du nom de la note.
    note_number = pretty_midi.note_name_to_number(note_name)

    # Create a Note instance, starting at 0s and ending at .5s
    #Créez une NoteInstance. du son(pitch)Heure de début et heure de fin,
    #Définissez la vitesse.
    note = pretty_midi.Note(
        velocity=100, pitch=note_number, start=0, end=.5)
    
    # Add it to our cello instrument
    #Ajoutez la NoteInstance créée ci-dessus à l'instrument pour violoncelle.
    cello.notes.append(note)
    
    
# Add the cello instrument to the PrettyMIDI object
#Ajoutez l'instrument Chello à l'objet Pretty MIDI.
cello_c_chord.instruments.append(cello)


# Write out the MIDI data
#Exportez un objet PrettyMIDI sous forme de fichier MIDI.
cello_c_chord.write('cello-C-chord.mid')

MIDI créé

Un fichier MIDI avec un son domiso de 0,5 seconde (1 battement à 120 BPM) a été créé. (Affiché dans la logique X)

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

À la fin

Ensuite, je voudrais lire un fichier MIDI existant et diviser le fichier pour chaque instrument.

Merci beaucoup.

Recommended Posts

Créez un fichier MIDI en Python en utilisant pretty_midi
Créer un fichier binaire en Python
[GPS] Créer un fichier kml avec Python
Comment créer un fichier JSON en Python
Créer une fonction en Python
Créer un dictionnaire en Python
Créer un bot de collecte de données en Python à l'aide de Selenium
Créez votre premier fichier GDSII en Python en utilisant gdspy
Paquets qui gèrent le MIDI avec Python midi et pretty_midi
Créer une interface graphique python à l'aide de tkinter
Créer un conteneur DI avec Python
Créer une chaîne aléatoire en Python
Créer une application GUI simple en Python
[Python] Créer un environnement Batch à l'aide d'AWS-CDK
Scraping de sites Web à l'aide de JavaScript en Python
Dessinez une structure arborescente en Python 3 à l'aide de graphviz
Opérations sur les fichiers en Python
Créez des raccourcis pour exécuter des fichiers Python sur le terminal avec VScode
Traitement de fichiers en Python
[Python] Fractionner un gros fichier Flask en utilisant Blueprint
Lire un fichier contenant des lignes brouillées en Python
Créer un module Python
Je veux créer une fenêtre avec Python
Créer un graphique de distribution normale standard en Python
Créer une carte Web en utilisant Python et GDAL
Créer un fichier wav à partir du shader GLSL en utilisant python3
Manipulation de fichiers avec Python
J'ai essayé de lire un fichier CSV en utilisant Python
Créer un modèle d'investissement dynamique simple en Python
Créer une nouvelle page en confluence avec Python
Créer un objet datetime à partir d'une chaîne en Python (Python 3.3)
Exécutez des fichiers Python à partir de HTML en utilisant Django
Créer un fichier au format Photoshop (.psd) avec python
Créer un package contenant des commandes globales en Python
Créer un enregistrement avec des pièces jointes dans KINTONE à l'aide du module de requêtes Python
Créer un environnement Python
Créer un modèle d'antenne cadre en Python dans KiCad
[Python] [Word] [python-docx] Essayez de créer un modèle de phrase de mot en Python en utilisant python-docx
[Docker] Créez un environnement jupyterLab (python) en 3 minutes!
Créer en Python sans fichier image factice dans Django et tester le téléchargement de l'image
Créer un diagramme de dispersion elliptique en Python sans utiliser une distribution normale multivariée
Analyser une chaîne JSON écrite dans un fichier en Python
Importez un fichier JPG à l'aide de l'API Google Drive en Python
Essayez de créer un fichier compressé en utilisant Python et zlib
Enregistrez collectivement des données dans Firestore à l'aide d'un fichier csv en Python
[CRUD] [Django] Créer un site CRUD en utilisant le framework Python Django ~ 1 ~
[API LINE Messaging] Créez un menu riche avec Python
Créez un fichier image à l'aide de PIL (Python Imaging Library).
[Python] Générer ValueObject avec un constructeur complet à l'aide de classes de données
Créez un plug-in pour exécuter Python Doctest avec Vim (1)
Un mémorandum pour exécuter un script python dans un fichier bat
Je veux échantillonner au hasard un fichier avec Python
En Python, créez un décorateur qui accepte dynamiquement les arguments Créer un décorateur
[CRUD] [Django] Créer un site CRUD en utilisant le framework Python Django ~ 2 ~
Script Python qui crée un fichier JSON à partir d'un fichier CSV
Comment exécuter une commande à l'aide d'un sous-processus en Python
[Python] Créez un fichier de distribution pour le programme Tkinter avec cx_Freeze
Créez un faux serveur Minecraft en Python avec Quarry