首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有办法把21岁的和弦检测限制在非斜弦和弦上?

有没有办法把21岁的和弦检测限制在非斜弦和弦上?
EN

Stack Overflow用户
提问于 2022-04-11 21:16:49
回答 1查看 77关注 0票数 1

我正在编写一个脚本,它以MIDI音符序列为输入,输出一个和弦符号,用于Impro-Visor,一个开源的爵士乐即兴创作助手。为了利用Impro-Visor的大量和弦词汇量,我一直试图在music21 21的和弦词汇表中添加-- MIDI音高和最常见和弦的解释--使用harmony.addNewChordSymbol方法,但是系统在和弦检测中没有提供新的和弦。例如,如果我尝试一下和声模块的文档中的和弦:

代码语言:javascript
复制
>>>harmony.addNewChordSymbol('BethChord', '1,3,-6,#9', ['MH', 'beth'])
>>>c = chord.Chord(['C3','D#3','E3','A-3'])
>>>print(harmony.chordSymbolFromChord(c))
'A-+/CaddD#'

而在这种情况下,我希望得到:'Cbeth'

Music21一贯建议像上面那样的斜弦和弦,而不是我试图添加到词汇表中的任何和弦,大概是因为斜杠左边的和弦类型--在这里是“+”--出现在“OrderedDict in harmony.py”中。有什么方法可以使和弦检测比这些斜弦和弦更喜欢自定义和弦类型(我没有任何处理方法)?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-15 02:25:39

我发现,只要告诉music21您的意思是"C“作为根,就能起作用。(否则,它就会试图将"Ab“作为根部叠加在一起。)这样打电话给.root()

代码语言:javascript
复制
>>> harmony.addNewChordSymbol('BethChord', '1,3,-6,#9', ['MH', 'beth'])
>>> c = chord.Chord(['C3','D#3','E3','A-3'])
>>> c.root(c.bass())
>>> harmony.chordSymbolFromChord(c)
<music21.harmony.ChordSymbol CMH>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71834404

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档