自从我开始阅读《用计算机制作音乐:用Python进行创意编程》这本书已经过去了两个星期,现在我在尝试使用该库播放鼓声时陷入了困境。我正在使用Mit的music21库,因为该书提出的库对我不起作用(它简称为“音乐”)。
这是本书用来播放低音鼓声音的代码示例:

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)

我尝试在音乐21中使用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')

任何建议都将非常有帮助,因为在Web上除WebPage之外几乎没有任何关于此库的信息。

提前致谢,
朱利安!

最佳答案

嗨,朱利安(Julian),我做了一点改动就使它可以在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')

关于python - 在Python Music21库中播放鼓声,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38938938/

10-13 00:01
查看更多