音钟可视化

pitchclock的Python项目详细描述


PitchClock Logo

PitchClock徽标

俯仰时钟

pitchclock是一个python库,用于生成tone clock可视化效果。音调 时钟最初是作为无调性作曲的工具而开发的,但是 也可以是非常有用的视觉色调结构在古典 和Just Intonation 理论也是。

许可证

俯仰时钟分布在允许的MIT license下。

安装

最新稳定的俯仰时钟分布可以安装pip:

pip install pitchclock

或者,如果您喜欢当前的开发版本:

pip install git+https://github.com/hosford42/pitchclock.git

示例用法

作为一个例子,让我们比较一下平均气质主量表 它的近似语调音阶,称为syntonic diatonic scale。音调 时钟用于可视化关系,即间隔, 在投球之间,而不是绝对投球本身。因此 典型的方法是用 产生它们的补药,并在12点放置补药 位置。等音程表示为 在音程中用方括号括起来的半色调。正义 间隔用整数频率比表示。为了这个 图表,我们将用填充圆标记相等的气质区间, 有轮廓圆圈的音程和有角度的主音 作记号。下面是生成图形的代码:

fromfractionsimportFractionfrompitchclockimportETInterval,ToneClock# The equal temperament scale, expressed as equal temperament# intervals from the tonic.et_major_scale=[ETInterval(s)forsin[0,2,4,5,7,9,11]]# The just intonation scale, expressed as frequency ratios from# the tonic.ji_major_scale=[Fraction(*pair)forpairin[(1,1),(9,8),(5,4),(4,3),(3,2),(5,3),(15,8)]]# Here we create the clock, indicating which pitches to represent# with each type of marking in the graph.clock=ToneClock(filled_dots=et_major_scale,empty_dots=ji_major_scale,angles=[et_major_scale[0],ji_major_scale[0]],labels={p:pforpinet_major_scale+ji_major_scale})# We make the radius a little bigger because there's a lot going# on in this graph. A bigger radius means more space for details.clock.style.radius*=1.5# Everything is quantized to quarter tones by default, but we are# building this graph specifically to compare slight differences# in pitch, so we turn it off. However, we leave it on for labels,# because otherwise they will overlap for pitches that are very# close neighbors. With quantization of labels left on, labels# falling within the same quantum will be grouped together with# commas to separate them.clock.style.quantize_non_labels=False# Save the clock as a PNG file. Currently, this is the only# supported format.clock.save('images/major_comparison.png')

这是它产生的图像:

Major Scale Comparison

主要比例尺比较

从这个图中,可以立即看出 等差近似最差的交响度标度 气质主音阶是5/45/315/8,每个音阶都是 比以前的音高略平 近似它。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
virtualbox无法从java移动共享文件夹中的文件   java如何连接Android 4.3.5(GA)的apache HttpClient库?   片段中的java Recyclerview未立即显示警报对话框结果   javac(n,r)计算器程序不工作   java使用BooleanQuery还是编写更多索引?   如何在java中设置y/n循环?   java不兼容的通用通配符捕获   java如何在安卓xml中编写数据绑定时的三元操作条件   java如何使用FileDialog?   java如何创建单元测试来检测是否有人使用错误的编码编辑了文件?   java如何从唯一的字符串生成唯一的int?   java gradletomcatplugin:log4j:WARN找不到记录器的附加程序   java我的动态编程解决方案(Kefa和第一步)在codeforces中有什么问题?   java每天更新两个数据库,使它们都包含相同的有效数据集   java如何检查给定的时间是否在时间限制之间   java在单个json POST上保存父级和子级   java如何获取Solr字段类型