Воспроизведение звуков ударных в библиотеке 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')
Другие вопросы по тегам