Итак, я последовал this question для того, чтобы получить какой-то звук, играя с Music21, а вот код:Music21 Midi Error: type object '_io.StringIO' не имеет атрибута 'StringIO'. Как это исправить?
from music21 import *
import random
def main():
# Set up a detuned piano
# (where each key has a random
# but consistent detuning from 30 cents flat to sharp)
# and play a Bach Chorale on it in real time.
keyDetune = []
for i in range(0, 127):
keyDetune.append(random.randint(-30, 30))
b = corpus.parse('bach/bwv66.6')
for n in b.flat.notes:
n.microtone = keyDetune[n.midi]
sp = midi.realtime.StreamPlayer(b)
sp.play()
return 0
if __name__ == '__main__':
main()
И вот отслеживающий:
Traceback (most recent call last):
File "main.py", line 49, in <module>
main()
File "main.py", line 44, in main
sp.play()
File "G:\Development\Python Development\Anaconda3\lib\site-packages\music21\mi
di\realtime.py", line 104, in play
streamStringIOFile = self.getStringIOFile()
File "G:\Development\Python Development\Anaconda3\lib\site-packages\music21\mi
di\realtime.py", line 110, in getStringIOFile
return stringIOModule.StringIO(streamMidiWritten)
AttributeError: type object '_io.StringIO' has no attribute 'StringIO'
Press any key to continue . . .
Я бегу на Python 3.4 x86 (Anaconda Distribution) в Windows 7 x64. Я не имею ни малейшего представления о том, как это исправить (но, вероятно, какая-то неясная Python 2.x на Python 3.x вопрос несовместимости, как всегда)
EDIT:
Я редактировал импорт, как предложил в ответ, и теперь я получил TypeError:
что бы вы рекомендуете мне делать в качестве альтернативы «играть какой-то звук» с Music21? (Fluidsynth или что-то еще).
Большое спасибо SIHA. Ваше предложение сработало, но после этого у меня появился TypeError (я отредактировал вопрос и включил скриншот). –
Хм. Не уверен, извините. [This] (http://stackoverflow.com/questions/11914472/stringio-in-python3) вопрос упоминает вещь String/Byte w.r.t. Python2/3, хотя. Для меня это похоже, что это не было правильно проверено с Python3. – SiHa
Да, это именно то, что я думаю. –