pyechonest - 如何解释 "key" 和 "mode" 属性?

pyechonest - how to interpret "key" and "mode" attributes?

我在 PC (Win 8.1) 上使用带有 Python (v2.7.9) 的 pyechonest (v9.0.0),并且在解释数据 returned 时遇到问题 "key" 和 "mode" 属性。 "Key" 应该 return Echonest 认为要录制的音乐曲目的音乐调,"mode" 将确定它是大调还是小调。然而,当使用 Track 方法时,有相互矛盾的解释方式...

在pyechonest文档中指出"key"是一个0-11的整数,其中0代表C调,11代表降B调。 "Mode" 是 0-1,其中 0 表示 "major",1 表示 "minor": http://echonest.github.io/pyechonest/track.html

但是 Echonest 文档与此相矛盾; key==0 是 "C" 并且 key==11 是 "B"(根据 pyechonest 文档不是 B flat)并且 mode==0 是次要的,而 mode==1 是主要的(0/1 major/minor关系切换): http://developer.echonest.com/docs/v4/song.html

有谁知道哪一个才是真正的解释?我唯一能想出的方法是上传一个我知道调和模式的音乐样本,然后看看 Echonest returns.

显然 key == 11 对应于 B,而不是 Bb,否则数字将不起作用:

0 1  2 3  4 5 6  7 8  9 10 11
C Db D Eb E F Gb G Ab A Bb B

对于 mode,如果不深入研究源代码,我无法判断哪个是正确的;我建议您在 pyechonest's GitHub repo 上提出问题,要求开发人员审查和澄清,但基于其他错误,我倾向于首先信任 API 文档!