Воспроизведение звуков ударных в библиотеке Python Music21
Прошло пару недель с тех пор, как я начал читать книгу "Создание музыки с помощью компьютеров: творческое программирование на Python", и теперь я застрял, пытаясь воспроизвести звуки ударных с помощью этой библиотеки. Я использую библиотеку music21 от Mit, так как библиотека, предложенная в книге, не работает для меня (она называется просто "музыка"). Вот пример кода, который книга использует для воспроизведения звука бас-барабана:
from music import *
drumPart = Part("Drums", 0, 9)
note = Note(ACOUSTIC_BASS_DRUM, QN) # a bass drum strike
drumPhrase = Phrase()
drumPhrase.addNote(note)
drumPart.addPhrase(drumPhrase)
Play.midi(drumPart)
Я попытался сделать то же самое в music21 со звуком Hi Hat, но звук не воспроизводился:
import music21
from music21 import note, stream, pitch, duration, instrument, tempo, chord
from music21.note import Note, Rest
from music21.chord import Chord
from music21 import midi
def createInstrument(instrument, midiChannel):
i = instrument
i.midiChannel = midiChannel
return i
n = Note("A2", type='quarter')
drumPart = stream.Part()
drumPart.insert(createInstrument(instrument.HiHatCymbal(), 9))
drumMeasure = stream.Measure()
drumMeasure.append(n)
drumPart.append(drumMeasure)
drumPart.show('midi')
Любой совет был бы очень полезен, поскольку в Интернете практически нет информации об этой библиотеке, кроме ее веб-страницы.
Заранее спасибо, Хулиан!
1 ответ
Привет, Джулиан! Я заставил его работать на моем Mac с небольшим изменением Я надеюсь, что это поможет! Я в основном изменил только одну строку вашего кода, и теперь он работает на моем Mac. Когда я говорю, что это работает, я имею в виду, что это создает mid
файл правильно, но не удается открыть его.
Причина, по которой он не открывается, состоит в том, что проигрыватель по умолчанию (QuickTime в моем случае) не смог запустить средний файл. Вы можете установить MuseScore (это бесплатно) и установить его в качестве программы по умолчанию для mid
файлы то все должно работать плавно.
from music21 import stream, instrument
from music21.note import Note
n = Note("A2", type='quarter')
drumPart = stream.Part()
drumPart.insert(0, instrument.Woodblock())
drumMeasure = stream.Measure()
drumMeasure.append(n)
drumPart.append(drumMeasure)
# This line actually generate the midi on my mac but there is no relevant software to read it and the opening fail
drumPart.show('midi')