gpt4 book ai didi

python - 创建一个 Spacey Jazz Musical 和弦生成器并使用随机方式为每个音符分配不同的概率

转载 作者:行者123 更新时间:2023-12-01 00:43:25 25 4
gpt4 key购买 nike

我想创建一个生成器,在使用随机生成和弦时,我可以为生成器提供音符并分别为每个音符分配概率。在此示例中,我有 ["c", "e", "g", "b"],每个音符我希望有不同的被选择概率,例如 C [4] 最大概率 E[2] 小于概率 G[3]B[1]。我还想添加一个功能,使整个四个音符生成永不重复。因此,如果先渲染 B(这种情况很少见),那么 CG 更有可能继续渲染 - 使这种组合成为最罕见的进展四个音符[B,E,G,C]。当添加对音乐的正确理解以及添加第二个和第三个 Octave 音阶时生成一些有趣的进行时,这个生成器可能真的很漂亮。这个例子应该足够简单,可以实现这个方向的路线。

我们如何为每个音符分配不同的概率并使其不重复?

到目前为止,它会随机播放每行上的每个音符

import random

class Note:

def __init__(self, name, note):
self.name = name
self.gender= random.choice(["c", "e", "g", "b"])



c = Note('c')
d = Note('d')
e = Note('e')
f = Note('f')

Your_Chord = Note(name)
print(Your_Chord)

print(c.gender)
print(d.gender)
print(e.gender)
print(f.gender)

我在如何打印标题“Your Chord”时也遇到错误

最佳答案

您的注释类需要参数来初始化名称,注释:

c = Note('c', 'yourNote')
d = Note('d', 'yourNote')
e = Note('e', 'yourNote')
f = Note('f', 'yourNote')

在 Your_Chord = Note(name) 行中,名称没有在任何地方定义,并且 Note 类也需要 2 个参数。因此,您可以像这样定义 Your_Chord:

Your_Chord = Note(c.name, c.gender)
or
Your_Chord = Note("AnyName", "AnyGender")

您可以使用 numpy.random.choice 来设置概率分布:

import random
import numpy as np
class Note:

def __init__(self, name, note):
self.name = name
self.gender= np.random.choice(["c", "e", "g", "b"],1,[0.5, .2, 0.1, 0.2])[0]



c = Note('c', 'yourNote')
d = Note('d', 'yourNote')
e = Note('e', 'yourNote')
f = Note('f', 'yourNote')
Your_Chord = Note(c.name, c.gender)
print(Your_Chord)
print(c.gender)
print(d.gender)
print(e.gender)
print(f.gender)

输出:

<__main__.Note object at 0x11593d978>
c
b
c
c

关于python - 创建一个 Spacey Jazz Musical 和弦生成器并使用随机方式为每个音符分配不同的概率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57174879/

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