Создайте файл MIDI и воспроизводите его, не сохраняя его на диске.
Я нашел этот модуль, который может создавать MIDI-файлы.
Я могу воспроизводить выходной файл, используя pygame mixer.music , но если я пытаюсь играть без сохранения в файл (играть в объект), он не работает, я получаю
pygame.error: Не удалось прочитать из RWops
,
Я пробовал использовать StringIO без успеха. Я получаю ту же ошибку выше.
Кто-нибудь знает какой-либо модуль, который может играть на MIDI-объектах, может быть, создать их тоже?
- Как удалить объект из списка внутри списка?
- Доступ к значению словаря по пользовательскому значению объекта в Python?
- Все ли объект в python, как ruby?
- AttributeError: объект 'str' не имеет атрибута (функции)
- Какие объекты гарантированно имеют различную идентичность?
вы помните, чтобы перемотать свой буфер StringIO?
Я прошел все шаги, которые вы сделали, и получил ту же ошибку. Затем я выследил библиотеку RWops в sourceforge (датирован 2006 годом) и был готов обвинить ее.
то после успеха с объектами в модуле tempfile я попробовал ByteIO из модуля IO. Они оба работали, но я искал (0) с ними перед загрузкой.
Поэтому я вернулся в StringIO и сделал поиск (0) перед загрузкой, и успех!
Вот отредактированная и сжатая модификация образца из midutil:
from midiutil.MidiFile import MIDIFile from StringIO import StringIO # CREATE MEMORY FILE memFile = StringIO() MyMIDI = MIDIFile(1) track = 0 time = 0 channel = 0 pitch = 60 duration = 1 volume = 100 MyMIDI.addTrackName(track,time,"Sample Track") MyMIDI.addTempo(track,time,120) # WRITE A SCALE MyMIDI.addNote(track,channel,pitch,time,duration,volume) for notestep in [2,2,1,2,2,2,1]: time += duration pitch += notestep MyMIDI.addNote(track,channel,pitch,time,duration,volume) MyMIDI.writeFile(memFile) # PLAYBACK import pygame import pygame.mixer from time import sleep pygame.init() pygame.mixer.init() memFile.seek(0) # THIS IS CRITICAL, OTHERWISE YOU GET THAT ERROR! pygame.mixer.music.load(memFile) pygame.mixer.music.play() while pygame.mixer.music.get_busy(): sleep(1) print "Done!"
- Предпочтительно ли возвращать анонимный класс или объект для использования в качестве «структуры»?
- Понимание механики sqlite Python в многомодульных средах
- Как создать несколько объектов класса с помощью цикла в python?
- Изменение переменных в нескольких экземплярах Python
- имя объекта печати / экземпляра в python
- Объект 'int' не является итерируемым сценарием GIS
- Создание моего собственного «целочисленного» объекта в Python
- Можно ли захватить объекты, которые не были привязаны к переменной?
- Когда я передам экземпляр класса методу как самому себе?