2 votes

La bibliothèque Python Music21 ne produit que des sons de piano.

J'utilise la bibliothèque Music21 et je veux entendre chaque piste dans l'instrument où elle doit être jouée à partir de mon notebook Jupyter (IPython).

Je parviens à produire de la musique sur différentes pistes dans un fichier midi et à la lire avec timidity, mais je ne parviens pas à entendre d'autres pistes que le piano (midiProgram = 0) à partir du lecteur IPython.

Je suis actuellement sur Ubuntu 18.04 et j'utilise music21 v5.7.0. J'ai également été en mesure de reproduire ce problème sur mon système Mac.

J'ai essayé d'écrire un flux dans un fichier midi et de l'afficher dans le carnet de notes, mais je ne peux entendre que les instruments ajustés dans le fichier midi généré.

from music21 import *

core_corp = corpus.corpora.CoreCorpus()
bach_piece = core_corp.search('bwv120.8-a')[0].parse()

bach_piece.show("midi")

for el in bach_piece.recurse():
    if 'Instrument' in el.classes:
        el.activeSite.replace(el, instrument.Trumpet())

bach_piece.show("midi")

Je m'attends à entendre tous les sons de trompette dans le deuxième appel show(), mais je n'entends toujours que du piano. Cependant, lorsque j'ouvre le fichier midi généré à l'aide de timidity, je les entends tous comme des trompettes.

En fouillant dans le code source, je pense que cela a quelque chose à voir avec le midiPlayer qui est généré par le javascript ou dans le décodage du fichier midi encodé en base64, mais je n'ai pas d'expertise en la matière.

Toute aide serait grandement appréciée, ma solution actuelle consiste à utiliser

!timidity <path to file>

Dans mon carnet, au cas où quelqu'un d'autre aurait ce problème.

1voto

Il y a un problème avec le lecteur MIDI de Jupyter Notebook, pas avec Music21. Vous pouvez entendre le son de tous les instruments lorsque vous écrivez et jouez le fichier MIDI avec le bon lecteur MIDI. Pour écrire des fichiers MIDI :

stream1 = converter.parse('d:/musicxml_folder/Rondo_Alla_Turca.xml')
stream1.write('midi', 'd:/musicxml_folder/Rondo_Alla_Turca.mid')

Pour lire le fichier MIDI, j'utilise Windows Media Player. Lorsque je fais cela dans l'IDE Pycharm

stream1.show('midi')

Le lecteur Windows Media s'ouvre. Si vous voulez entendre le son d'un fichier MIDI dans un autre environnement, vous pouvez utiliser une bibliothèque capable de lire des fichiers MIDI.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X