gpt4 book ai didi

python - 如何从 Music21 制作的音乐中生成实时音频输出?

转载 作者:太空狗 更新时间:2023-10-30 00:26:53 33 4
gpt4 key购买 nike

如何从使用 Music21 制作的音乐中生成实时音频输出。如果做不到这一点,我如何通过开源软件从 Music21 制作的音乐中产生任何音频输出?感谢您的帮助。

最佳答案

如您所见,music21 并非设计为音乐播放系统,而是设计为嵌入其他播放系统或从系统内部调用它们。我们不打算在播放系统上投入太多工作(因为硬件支持,我们是一个小型研究实验室,音乐分析方面的工作仍然需要完成,等等),但你的解决方案非常优雅以至于它现在作为 music21.midi.realtime 模块包含在所有版本的 music21(post v1.1)中。下面是一个示例,它利用 music21 的能力动态分配具有不同弯音对象的 MIDI channel ,以模拟微分音播放(大多数 MIDI 播放的主要问题):

#  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.

from music21 import *
import random
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.pitch.midi]
sp = midi.realtime.StreamPlayer(b)
sp.play()

StreamPlayer 的 .play() 函数还可以采用 busyFunction 和 busyArgs 以及 busyWaitMilliseconds 参数,这些参数指定一个函数最多每隔 busyWaitMilliseconds 使用参数调用一次(如果您的系统较慢,可能会更多)。还有一个 endFunction 和 endArgs 将在最后调用,以防您想要设置某种线程播放。 -- Myke Cuthbert(Music21 创作者)

关于python - 如何从 Music21 制作的音乐中生成实时音频输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10983462/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com