12个版本
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日 |
#53 in #场景
318 每月下载
用于 surge-synthesizer
2MB
26K SLoC
surge-scene
SurgeScene
结构体表示Surge合成器中的一个单个声音场景。它包含了一系列振荡器、滤波器、包络、LFO、调制路由、调制源、步进序列器和各种效果单元,用于创建场景的声音。该结构体还包含对各种时间相关单元、MIDI和MPE输入单元、调音器、合成器输入和声音集合的引用。
SurgeScene
结构体有播放和释放音符、处理参数更改和管理场景状态的功能。这些功能与场景的各个组件交互,以创建和修改其声音输出。
surge-patch
SurgePatch
是一组设置和参数,用于定义合成器的声音。它包含一个 metadata
结构体,用于存储有关补丁的信息,例如其名称、作者和描述。 params
数组包含所有补丁参数的值,可以调整以修改声音。
SurgePatch
还包含一个或多个 SurgeScene
结构体,这些结构体定义了补丁内单个声音或声音的配置。每个场景包含用于创建特定声音的振荡器、滤波器、包络和调制源等的设置。
除了场景之外,SurgePatch
还可能包含一个或多个 SurgeEffect
结构体,这些结构体定义了可以应用于声音的诸如混响或延迟之类的效果。
补丁还可以包括用于调音、键映射和音高弯曲范围的可选数据,以及一个标志,指示补丁是否配置为MPE(MIDI多声部表情)模式。
114> 在软件合成器的上下文中,补丁是什么?我们如何改进其设计?
在软件合成器的上下文中,补丁代表定义合成器声音的一组参数。它包括诸如振荡器设置、滤波器设置、包络设置、调制源和目的地等。
补丁的设计可以通过以下几种方式得到改进
-
用户界面:补丁展示给用户的方式会对可用性产生重大影响。直观且易于使用的界面可以使音乐家更容易创建和保存自己的补丁。
-
参数组织:补丁内部参数的组织方式也会影响可用性。将相关参数分组并使用清晰、一致的名称可以更容易地理解并调整补丁。
-
补丁共享:使用户能够轻松共享和下载补丁可以成为围绕合成器建立社区的好方法。这可以通过在线论坛、预设库或软件内置的补丁共享功能来实现。
-
与硬件的集成:如果合成器设计为与外部硬件协同工作,将补丁管理集成到该硬件中可以大有裨益。例如,允许用户直接将补丁保存到连接的硬件合成器中,可能比手动传输它们更方便。
总的来说,一个精心设计的补丁系统可以成为软件合成器成功的关键因素,无论是在可用性还是社区参与度方面。
115>你能提供更多关于这些点的详细信息吗?
当然,以下是关于这些点的更多详细信息
-
复杂性:补丁可以有很多参数,其中一些可能不符合用户的需求。这可能使用户难以导航和调整补丁以达到他们想要的音效。更简化的方法是将参数分组到对创建的音效类型有意义的类别或部分中。例如,一个包含攻击、衰减、持续和释放参数的“包络”部分,或一个包含截止、共振和滤波器类型参数的“滤波器”部分。
-
易用性:与复杂性问题相关,一些补丁可能难以被经验不足的用户使用。提供有用的文档或工具提示可以在很大程度上提高用户体验。此外,拥有一个用户友好的界面,可以直观地表示正在调整的参数,可以更容易地让用户理解他们更改的影响。
-
灵活性:补丁可能是针对特定的声音或用途而设计的,这可能会限制它们在其他场景中的有用性。允许参数范围有更多灵活性或为补丁设计增加更多模块化可以增加其在不同音乐场景中的多功能性和有用性。
-
命名约定:补丁可能具有复杂或难以理解的名称,这可能会使用户难以理解其用途。清晰和描述性的命名约定可以更容易地让用户找到适合他们需求的补丁。
-
兼容性:补丁可能无法与不同的硬件或软件环境兼容,这可能会限制其某些用户的有用性。确保补丁与多种系统和环境兼容可以增加其覆盖范围和更广泛的受众的可访问性。
116>太好了,谢谢——在合成器的上下文中,什么是场景?
在合成器的上下文中,场景是一组定义特定声音或声音设计的设置和参数。它通常包括振荡器、滤波器、调制源、效果以及其他设置,如包络参数和路由。
场景通常用于创建预设或声音设计的起始点,可以编辑和调整以创建独特的声音。它们还可以在表演期间快速切换到不同的声音设置,而无需手动调整每个单独的设置。
在一些合成器中,场景可能还包括控制多个音色或补丁的设置,例如将公共LFO或滤波器截止值分配给所有音色。场景可以组织到库或类别中,以便更容易地查找和切换不同的声音。
117> 因此,它就像是一组合成器组件的实例化。是这样吗?
是的,这是正确的。场景本质上是对合成器组件特定配置的快照,包括振荡器、滤波器、包络、LFO和调制源。每个场景代表一个特定的声音或乐器,可以由用户播放和控制。
118> 为什么我们只使用两个?
很可能是出于性能和复杂性的原因,SurgeScene中的发送数量限制为两个。每个发送都需要额外的处理资源,因此添加更多发送会增加处理负载并可能引入延迟。此外,固定数量的发送简化了路由和处理逻辑,使其更容易实现和维护。最后,在实际应用中,两个发送可能对许多用例来说已经足够,尤其是当与合成器的其他处理能力结合使用时。
119> 很有趣 —— 为什么不直接处理这个抽象层,而只处理子组件呢?
使用场景允许更高的抽象级别,这在处理涉及许多不同组件的复杂补丁时非常有用。不必单独处理单个振荡器、滤波器和包络,场景将这些元素封装到一个单独的实体中,可以作为一个单元保存、加载和处理。
此外,场景可以帮助以有意义的方式组织组件,从而有助于声音设计。例如,一个场景可以代表特定的声音,如钢琴或吉他,而创建该声音所需的所有相关组件都可以在场景内分组。这可以使声音设计者更容易创建和操作复杂的声音。
总的来说,使用场景可以帮助简化声音设计和补丁创建的过程,并提供一种更直观的方式来组织和操作合成器组件。
120> 场景和补丁是如何交互的?
场景和补丁是相关的,因为补丁由一个或多个场景组成。换句话说,补丁是一组可以一起播放的场景。补丁中的每个场景可以被视为补丁的单独“层”,具有自己的设置和参数。
当补丁加载到合成器中时,它通常包含多个场景,这些场景以特定方式组织起来以创建特定的声音。然后用户可以选择在特定时间播放哪些场景,从而通过叠加多个场景来创建复杂的声音。
因此,补丁提供了一种高级的组织结构,使用户能够组合和操作多个场景,而场景提供了构成补丁声音的各个组件。
依赖关系
~12–22MB
~307K SLoC