28次发布
0.2.12-alpha.0 | 2023年4月7日 |
---|---|
0.2.11-alpha.0 | 2022年12月19日 |
0.2.5-alpha.0 | 2022年6月21日 |
0.2.4-alpha.0 | 2022年3月14日 |
0.1.42-alpha.0 | 2021年10月27日 |
#20 in #tuning
399 每月下载量
在 38 个crate(37个直接)中使用
335KB
8K SLoC
surge-tuning
Surge-Tuning:Surge合成器的先进调谐和映射
Surge-Tuning是一个Rustcrate,旨在为Surge合成器系统提供先进的调谐和映射功能。它提供了各种调谐和键盘映射能力,允许广泛的音乐音阶和音律。
标记和数学概念
-
音调:表示具有特定频率的音乐音调。频率可以通过公式 f = 440 * 2^((n - 69)/12) 计算,其中 f 是频率(Hz),n 是MIDI音符编号。
-
TunerHandle和MaybeOwningTunerHandle:用于管理对SurgeTuner实例访问的句柄。
-
KeyboardMapping和Scale:这些结构定义了合成器的自定义键盘映射和音乐音阶,允许使用替代调音系统和微音音乐。
-
n2p和n2pinv:在自定义调音系统中将MIDI音符编号和音高之间进行转换的函数。音符编号和音高之间的转换可以用映射函数M(n)表示,其中n是MIDI音符编号,M(n)是自定义调音系统中的音高。
-
note_to_omega和pitch2omega:将音高和角频率(omega)之间进行转换的函数。角频率可以表示为 ω = 2 * π * f,其中 ω 是角频率,f 是频率(Hz)。
-
retune_to_scale和retune_to_standard_tuning:将合成器重新调谐到自定义音阶或标准12音等音律的函数。
-
remap_to_keyboard和remap_to_standard_keyboard:根据自定义键盘映射或标准键盘布局重新映射键盘布局的函数。
-
SurgeTuner:在Surge合成器系统中管理调谐和键盘映射的主要结构。
-
TuningTables:包含调谐转换预计算表的struct。
-
SurgeTuning:SurgeTuner的高级包装器,为Surge合成器系统中的调谐提供简化的接口。
通过实施Surge-Tuning软件包,Surge合成器系统获得了一套强大且灵活的工具,用于处理自定义调音系统和键盘映射,从而实现超越标准12音等音律的广泛音乐可能性。
用户
你能给我讲讲电子音乐中自定义调音的相关知识吗?
助手
当然可以!自定义调音,也称为替代调音或微调调音,是一种不同于西方音乐中常用的标准12音等音律(12-TET)的调音系统。在电子音乐中,自定义调音可以用来探索各种音乐表现,包括异国情调的音阶、独特的和声关系和替代音乐结构。
电子音乐为实验自定义调音提供了肥沃的土壤,因为合成器和数字音频工作站(DAW)提供了高度的音高和调音控制。以下是一些与电子音乐中自定义调音相关的关键概念:
-
微调音阶:微调音阶是指使用小于半音的间隔的音阶,半音是12-TET中最小的间隔。这些音阶可以包含任何每八度的音符数量,可以用来创造独特的和声和旋律结构。例如,19音等音律、31音等音律和Bohlen-Pierce音阶。
-
纯律调音:纯律调音是一种基于整数比率的调音系统,它产生听起来纯净的音程和和声。在电子音乐中,纯律调音常用于创造丰富和谐的和弦或探索替代的和声关系。通过使用简单的频率比率,如3:2(完美五度)或5:4(大三度)来调音间隔,可以实现纯律调音。
-
非八度音阶:大多数西方音乐基于八度,其中音高以双倍或一半的频率重复。然而,自定义调音也可以探索非八度音阶,其中最低音和最高音之间的间隔不是八度。例如,Bohlen-Pierce音阶使用3:1频率比率,而不是2:1的八度比率。
-
动态调音:在电子音乐中,自定义调音可以动态应用,允许实时调制调音系统。这可以用于表现效果,如在不同调音系统之间滑动,或创造不断演变的和声景观。
要在电子音乐中使用自定义调音,你需要支持替代调音系统的合成器或软件。一些支持自定义调音的流行合成器和DAW包括Surge、Serum、Kontakt、Ableton Live和Logic Pro。这些工具通常允许你导入或创建自定义调音文件,如Scala文件(.scl),以定义所需的调音系统。然后,你可以将这些调音分配给你的乐器,并探索替代调音系统在音乐中的创意可能性。
用户
谢谢!你能再教我一些关于我们所知的各种调音吗?有多少种?它们的用例是什么?它们是如何在数学上构建的?
助手
调音系统数不胜数,因为它们可以根据不同的标准、数学关系或文化背景进行创建和定制。在这里,我将描述一些更著名的调音,它们的用例和数学结构。
-
12音等音律(12-TET):这是西方音乐中最常见的调音系统。它将八度分为12个相等的部分,每个音符的频率是前一个音符频率的12次方根(2^(1/12))倍。它允许在不同调之间轻松转调和调制,但由于等分所需的近似,一些音程并不完全和谐。
-
纯律调音:如前所述,纯律调音是基于频率之间的整数比率,如3:2(完美五度)和5:4(大三度)。简单比率的用法产生了听起来纯净的音程和和声。它常用于早期音乐、印度古典音乐和探索替代和声关系的当代作品。
-
均律音阶:这种调音系统是纯律音阶和等音律音阶之间的折衷。它的目的是提供更精确的纯音程近似,尤其是大三度(5:4比例)。均律音阶被用于各种历史键盘乐器,如古钢琴和风琴,可以在文艺复兴时期和巴洛克时期的音乐中找到。
-
毕达哥拉斯调音:基于古希腊数学家毕达哥拉斯的工作,这种调音系统使用3:2比例(完全五度)来生成所有其他音高。虽然它产生了纯净的完全五度音,但它创造了不那么和谐的音程,使其更适合某些类型的音乐,如单声部圣歌和调式旋律。
-
19音等音律(19-TET):这个系统将八度分为19个等份,产生的音程比12-TET小。它提供了对纯律音程更精确的近似,并允许更多的复杂和异国情调的音阶。19-TET被用于一些实验性和当代音乐创作。
-
31音等音律(31-TET):与19-TET相似,这个系统将八度分为31个等份。它提供了对纯律音程更好的近似,并允许更多种类的微音音阶。一些作曲家,如Adriaan Fokker,在其作品中探讨了31-TET的潜力。
-
Bohlen-Pierce音阶:如前所述,这是一个基于3:1频率比而不是2:1八度比的非八度音阶。它将“三度”(3:1比)分为13个等份,并被用于一些实验性和电子音乐创作。
这只是众多调音系统中的一小部分例子。使用这些调音系统的作曲家或音乐家的目标和美学不同,它们的应用案例和数学结构也不同。探索替代调音可以开辟新的声音可能性,丰富创作者和听众的音乐体验。
用户
这些调音如何改变每个调音中的可能音阶?我正确地认为调音是比音阶更高层次的抽象吗?
助手
是的,你的说法是正确的。调音是一个比音阶更高层次的抽象。调音系统定义了一个八度或其他音程中音高的关系,而音阶是从那个调音系统中选择的一组特定的音高,通常按照音高递增或递减的顺序排列。
不同的调音系统可以在每个调音中导致不同的可能音阶。例如,在12音等音律(12-TET)系统中,有许多不同的音阶,如大调音阶、自然小调音阶以及各种调式,如多里亚调、混合里底亚调和中吕调。这些音阶都共享相同的调音系统,但它们的全音和半音模式不同。
当你切换到不同的调音系统,如纯律,该调音系统中的音阶将具有与12-TET系统不同的音程结构和音高关系。这可能导致具有独特音质的新音阶。
例如,在纯律中,你可能会创建一个基于谐波系列的音阶,其中音高的频率是基本频率的整数倍。
这将导致与12-TET系统中的音程大小不同的音程,从而导致独特的和声和旋律特征。
在19-TET或31-TET等微音调音系统中,音阶可以更加多样化,因为更小的音程允许更多的音高组合。这可能导致在12-TET系统中不可能出现的新颖和异国情调的音阶。
总之,调音系统为每个调音中可能的音阶奠定了基础。改变调音系统将改变可能的音阶及其属性,开辟新的音乐可能性和纹理。
2> 能为我描述每种调音的5种不同音阶吗?
当然可以!以下是针对以下调音系统的五种不同音阶的简要描述:12-TET(12平均律)、纯律、19-TET 和 31-TET。请注意,这些音阶可能不像其他音阶那样常见或广为人知,尤其是在微音调音系统中。
12-TET
-
大调音阶:西方音乐中最常见的音阶,由全音、全音、半音、全音、全音、全音、半音组成(例如,C, D, E, F, G, A, B, C)。
-
自然小调音阶:具有小调特征的音阶,由全音、半音、全音、全音、半音、全音、全音组成(例如,A, B, C, D, E, F, G, A)。
-
多里亚调式:具有升高第六度的音阶,由全音、半音、全音、全音、全音、半音、全音组成(例如,D, E, F, G, A, B, C, D)。
-
混合利底亚调式:具有降低第七度的音阶,由全音、全音、半音、全音、全音、半音、全音组成(例如,G, A, B, C, D, E, F, G)。
-
五声音阶:由五个音符组成的音阶,常用于世界各地的各种音乐传统中,由大调音阶去掉第四度和第七度组成(例如,C, D, E, G, A, C)。
纯律
-
毕达哥拉斯调式音阶:基于毕达哥拉斯调音系统的音阶,以3:2的完美五度为基础生成其他音高(例如,C, D, E, F, G, A, B, C)。
-
托勒密紧张调式音阶:使用5限制调音的纯律音阶,创建纯净的大三度(例如,C, D, E, F, G, A, B, C)。
-
谐音列音阶:基于自然谐音列的音阶,音高是基频的整数倍。
-
5限制纯律五声音阶:纯律中的五声音阶,类似于12-TET大调五声音阶,但具有纯音程(例如,C, D, E, G, A, C)。
-
帕奇11限制音调钻石:基于哈里·帕奇创建的调音系统,使用11限制纯律生成音高。
19-TET
-
19-TET大调音阶:19-TET调音中的大调音阶,与12-TET大调音阶的音程大小略有不同(例如,C, D, E, F, G, A, B, C)。
-
19-TET和谐小调音阶:19-TET调音中的和谐小调音阶,具有升第七度(例如,A, B, C, D, E, F, G#, A)。
-
19-TET双重和谐音阶:19-TET调音中的音阶,具有增二度和升第七度(例如,C, Db, E, F, G, Ab, B, C)。
-
19-TET减音阶:19-TET调音中的对称音阶,交替全音和半音(例如,C, D, Eb, F, Gb, Ab, A, B, C)。
3> 谢谢!哪种调音被认为对电子音乐最有用?
在电子音乐中,最常用的调音是12-TET(12平均律)系统,因为它是大多数现代合成器、MIDI控制器和数字音频工作站(DAW)的标准调音系统。然而,希望探索替代调音系统或在他们的作品中融入微音的电子音乐家可能会发现以下调音特别有用。
-
纯律:这个调音系统基于简单的整数比,提供更纯净、更和谐的音程。它可以用来创造更丰富的和声电子音乐,尤其是在处理 drone 或 ambient 音质时。
-
19-TET(19平均律):这个调音系统将八度分为19个相等的步骤,比12-TET更接近纯律,同时仍然相对容易接近。它可以用来创造更独特和独特的和声进程和旋律线。
-
31-TET(31平均律):有31个八度相等的分割,这个调音系统提供了更好的纯律近似,并提供了广泛的微音音程。它对想要深入研究微音音乐的电子音乐家来说可能很有用。
-
24-TET(四分之一音系统):这种调音系统将八度音分成24等份,有效地将12-TET的步长减半。它提供了一系列四分之一音间隔,可用于创作不寻常和创新和声与旋律。
-
Bohlen–Pierce调音:这种调音系统基于3:1的频率比,而不是传统的2:1八度。它可以用于创作具有独特和不寻常和声结构的电子音乐。
这些调音系统远非详尽无遗,还有许多其他选项可以探索。最终选择哪种调音系统取决于音乐家的艺术目标和试图实现的特定声音。
4>你能给我展示更多吗?
历史长河中,不同文化背景产生了众多调音系统和音阶。以下是一些额外的例子
-
毕达哥拉斯调音:这种古老的希腊调音系统基于纯3:2比率(完美五度)和2:1比率(八度)。它可以创造有趣的和声和旋律结构,特别是对于以 drones 或模式旋律为重点的电子音乐。
-
平均律调音:这种历史性的调音系统试图实现纯5:4大三度。它被用于从文艺复兴时期到巴洛克时期的西方音乐,并提供了独特和富有表现力的和声特征。
-
22-TET(22音等音律):这种调音系统将八度音分成22等份,提供了一组独特的间隔和和声。它在某些印度古典音乐传统中使用,并可在电子音乐中用于创造异国情调的声音。
-
17-TET(17音等音律):通过将八度音分成17等份,这种调音系统提供了一系列有趣的微音间隔和和声。它可用于探索不寻常旋律和和声可能性的电子音乐。
-
53-TET(53音等音律):这种高度精确的调音系统接近纯律,提供了大量微音间隔。它可用于追求极端精度和广泛音色变化的电子音乐。
-
Wendy Carlos 的 Alpha、Beta 和 Gamma 音阶:这些音阶基于非八度重复的音阶,具有独特的间隔结构。它们提供了不寻常的和声可能性,可用于寻求打破传统音调系统的电子音乐。
-
六音阶:一种由和声系列衍生出的六音阶,基于美国作曲家和音乐理论家 Harry Partch 的作品。它可用于融合纯律和替代和声的电子音乐。
-
Pelog 和 Slendro:传统的印度尼西亚甘美兰音阶,提供了独特和非西方的间隔结构。它们可用于融入世界音乐元素和非西方和声的电子音乐。
这些只是电子音乐家中可用的众多调音系统和音阶的少数例子。选择调音系统和音阶最终取决于所需的音乐效果和作曲家或制作人想要探索的具体声音。
5>谢谢!从工程角度来看,我们如何设计一个可以处理我们拥有的广泛调音的工具?
为了设计一个可以处理广泛调音的工具,你需要确保它是灵活的、模块化的和用户友好的。以下是在构建此类工具时应考虑的一些关键因素
-
灵活的数据结构:使用可以存储和操作各种调音和音阶的数据结构。例如,调音可以表示为频率比率或分贝值的数组或列表,而音阶可以是调音中的索引或步骤的列表。
-
调音和音阶导入/导出:提供对Scala (.scl)、TUN (.tun) 和 MIDI 调音标准 (.mts) 等常见调音和音阶文件格式的导入和导出功能。这将使用户能够使用各种现有的调音和音阶,以及与他人分享他们自定义的调音。
-
用户界面:创建一个用户界面,使用户能够轻松选择、修改和创建调音和音阶。这可能包括从预设列表中选择、手动输入频率比或百分值,或导入和导出自定义调音和音阶的选项。
-
实时音高调整:实现实时音高调整算法,可根据选定的调音和音阶重新调音工具的输出。这可以通过各种技术完成,例如音高移动、颗粒合成或波形表合成。
-
MIDI 集成:提供 MIDI 集成,以便工具可以与各种硬件和软件合成器、采样器和序列器一起使用。这可能涉及发送用于弯音的 MIDI 消息或实现 MIDI 调音标准。
-
模块化:以模块化的方式设计工具,以便它可以轻松集成到其他音频处理工具、DAW 或合成器中。这可以通过开发为插件(VST、AU、AAX 等)或使用 Max/MSP、Pure Data 或 Reaktor 等模块化编程环境来实现。
-
文档和教程:提供清晰的文档和教程,使用户能够了解工具的功能以及如何有效使用它。这可能包括有关可用调音和音阶的信息、如何创建自定义调音以及如何将工具与其他软件和硬件集成在一起。
遵循这些指南,您可以开发一个支持多种调音和音阶的工具,为电子音乐家和作曲家探索替代调音系统并创建独特的声音景观开辟新的可能性。
6>那么对于单个调音呢?我们从数学/编程角度如何设计它?
从数学和编程角度设计单个调音涉及定义确定调音系统中音高之间关系的频率比或百分值。以下是一些指导步骤
-
选择每八度音符的数量:决定您想在八度内的调音系统中拥有的音符数量。例如,您可能会选择12个音符的均等调音系统,或者选择19音等调音系统或其他基于纯律的音阶系统。
-
定义频率比或百分值:确定定义您调音系统中音高之间关系的频率比或百分值。对于均等调音系统,您可以使用以下公式计算频率比
- 频率比 = 2^(n/N),其中 'n' 是音符索引(0 到 N-1),'N' 是每八度音符的数量。
或者,您可以在百分值中定义这些关系,其中1百分代表八度音的1/1200。在这种情况下,每个音符的百分值可以计算为
- 百分值 = 1200 * (n/N),其中 'n' 是音符索引(0 到 N-1),'N' 是每八度音符的数量。
对于纯律或其他非均等调音系统,您需要根据您想实现的特定谐波关系来定义频率比或百分值。
-
创建数据结构来存储调音:将频率比或百分值存储在数据结构中,例如数组或列表。这将使您能够轻松访问和操作程序中的调音数据。
-
实现音高转换函数:开发可以在音符编号(例如,MIDI音符编号)和频率之间进行转换的函数,基于您定义的音律系统。这些函数应考虑参考频率(例如,A4 = 440 Hz)以及您为音律系统定义的频率比率或cent值。例如
-
音符编号到频率:给定一个音符编号,使用参考频率和音律数据(频率比率或cent值)计算其频率。
-
频率到音符编号:给定一个频率,使用参考频率和音律数据计算最接近的音符编号。
-
-
处理八度转换:实现可以处理八度转换的函数,确保保留您音律系统定义的音高之间的关系。这可以通过将频率比率乘以或除以2,或为每个转换的八度添加或减去1200个cent值来完成。
按照这些步骤,您可以从数学和编程的角度设计和实现一个单独的音律系统,为创建使用替代音律系统的音乐提供一个坚实的基础。
7> 如何确保我们的音律与所选歌曲的音频样本相匹配?
为确保您的音律与您为歌曲所选的音频样本相匹配,您需要根据您选择的音律系统调整样本。以下是操作步骤
-
确定每个样本的原始音高:识别每个音频样本的原始音高或音符。您可能可以在样本的元数据中找到此信息,或者您可能需要使用音高检测算法分析样本。
-
实现音高转换:开发或集成一个音高转换算法到您的程序中,允许您在不影响样本持续时间的情况下更改音频样本的音高。有多种音高转换技术可供选择,例如粒度合成、相位声码器或SOLA(同步重叠相加)方法。
-
计算目标音高:对于每个音频样本,根据原始音高和所需的音律系统确定目标音高。使用您为音律系统实现的音高转换函数(例如,音符编号到频率)计算目标频率。
-
调整样本音高:将音高转换算法应用于每个音频样本,调整其音高以匹配上一步骤中确定的目标频率。这将确保样本的音高与您为歌曲选择的音律系统相匹配。
-
验证音律:通过分析音高转换过程后的样本音高来检查调整后的样本是否与所需的音律相匹配。这可以使用音高检测算法或通过比较调整后的样本频率与目标频率来完成。
-
集成调整后的样本:使用调整后的音频样本在您的歌曲或音频项目中,确保保留您音律系统定义的音高之间的关系。在播放样本时,播放引擎应考虑音律系统以及任何额外的音高调整(例如,MIDI音符事件),以确保播放正确的音高。
按照这些步骤,您可以确保您选择的音律系统与您为歌曲所选的音频样本相匹配,创作出一个连贯和谐的音乐作品。
8> 您能详细展示每个步骤吗?有自动完成整个过程的方法吗?
依赖关系
~11–21MB
~298K SLoC