28 个版本 (有破坏性)
0.28.0 | 2024 年 7 月 11 日 |
---|---|
0.27.0 | 2023 年 12 月 4 日 |
0.26.0 | 2023 年 5 月 11 日 |
0.25.1 | 2023 年 2 月 7 日 |
0.9.0 | 2020 年 6 月 21 日 |
672 在 音频 中排名
每月 131 次下载
在 microwave 中使用
485KB
8K SLoC
探索音乐调音并创建微音阶合成器调音文件。
概述
tune-cli
是微音阶 tune 库的命令行工具。
资源
- 下载 / 变更日志
- 浏览器应用
- 演示: Ephemeral Happiness (17-EDO)
- 演示: I'm a Lumatic (17-EDO)
- 演示: Stay Strong (17-EDO)
- 演示: Xênerie (15-EDO)
- 演示: Don't Take Five (16-EDO)
- 演示: The Bedoginning (17-EDO)
下载 / 安装
选项 A:尝试浏览器应用以获得第一印象
选项 B:下载支持目标架构的预编译版本的 tune-cli
选项 C:使用 Rust 和 Cargo 为您的特定目标架构从头开始构建全新的二进制文件
cargo install -f tune-cli
用法
简介
为什么西方音乐使用 7 个白键和 5 个黑键?
这两个数字似乎随意,但实际上,通过应用第一原理,可以证明它们是一个合理的选择。要煮西方调音汤,我们只需要几个成分
- 数字 2 作为周期性间隔:具有频率比为 2 的音高被人类感知为等效。因此,只命名音谱 [1f, 2f] 内的键是有意义的。
- 数字3作为生成器:任何因子都可以用作生成器。然而,在大多数乐器的频率谱中,最强烈的非平凡峰值位于基频以上的3倍因子处。通过将该因子包含在调音中,我们可以确保和弦中多个键的频谱峰值匹配得很好——这是一个可以作为和谐度指标的条件。
- 两个步长:重复应用生成器(并按周期因子减少)我们得到一个具有两个或三个步长比的音阶。为了简化问题,我们只接受具有2个步长比的音阶,即对称时刻(MOS)属性。
tune-cli
可以根据上述要求找到有效的步数和大小。
tune mos find --per 2 3
这将打印所有xLy(x大步,y小步)配置,直到某个截止限制。
(+) num_notes = 2, 1L1s, L = +702c, s = +498c, L/s = 1.41 (*)
(-) num_notes = 3, 2L1s, L = +498c, s = +204c, L/s = 2.44
(-) num_notes = 5, 2L3s, L = +294c, s = +204c, L/s = 1.44
(+) num_notes = 7, 5L2s, L = +204c, s = +90c, L/s = 2.26
(+) num_notes = 12, 5L7s, L = +114c, s = +90c, L/s = 1.26 (*)
(-) num_notes = 17, 12L5s, L = +90c, s = +23c, L/s = 3.85
(-) num_notes = 29, 12L17s, L = +67c, s = +23c, L/s = 2.85
(-) num_notes = 41, 12L29s, L = +43c, s = +23c, L/s = 1.85
(+) num_notes = 53, 41L12s, L = +23c, s = +20c, L/s = 1.18 (*)
(-) num_notes = 94, 53L41s, L = +20c, s = +4c, L/s = 5.49
(-) num_notes = 147, 53L94s, L = +16c, s = +4c, L/s = 4.49
(-) num_notes = 200, 53L147s, L = +13c, s = +4c, L/s = 3.49
(-) num_notes = 253, 53L200s, L = +9c, s = +4c, L/s = 2.49
(-) num_notes = 306, 53L253s, L = +5c, s = +4c, L/s = 1.49
(+) num_notes = 359, 306L53s, L = +4c, s = +2c, L/s = 2.04
(+) num_notes = 665, 306L359s, L = +2c, s = +2c, L/s = 1.04 (*)
(+/-) = bright / dark generator
(*) = best equal-step approximation so far
我们可以看到,对某些合理的音阶步数有偏好。
- 2, 3:并不是真正的音阶
- 5:五声音阶,在音乐中无处不在,但缺乏风味/不和谐
- 7:大小调音阶,辛辣程度足够,但缺乏调性变化
- 12:可以被认为是5L2s的模式扩展
- 17, 29, 41等:更多的模式扩展
在西方调音中,12个音的5L7s配置被选为表达性和复杂度之间的最佳平衡点。它包含大小调7个音(5L2s)的白色键配置,但留下了足够的房间进行5个黑键调性变化。为了达到无限的调性圈,5L7s已经等分(L = s)。结果是所谓的12等分八度(12-EDO)或简称为现代西方调音。
探索异国调音
一个简单的异国调音是7-EDO,因为它的调式MOS(5L2s)是12-EDO MOS(5L7s)的子集。它可以被视为一个没有模式的等分调式,即大调、小调、多利亚等听起来都一样。
tune-cli
可以帮助您将钢琴调音到7-EDO。只需使用以下命令
tune dump ref-note 62 --lo-key 61 --up-key 71 steps 1:7:2
这将指示tune
打印以D4(MIDI编号62)为起始点的7-EDO音阶的频率和近似音符。输出
----------Source Scale----------- ‖ ----Pitch----- ‖ --------Target Scale--------
61 | IDX -1 | 20/11 -6¢ -1o ‖ 265.979 Hz ‖ 60 | C 4 | +28.571¢
> 62 | IDX 0 | 1/1 +0¢ +0o ‖ 293.665 Hz ‖ 62 | D 4 | +0.000¢
63 | IDX 1 | 11/10 +6¢ +0o ‖ 324.232 Hz ‖ 64 | E 4 | -28.571¢
64 | IDX 2 | 11/9 -5¢ +0o ‖ 357.981 Hz ‖ 65 | F 4 | +42.857¢
65 | IDX 3 | 4/3 +16¢ +0o ‖ 395.243 Hz ‖ 67 | G 4 | +14.286¢
66 | IDX 4 | 3/2 -16¢ +0o ‖ 436.384 Hz ‖ 69 | A 4 | -14.286¢
67 | IDX 5 | 18/11 +5¢ +0o ‖ 481.807 Hz ‖ 71 | B 4 | -42.857¢
68 | IDX 6 | 20/11 -6¢ +0o ‖ 531.958 Hz ‖ 72 | C 5 | +28.571¢
69 | IDX 7 | 2/1 -0¢ +0o ‖ 587.330 Hz ‖ 74 | D 5 | -0.000¢
70 | IDX 8 | 11/10 +6¢ +1o ‖ 648.464 Hz ‖ 76 | E 5 | -28.571¢
表格告诉我们,7-EDO音阶的第一步(IDX 0
)的频率为293.655 Hz,与D4完全匹配。这是显而易见的,因为我们选择了D4作为7-EDO音阶的起点。IDX 1
,音阶的第二步,报告接近E4,但有-28.571¢的偏移。
现在,您可以调整钢琴上每个D音符的音高为-28.571¢。在基于八度调音支持的电子钢琴上,这是一项非常简单的任务。也可以使用调音设备重新调音真正的钢琴。
根据表格和7-EDO音阶重新调音每个音符,这样7-EDO音阶就可以在白键上演奏了!
MIDI调音标准
如果您不想手动调整电子钢琴,您可以指示tune-cli
向您的合成器发送MIDI调音标准(MTS)消息。首先定位您的目标MIDI设备
tune devices
这将列出所有可用的MIDI设备
Readable MIDI devices:
- Foo Synthesizer:Output 128:0
- Bar Synthesizer:Output 128:0
Writable MIDI devices:
- Foo Synthesizer:Input 128:0
- Bar Synthesizer:Input 128:0
现在,您可以将7-EDO的音阶/八度调音消息发送到Foo合成器
tune mts --send-to foo octave-1 ref-note 62 steps 1:7:2
此外,该命令会将调音消息打印到stdout
== SysEx start (channel 0) ==
0xf0
0x7e
0x7f
0x08
..
0x32
0x40
0x15
0xf7
Sending MIDI data to Foo Synthesizer:Input 128:0
== SysEx end ==
全键盘调音
音阶/八度调音消息非常有限:它只能稍微调音八度内的12个音符,这意味着不可能将超过12个音符挤入八度,或者模拟基于非八度调音的调音,如Bohlen-Pierce或扩展的EDO。
为了克服这一限制,合成器可以响应 单音符调音更改 消息。它提供了对每个单独MIDI音符音高的完全控制,使得任何调音场景都变得可行。不幸的是,许多合成器并不响应这个调音消息。
要向合成器发送单音符调音更改消息,请使用以下方法
tune mts --send-to foo full ref-note 62 steps 1:7:2
输出
== SysEx start ==
0xf0
0x7f
0x7f
0x08
..
0x7f
0x12
0x25
0xf7
Sending MIDI data to Foo Synthesizer:Input 128:0
Number of retuned notes: 75
Number of out-of-range notes: 13
== SysEx end ==
据报道,一些音符超出范围。这是因为7-EDO的每步频率增加比12-EDO更强,以至于一些(听不见的)频率变得无法映射。
键盘映射
与基于八度的映射不同,默认情况下,全键盘映射将相邻键映射到调音的相邻度数。然而,对于7-EDO,在映射中跳过/忽略黑键会更加方便。
要指定仅白键的键盘映射,请使用以下语法
tune mts --send-to 1 full ref-note 62 --key-map 0,x,1,2,x,3,x,4,x,5,6,x --octave 7 steps 1:7:2
--key-map
参数指定键D映射到度数0,键D#未映射,E映射到度数1,F映射到度数2,以此类推。参数 --octave
告诉我们第12个键盘度数(D加一个八度)应该映射到音阶度数7(7-EDO中的一个八度)。
实时调音
你很可能对合成器的调音功能不满意的风险很高,因为
- 你的合成器支持单音符调音更改消息,但它根据MIDI音符编号而不是所需的音高(慢动作或延时效果——虽然令人悲伤,但却是事实!)来选择声音样本
- 你的合成器支持音阶/八度调音,但你需要一个八度内超过12个音符,或者你的调音不是基于八度的
- 你的合成器根本不支持MTS
实时调音 功能是 tune-cli
发挥作用的领域。《code>tune-cli 可以应用一些解决方案,使带有音高弯轮的非常基本的键盘能够演奏Bohlen-Pierce音阶。
当然,这也有一定的代价。你的虚拟乐器将消耗多个MIDI通道而不是一个,或者你必须接受同时演奏的音符可能会发生冲突。
要了解实时调音的作用,请查看 live
子命令的CLI帮助
tune live --help
提前实时调音
以下命令启用31-EDO的 提前实时调音,使用音阶/八度(1字节)调音消息
tune live --midi-in foo --midi-out bar aot octave-1 ref-note 62 steps 1:31:2
示例输出
Tuning requires 3 MIDI channels
Sending MIDI data to Bar Synthesizer:Input 128:0
in-channels {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15} -> out-channels {0, 1, 2, 3, 4, 5, 6, 7, 8}
[MIDI-in] Waiting for MIDI device `foo` to come online...
[MIDI-in] Connected to Foo Synthesizer:Input 128:0```
"提前"这个术语反映了这样一个事实:在第一阶段,将进行调音的几个通道将进行调音,所需的MIDI通道数量是固定的,并且取决于选定的调音和调音方法(使用 tune live aot --help
获取更多信息)。默认情况下,所有从0到8的通道都被认为是可用的。然而,给定的调音只需要其中的3个。请注意,tune-cli
使用基于0的通道和右排他范围——这是一种有效地避免编程错误的约定。
第二阶段是现场表演阶段。不会发送进一步的调音消息。相反,每个传入的MIDI消息将转换成另一个消息或一系列输出MIDI消息,这些消息将在应用了适当调音的通道上。
提前实时调音总是分配足够的通道,以便可以同时演奏任何音符组合。
即时实时调音
如果你想要分配比 aot
更少的通道(比如说两个而不是三个),你可以应用 即时实时调音
tune live --midi-in foo --midi-out bar --out-chans 2 jit octave-1 ref-note 62 steps 1:31:2
示例输出
Sending MIDI data to Bar Synthesizer:Input 128:0
in-channels {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15} -> out-channels {0, 1}
[MIDI-in] Waiting for MIDI device `foo` to come online...
[MIDI-in] Connected to Foo Synthesizer:Input 128:0```
从表面上看,jit
看起来非常类似于 aot
。然而,在其实施方面有一个很大的区别:虽然 aot
使用固定映射和固定数量的通道,但 jit
使用动态映射,该映射会在每次触发新音符时更新。
在给定示例中,我们决定使用两个 jit
通道,而不是三个 aot
通道。这意味着一些三个音符的组合不能同时以正确的音准演奏。虽然这听起来像是一个硬性限制,但在我们的情况下并不是。原因是,为了发生三个音符的冲突,所有的音符都必须映射到同一个音符字母。对于音符 61、62 和 63 就是这样,它们都是 31-EDO 步距。通常,这种限制只有在按下非常不谐和的音符簇时才会显现。
全通道实时调音
如果你的合成器完全不支持复杂的调音消息,那么你的合成器很可能会理解以下消息类型之一
- 通道精细调音消息
- 音变消息
上述消息会影响通道中的所有音符。这意味着,当你的调音包含 m 个与 12-EDO 相差的音符时,相应的 aot
实时调音命令将需要 m 个通道。16-EDO 有 4 个与 12-EDO 不同的偏差,因此 aot
命令工作得相当好
tune live --midi-in foo --midi-out bar aot fine-tuning ref-note 62 steps 1:16:2
tune live --midi-in foo --midi-out bar aot pitch-bend ref-note 62 steps 1:16:2
示例输出
Tuning requires 4 MIDI channels
Sending MIDI data to Bar Synthesizer:Input 128:0
in-channels {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15} -> out-channels {0, 1, 2, 3, 4, 5, 6, 7, 8}
[MIDI-in] Waiting for MIDI device `foo` to come online...
[MIDI-in] Connected to Foo Synthesizer:Input 128:0```
通常,aot
通道的数量可以非常大,例如在 17-EDO 的情况下。在这种情况下,请使用 jit
。
tune live --midi-in foo --midi-out bar --out-chans 8 jit fine-tuning ref-note 62 steps 1:17:2
tune live --midi-in foo --midi-out bar --out-chans 8 jit pitch-bend ref-note 62 steps 1:17:2
在整体通道调音场景中,--out-chans
可以直接与复音程度相关联。
我应该使用哪种调音方法?
您完全可以根据通道消耗和调音冲突预防之间的平衡来设置。一些经验法则是
- 您的合成器的更高级调音功能 ⇒ 更少的通道/冲突
- 更简单的调音(基于八度,与 12-EDO 共享一些音程) ⇒ 更少的通道/冲突
- 要映射的键更少 ⇒ 更少的通道/冲突
- 更多通道 ⇒ 更少的冲突
- 更少的冲突 ⇒ 更好的复音
提示
- 优先选择
aot/jit full(-rt)
而不是aot/jit octave-n(-rt)
。 - 优先选择
aot/jit octave-n(-rt)
而不是aot/jit fine-tuning
。 - 优先选择
aot/jit fine-tuning
而不是aot/jit pitch-bend
。 - 当
aot full(-rt)/octave-n(-rt)
分配了超过 3 个通道时:考虑使用jit
与--out-chans=3
以节省通道。 - 但在此之前:检查是否排除键(
ref-note --lo-key/--up-key/--key-map
/ YAML scale)是一个选项。 - 只有当您选择的通道比
aot
使用更少时,您才从jit
中受益。 aot fine-tuning/pitch-bend
对 gcd( n , 12) 较大的 n-EDO 非常有效。aot fine-tuning/pitch-bend
可用于 ED1900cents(准EDT),例如steps 1:13:1900c
。jit
总是以某种方式工作。使用--out-chans
和--clash
参数配置您的多音配置选项。
Lumatone / 多通道输入
一些键盘,如Lumatone,包含超过128个键,这超出了单个MIDI通道的支持范围。为了克服这一限制,tune-cli
可以监听多个通道,每个通道都将偏移量添加到原始MIDI键号。通过 key = midi_note + midi_channel * offset
获取结果键。
例如,执行以下命令以使用其默认的31-EDO预设将Lumatone连接到FLUID Synth。
tune live --midi-in lumatone --luma-offs 31 --midi-out fluid aot full ref-note 62 --root 57 --lo-key 0 --up-key 155 steps 1:31:2
其中 --luma-offs
指定每个通道的偏移量,而 --lo-key
/ --up-key
则覆盖默认的88键钢琴键盘范围。
Scala 文件格式
另一种调音方法,主要在基于软件的合成器上使用,是将scl和kbm文件上传到您的合成器。
创建 scl 文件 / 音阶表达式
Scala音阶文件格式 以相对音高定义音阶。它不透露有关音阶根音高的任何信息。
-
纯律
tune scl steps --help # Print help for the `steps` subcommand tune scl steps 1:12:2 # 12-EDO tune scl steps 100c # 12-EDO tune scl steps 1:36:2 # Sixth-tone tune scl steps '(100/3)c' # Sixth-tone tune scl steps 1:13:3 # Bohlen-Pierce
-
均律
tune scl rank2 --help # Print help for the `rank2` subcommand tune scl rank2 3/2 6 # Pythagorean (lydian) tune scl rank2 1.5 6 6 # Pythagorean (12-note) tune scl rank2 1:4:5 5 1 # quarter-comma meantone (major) tune scl rank2 18:31:2 3 3 # 31-EDO meantone (dorian)
-
谐波系列
tune scl harm --help # Print help for the `harm` subcommand tune scl harm 8 # 8:9:10:11:12:13:14:15:16 scale tune scl harm -u 8 # 16/(16:15:14:13:12:11:10:9:8) scale tune scl harm 27 --neji 12 # 27:29:30:32:34:36:38:40:43:45:48:51:54 scale
-
导入音阶
tune scl scl-file --help # Print help for the `scl-file` subcommand tune scl scl-file my_scale.scl # Import my_scale.scl
-
命名音阶
tune scl --name "Just intonation" steps 9/8 5/4 4/3 3/2 5/3 15/8 2
-
将音阶写入文件
tune --of edo-22.scl scl steps 1:22:2
步骤语法
按优先级排序
<num>:<denom>:<int>
等于int^(num/denom)
<num>/<denom>
等于num/denom
<cents>c
等于2^(cents/1200)
(<expr>)
等于expr
创建 kbm 文件 / 键盘映射表达式
键盘映射 指定微音阶的根音和参考音高。此外,该格式定义了(物理)键和给定键使用的音阶级别的映射。如果没有提供此类映射,则默认使用线性映射。
-
打印
kbm
子命令的帮助信息tune kbm ref-note --help
-
以C4的常规频率开始音阶
tune kbm ref-note 60
-
以C4,比常规高20分贝开始音阶
tune kbm ref-note 60+20c
-
以A4的450Hz开始音阶
tune kbm ref-note 69@450Hz
-
以A4以下9步开始音阶,A4应该听起来像450Hz
tune kbm ref-note 69@450Hz --root 60
-
以C4以下两步开始音阶,使用D4作为参考音,仅使用白键
tune kbm ref-note 62 --root 60 --key-map 0,x,1,2,x,3,x,4,x,5,6,x --octave 7
-
将键盘映射写入文件
tune --of root-at-d4.kbm kbm ref-note 62
调音分析
近似比例
dump
命令提供了有关音阶质量的信息。让我们看一下19-EDO音阶
dump ref-note 62 --lo-key 61 --up-key 71 steps 1:19:2
输出结果显示,一些有理数区间被很好地近似。特别是最近的纯五度(6/5),其近似值小于1¢,因此显示为0¢。
----------Source Scale----------- ‖ ----Pitch----- ‖ --------Target Scale--------
61 | IDX -1 | 2/1 -63¢ -1o ‖ 283.145 Hz ‖ 61 | C#/Db 4 | +36.842¢
> 62 | IDX 0 | 1/1 +0¢ +0o ‖ 293.665 Hz ‖ 62 | D 4 | +0.000¢
63 | IDX 1 | 1/1 +63¢ +0o ‖ 304.576 Hz ‖ 63 | D#/Eb 4 | -36.842¢
64 | IDX 2 | 12/11 -24¢ +0o ‖ 315.892 Hz ‖ 63 | D#/Eb 4 | +26.316¢
65 | IDX 3 | 10/9 +7¢ +0o ‖ 327.629 Hz ‖ 64 | E 4 | -10.526¢
66 | IDX 4 | 7/6 -14¢ +0o ‖ 339.803 Hz ‖ 65 | F 4 | -47.368¢
67 | IDX 5 | 6/5 +0¢ +0o ‖ 352.428 Hz ‖ 65 | F 4 | +15.789¢
68 | IDX 6 | 5/4 -7¢ +0o ‖ 365.522 Hz ‖ 66 | F#/Gb 4 | -21.053¢
69 | IDX 7 | 9/7 +7¢ +0o ‖ 379.103 Hz ‖ 66 | F#/Gb 4 | +42.105¢
70 | IDX 8 | 4/3 +7¢ +0o ‖ 393.189 Hz ‖ 67 | G 4 | +5.263¢
比较音阶
想象一下,你想知道四分之一音均律在31-EDO中表现如何。你所要做的就是创建四分之一音均律音阶(tune scale
)并将其与31-EDO音阶进行tune diff
。
在四分之一音均律中,五度被调音,使得其中四个与频率比5相匹配。这使得音阶生成器等于5^(1/4)或1:4:5
在tune
表达式表示法中。为了获得一个完整的音阶,例如伊奥尼亚/大调,你需要向上走5个生成器/五度,向下走一个,这对应于音阶表达式rank2 1:4:5 5 1
。
31-EDO音阶的音阶表达式是steps 1:31:2
,因此完整的音阶比较命令变为
tune scale ref-note 62 --lo-key 61 --up-key 71 rank2 1:4:5 5 1 | tune diff stdin ref-note 62 steps 1:31:2
这将打印
----------Source Scale----------- ‖ ----Pitch----- ‖ --------Target Scale--------
61 | IDX -1 | 11/6 +34¢ -1o ‖ 274.457 Hz ‖ 59 | IDX -3 | -0.979¢
> 62 | IDX 0 | 1/1 +0¢ +0o ‖ 293.665 Hz ‖ 62 | IDX 0 | +0.000¢
63 | IDX 1 | 9/8 -11¢ +0o ‖ 328.327 Hz ‖ 67 | IDX 5 | -0.392¢
64 | IDX 2 | 5/4 +0¢ +0o ‖ 367.081 Hz ‖ 72 | IDX 10 | -0.783¢
65 | IDX 3 | 4/3 +5¢ +0o ‖ 392.771 Hz ‖ 75 | IDX 13 | +0.196¢
66 | IDX 4 | 3/2 -5¢ +0o ‖ 439.131 Hz ‖ 80 | IDX 18 | -0.196¢
67 | IDX 5 | 5/3 +5¢ +0o ‖ 490.964 Hz ‖ 85 | IDX 23 | -0.587¢
68 | IDX 6 | 11/6 +34¢ +0o ‖ 548.914 Hz ‖ 90 | IDX 28 | -0.979¢
69 | IDX 7 | 1/1 +0¢ +1o ‖ 587.330 Hz ‖ 93 | IDX 31 | +0.000¢
70 | IDX 8 | 9/8 -11¢ +1o ‖ 656.654 Hz ‖ 98 | IDX 36 | -0.392¢
你可以看到,31-EDO是一个非常好的四分之一音均律近似,最大偏差为-0.979¢。你也可以看到,相应31-EDO音阶的步长大小为5、5、3、5、5、5和3。
等程调音分析
tune est
命令打印有关任何等程调音的基本信息。
tune est 1:19:2
的示例输出
==== Properties of 19-EDO ====
- step size: +63.2c
- fret constant: 27.914
---- Val (13-limit) ----
- notation: <19, 30, 44, 53, 66, 70|
- errors (absolute): [-0.0c, -7.2c, -7.4c, -21.5c, +17.1c, -19.5c]
- errors (relative): [-0.0%, -11.4%, -11.7%, -34.0%, +27.1%, -30.8%]
- TE simple badness: 35.440‰
- subgroup: 2.3.5.7.11.13
- tempers out 3-limit 1162261467/1073741824 (Pythagorean-19 comma)
- tempers out 5-limit 81/80 (syntonic comma, Didymus comma)
- tempers out 5-limit 3125/3072 (small diesis, magic comma)
- tempers out 5-limit 6561/6400 (Mathieu superdiesis)
- tempers out 5-limit 15625/15552 (kleisma, semicomma majeur)
- tempers out 5-limit 16875/16384 (double augmentation diesis, Negri comma)
- tempers out 5-limit 78732/78125 (medium semicomma, Sensi comma)
- tempers out 5-limit 1594323/1562500 (Unicorn comma)
- tempers out 5-limit 48828125/47775744 (Sycamore comma)
- tempers out 5-limit 1224440064/1220703125 (parakleisma)
- tempers out 5-limit 19073486328125/19042491875328 ('19-tone' comma)
- tempers out 7-limit 49/48 (slendro diesis, septimal 1/6-tone)
- tempers out 7-limit 126/125 (septimal semicomma, Starling comma)
- tempers out 7-limit 225/224 (septimal kleisma)
- tempers out 7-limit 245/243 (minor BP diesis, Sensamagic comma)
- tempers out 7-limit 525/512 (Avicenna enharmonic diesis)
- tempers out 7-limit 686/675 (senga)
- tempers out 7-limit 875/864 (keema)
- tempers out 7-limit 1029/1000 (keega)
- tempers out 7-limit 3136/3125 (middle second comma)
- tempers out 7-limit 4375/4374 (ragisma)
- tempers out 7-limit 10976/10935 (hemimage)
- tempers out 7-limit 19683/19600 (cataharry comma)
- tempers out 7-limit 59049/57344 (Harrison's comma)
- tempers out 11-limit 45/44 (1/5-tone)
- tempers out 11-limit 56/55 (undecimal diesis, konbini comma)
- tempers out 11-limit 100/99 (Ptolemy's comma)
- tempers out 11-limit 385/384 (undecimal kleisma, Keemun comma)
- tempers out 11-limit 540/539 (Swets' comma)
- tempers out 11-limit 729/704 (undecimal major diesis)
- tempers out 11-limit 896/891 (undecimal semicomma, pentacircle)
- tempers out 11-limit 26411/26244 (mechanism comma)
- tempers out 11-limit 65536/65219 (orgonisma)
- tempers out 13-limit 65/64 (13th-partial chroma)
- tempers out 13-limit 78/77 (tridecimal minor third comma)
- tempers out 13-limit 91/90 (medium tridecimal comma, superleap)
- tempers out 13-limit 105/104 (small tridecimal comma)
- tempers out 13-limit 144/143 (Grossma)
- tempers out 13-limit 169/168 (Schulter's comma)
- tempers out 13-limit 196/195 (mynucuma)
- tempers out 13-limit 325/324 (marveltwin)
- tempers out 13-limit 351/350 (ratwolf comma)
- tempers out 13-limit 676/675 (island comma)
- tempers out 13-limit 729/728 (squbema)
- tempers out 13-limit 1001/1000 (fairytale comma)
- tempers out 13-limit 1053/1024 (tridecimal major diesis)
- tempers out 13-limit 2080/2079 (ibnsinma)
- tempers out 13-limit 10985/10976 (cantonisma)
- tempered vs. patent location of 7/6: 4 vs. 4
- tempered vs. patent location of 6/5: 5 vs. 5
- tempered vs. patent location of 5/4: 6 vs. 6
- tempered vs. patent location of 4/3: 8 vs. 8
- tempered vs. patent location of 3/2: 11 vs. 11
- tempered vs. patent location of 7/4: 15 vs. 15
- tempered vs. patent location of 2/1: 19 vs. 19
==== Meantone[7] notation ====
- number of cycles: 1
- 1 primary step = 3 EDO steps
- 1 secondary step = 2 EDO steps
- 1 sharp (# or -) = 1 EDO steps (diatonic)
---- Note names ----
0. D
1. D#
2. Eb
3. E
4. E#/Fb
5. F
6. F#
7. Gb
8. G
9. G#
10. Ab
11. A
12. A#
13. Bb
14. B
15. B#/Cb
16. C
17. C#
18. Db
---- Keyboard layout ----
9 12 15 18 2 5 8 11 14 17
11 14 17 1 4 7 10 13 16 0
13 16 0 3 6 9 12 15 18 2
15 18 2 5 8 11 14 17 1 4
17 1 4 7 10 13 16 0 3 6
0 3 6 9 12 15 18 2 5 8
2 5 8 11 14 17 1 4 7 10
4 7 10 13 16 0 3 6 9 12
6 9 12 15 18 2 5 8 11 14
8 11 14 17 1 4 7 10 13 16
10 13 16 0 3 6 9 12 15 18
==== Meantone[5] notation ====
- number of cycles: 1
- 1 primary step = 3 EDO steps
- 1 secondary step = 5 EDO steps
- 1 sharp (# or -) = -2 EDO steps (pentic)
---- Note names ----
0. D
1. E-
2. D+
3. E
4. D++/G--
5. E+
6. G-
7. E++/A--
8. G
9. A-
10. G+
11. A
12. G++/C--
13. A+
14. C-
15. A++/D--
16. C
17. D-
18. C+
---- Keyboard layout ----
13 16 0 3 6 9 12 15 18 2
18 2 5 8 11 14 17 1 4 7
4 7 10 13 16 0 3 6 9 12
9 12 15 18 2 5 8 11 14 17
14 17 1 4 7 10 13 16 0 3
0 3 6 9 12 15 18 2 5 8
5 8 11 14 17 1 4 7 10 13
10 13 16 0 3 6 9 12 15 18
15 18 2 5 8 11 14 17 1 4
1 4 7 10 13 16 0 3 6 9
6 9 12 15 18 2 5 8 11 14
==== Hanson[7] notation ====
- number of cycles: 1
- 1 primary step = 4 EDO steps
- 1 secondary step = 1 EDO steps
- 1 sharp (# or -) = 3 EDO steps (smitonic)
---- Note names ----
0. D
1. Eb
2. Fb
3. D#
4. E
5. F
6. Gb
7. E#/Ab
8. F#
9. G
10. A
11. Bb
12. G#/Cb
13. A#
14. B
15. C
16. Db
17. B#
18. C#
---- Keyboard layout ----
14 18 3 7 11 15 0 4 8 12
15 0 4 8 12 16 1 5 9 13
16 1 5 9 13 17 2 6 10 14
17 2 6 10 14 18 3 7 11 15
18 3 7 11 15 0 4 8 12 16
0 4 8 12 16 1 5 9 13 17
1 5 9 13 17 2 6 10 14 18
2 6 10 14 18 3 7 11 15 0
3 7 11 15 0 4 8 12 16 1
4 8 12 16 1 5 9 13 17 2
5 9 13 17 2 6 10 14 18 3
YAML输出
tune
使用YAML作为显式的音阶格式。你可以使用tune
的输出作为外部应用程序的输入,或者反过来。首先导出音阶,然后修改它,最后将其用作另一个tune
命令的输入参数。
示例用法
tune scale ref-note 62 --lo-key 61 --up-key 64 steps 1:7:2
输出
---
Scale:
root_key_midi_number: 62
root_pitch_in_hz: 293.6647679174076
items:
- key_midi_number: 61
pitch_in_hz: 265.9791296633641
- key_midi_number: 62
pitch_in_hz: 293.6647679174076
- key_midi_number: 63
pitch_in_hz: 324.23219079306349
依赖关系
~9–38MB
~609K SLoC