Чтение MIDI-файла в Python

Я хочу иметь возможность читать события из MIDI-файла в Python. Я искал библиотеки, но не могу найти ту, которая работает с моим MIDI-файлом в windows. Мне не нужно ничего делать в реальном времени, а просто нужна простая библиотека, которая дает мне события и время. Будет ли проще написать ее для себя? Любая помощь будет оценена.

5 ответов


структура midi-файла довольно проста. если вы не можете найти готовую библиотеку (я не знаю ни одной), и вам нужны только события и время, я предлагаю вам попробовать разобрать файл самостоятельно.

(подготовьтесь к большому смещению бит: MIDI-данные хранятся в строках из 7-битных блоков)

кроме того, вы говорите, что не можете найти библиотеку, которая работает с вашим MIDI-файлом в Windows: MIDI-файл должен быть портативным, и python тоже, поэтому un * x lib должен работать одинаково хорошо на windows (или разработчик пропустил точку как MIDI, так и python).


проверьте эту библиотеку python на github, похоже, делает именно то, что вам нужно:

https://github.com/vishnubob/python-midi


существует библиотека под названием mido, которая хороша для чтения этих файлов:https://pypi.python.org/pypi/mido/1.1.11


однажды я написал простую библиотеку на чистом C для чтения / записи Midifiles. Если вы хотите посмотреть здесь, это:http://code.google.com/p/middl/

это низкоуровневая библиотека, которая облегчает задачу работы с midifiles, но вы должны быть знакомы с Midi-файлом formaat, чтобы использовать его.


лучше всего было бы получить библиотеку c или C++ и взаимодействовать с ней с помощью расширения Python для c.