#audio-processing #traits #component #synthesizer #signal-processing #oscillator #digital-signal-processing

nightly surge-traits

surge合成器 -- 适用于各种合成器组件的特性

30个发布版本

0.2.12-alpha.02023年4月7日
0.2.11-alpha.02022年12月19日
0.2.5-alpha.02022年6月21日
0.2.4-alpha.02022年3月14日
0.1.42-alpha.02021年10月27日

#27 in #oscillator

Download history 107/week @ 2024-03-13 206/week @ 2024-03-20 431/week @ 2024-03-27 119/week @ 2024-04-03 132/week @ 2024-04-10 127/week @ 2024-04-17 135/week @ 2024-04-24 154/week @ 2024-05-01 131/week @ 2024-05-08 126/week @ 2024-05-15 105/week @ 2024-05-22 127/week @ 2024-05-29 116/week @ 2024-06-05 94/week @ 2024-06-12 124/week @ 2024-06-19 90/week @ 2024-06-26

425 每月下载量
58 个crate中(41个直接使用)使用

GPL-3.0 许可协议

58KB
845

surge-traits:Surge合成器系统的特性和常用功能

surge-traits crate提供了一组特性、结构和工具,用于Surge合成器系统,旨在简化其组件并确保系统不同部分之间的一致行为。

概述

该crate包括与合成器系统不同方面相关的各种令牌,例如振荡器、预设、卷积、效果管理等等。一些关键组件包括

  • OscillatorProcessBlockCfg:此结构体负责配置振荡器的处理块。它包括加载振荡器算法、设置振荡器参数和处理音频输出的功能。

  • PresetType:一个枚举,表示合成器中不同类型的预设。该crate提供了加载和保存预设以及管理当前状态快照的方法。

  • ConvolutionCfgConvoluteArgs:这些结构体提供了卷积操作配置和参数,这对于实现各种音频效果,如混响和基于卷积的wavetable合成至关重要。

  • MaybeEffectMaybeEffects:这些特性定义了合成器中音频效果的一个通用接口,包括初始化、缓冲区管理、处理和参数控制的方法。

  • Ringout:一组与合成器中环出过程管理相关的方法和结构,负责逐渐降低声音的输出水平,直到它变得听不见。这对于管理合成器的多声部和CPU使用非常重要。

  • AttackRelease和相关特性:这些特性定义了合成器中包络的攻击和释放阶段的通用行为,包括启用/禁用包络、设置双极性/单极性模式以及处理音频块。

  • UpdateDisplay:一个特性,提供用于更新合成器组件显示的方法,包括加载系数、绘制幅度响应以及管理块大小和采样率。

与这些令牌相关的数学思想和方程主要与音频合成中使用的数字信号处理(DSP)算法相关,例如卷积、波形表合成和包络处理。虽然具体方程可能因实现而异,但该库为以一致和高效的方式处理这些概念提供了一个基础。

总结来说,surge-traits 库提供了一系列特性和实用工具,简化了 Surge 合成器系统的实现,确保其组件之间的一致行为,并促进新功能和改进的开发。

12> 我们能否看看更多的特性?请列出尽可能多的特性名称和简要描述

以下是 surge-traits 库中的一些特性及其简要描述

  1. Init:此特性提供了一个名为 init 的方法,用于初始化实现的结构体。通常用于设置结构体成员的初始值或分配资源。

  2. NTables:此特性定义了一个名为 ntables 的方法,它返回合成器中使用的波形表数量。它有助于管理不同组件所需的波形表数量。

  3. LookupWaveshape:此特性提供了一个名为 lookup_waveshape 的方法,它接受一个条目索引和一个值,然后从波形表返回一个值。这对于波形表合成和处理很有用。

  4. LookupWaveshapeWarp:与 LookupWaveshape 类似,此特性提供了一个名为 lookup_waveshape_warp 的方法,它接受一个条目索引和一个值,然后返回应用了扭曲的波形表中的值。这对于实现不同的波形扭曲算法很有用。

  5. ClearBuffers:此特性提供了一个名为 clear_buffers 的方法,用于清除音频处理组件的内部缓冲区。这在停止播放或更改参数时重置组件状态时很有用。

  6. Reset:此特性提供了一个名为 reset 的方法,用于重置实现的结构体的状态。它通常与 Init 特性一起使用,在配置更改后重新初始化组件。

  7. Suspend:此特性提供了一个名为 suspend 的方法,用于暂时禁用或停用音频处理组件。这在组件未使用时节省资源时很有用。

  8. Process:此特性提供了一个名为 process 的方法,用于处理音频数据块。它定义了音频组件的核心处理功能,并由各种组件实现,如振荡器、效果和滤波器。

  9. ProcessControl:此特性提供了一个名为 process_control 的方法,用于处理控制信号或事件,如 MIDI 消息或自动化数据。这对于需要对外部输入或参数值变化做出响应的组件很有用。

  10. AllowDisplay:此特性提供了一个名为 allow_display 的方法,它返回一个布尔值,指示实现的结构体是否应在用户界面中显示。这有助于管理合成器 UI 中的组件可见性。

这些只是 surge-traits 库中众多特性的一小部分。它们是 Surge 合成器系统各种组件的构建块,确保了一致的行为和统一的界面,用于与系统的不同部分进行交互。

13> 继续吧!谢谢!

我很高兴你觉得之前的列表很有帮助!以下是 surge-traits 库中的一些更多特性

  1. 加载系数:该特性提供了一个方法 load_coefficients,用于将滤波器系数加载到滤波器组件中。对于需要根据滤波器设置或其他参数更新其内部状态的组件,这非常有用。

  2. 更新显示:该特性提供了一个方法 update_display,用于更新用户界面中音频组件的显示。实现此特性允许组件根据内部状态或参数更改更新其视觉表示。

  3. 设置块大小:该特性提供了一个方法 set_blocksize,用于设置音频处理组件的块大小。这对于在Surge合成器系统中管理音频处理所使用的缓冲区大小非常有用。

  4. 设置音调:该特性提供了一个方法 set_pitch,用于设置音频组件(如振荡器或滤波器)的音调。这对于根据音符或MIDI输入控制组件的频率非常有用。

  5. 设置采样率:该特性提供了一个方法 set_samplerate,用于设置音频处理组件的采样率。这对于确保Surge合成器系统中的所有组件都以相同的采样率运行非常有用。

  6. 存储系数:该特性提供了一个方法 store_coefficients,用于从滤波器组件存储滤波器系数。这对于保存当前滤波器状态或在不同的组件之间共享滤波器设置非常有用。

  7. 绘制幅度:该特性提供了一个方法 plot_magnitude,用于绘制滤波器或其他音频处理组件的幅度响应。这对于在用户界面中可视化组件的频率响应非常有用。

  8. 重做:该特性提供了一个方法 redo,用于使用与之前 process 调用相同的设置重新处理一组音频数据。这对于需要重新应用其处理的组件非常有用,例如,在内部状态或参数更改之后。

  9. 获取环出状态:该特性提供了一个方法 get_ringout,用于检索音频处理组件的环出状态。这对于管理组件不再接收输入时的输出释放和衰减非常有用。

  10. 环出计数器:该特性提供了方法 ringout_counter_incrringout_counter_resetget_ringout_counter,用于管理与音频处理组件的环出状态相关的计数器。这有助于跟踪组件进入环出状态的次数。

这些附加特性进一步展示了 surge-traits 包的灵活性和模块化。通过实现这些特性,Surge合成器系统中的各种组件可以轻松集成和定制,以创建功能强大且特性丰富的合成器。

依赖关系

~12–21MB
~301K SLoC