模块 softcut
Softcut 模块。
控制 "softcut" 缓冲区处理器的 API 包括低级设置器和中级实用工具
重要提示:所有索引都是基于 1 的,符合 lua 约定! 这适用于选择语音、ADC/DAC 通道、缓冲区等的索引。 但是,数量(包括时间单位)仍然可以从零开始。
- level (voice, amp)
-
设置每个语音的输出电平
参数:
- voice int : 语音索引
- amp number : 线性幅度
- pan (voice, pos)
-
设置每个语音的声像位置。
-1 == 完全左声道,+1 == 完全右声道,0 == 居中
参数:
- voice int : 语音索引
- pos number : [-1, 1] 范围内的位置
- level_input_cut (ch, voice, amp)
-
设置到每个语音/通道的输入电平。
参数:
- ch int : ADC 通道索引
- voice int : 语音索引
- amp number : 线性幅度
- level_cut_cut (src, dst, amp)
-
设置混音矩阵,语音输出到语音输入。
参数:
- src number : 源语音索引
- dst number : 目标语音索引
- amp number : 线性幅度
- play (voice, state)
-
设置播放状态。
参数:
- voice int : 语音索引
- state int : 关闭/开启 (0,1)
- rate (voice, rate)
-
设置播放速率。
参数:
- voice int : 语音索引
- rate number : 读写磁头速度(无量纲;1 == 正常)
- loop_start (voice, pos)
-
设置循环开始。
参数:
- voice int : 语音索引
- pos number : 循环开始位置(以秒为单位)
- loop_end (voice, pos)
-
设置循环结束。
参数:
- voice int : 语音索引
- pos number : 循环结束位置(以秒为单位)
- loop (voice, state)
-
设置循环模式。
"0" 表示单次播放模式:语音将播放到循环端点,淡出并停止。
"1" 表示交叉淡入淡出循环模式。
参数:
- voice int : 语音索引
- state int : 关闭/开启 (0,1)
- fade_time (voice, fade_time)
-
设置淡入淡出时间。
参数:
- voice int : 语音索引
- fade_time number : 交叉淡入淡出时间(以秒为单位)
- rec_level (voice, amp)
-
设置录音电平。
这设置实时调制的录音电平,
通过它输入信号在写入缓冲区之前被缩放
适用
recpre斜变电平参数:
- voice int : 语音索引
- amp number : 新信号的线性幅度
- pre_level (voice, amp)
-
设置预电平(叠加保留。)
这设置实时调制的"保留"电平,
通过它现有材料在写磁头的每次通过时被缩放。
适用
recpre斜变电平参数:
- voice int : 语音索引
- amp number : 保留信号的线性幅度
- rec (voice, state)
-
设置录音状态。
参数:
- voice int : 语音编号 (1-?)
- state int : 关闭/开启 (0,1)
- rec_offset (voice, value)
-
设置录音磁头偏移
参数:
- voice
- value
- position (voice, value)
-
设置播放位置
参数:
- voice
- value
- buffer (i, b)
-
指定语音使用的缓冲区。
参数:
- i int : 语音编号
- b int : 缓冲区编号 (1,2)
- voice_sync (dst, src, offset)
-
同步两个语音。
"dst" 的位置将立即设置为"source"的位置
参数:
- dst int : 目标语音索引
- src int : 源语音索引
- offset number : 额外的偏移量(以秒为单位)
- pre_filter_fc (voice, fc)
-
设置预滤波器截止频率。
参数:
- voice int : 语音索引
- fc number : 截止频率(以 Hz 为单位)
- pre_filter_fc_mod (voice, amount)
-
设置预滤波器速率调制量。
此参数控制当前速率影响滤波器截止频率的量
(始终为负方向,朝向零。)
当 mod == 1 时,设置 rate = 0 也会完全关闭滤波器。
这可以作为粗略的抗混叠方法...
参数:
- voice int : 语音索引
- amount number : [0, 1] 范围内的调制量
- pre_filter_rq (voice, rq)
-
设置预滤波器 Q 因子的倒数。
滤波器 Q 因子的倒数是带宽的度量,
它与中心频率无关。
RQ ~= 0 将导致自振荡;
RQ == 4 给出 2 个八度的带宽。
参数:
- voice int : 语音索引
- rq number : 语音滤波器 Q 因子的倒数
- pre_filter_lp (voice, amp)
-
设置预滤波器低通输出电平。
参数:
- voice int : 语音索引
- amp number : 线性幅度
- pre_filter_hp (voice, amp)
-
设置预滤波器高通输出电平。
参数:
- voice int : 语音索引
- amp number : 线性幅度
- pre_filter_bp (voice, amp)
-
设置预滤波器带通输出电平。
参数:
- voice int : 语音索引
- amp number : 线性幅度
- pre_filter_br (voice, amp)
-
设置预滤波器带阻输出电平。
参数:
- voice int : 语音索引
- amp number : 线性幅度
- pre_filter_dry (voice, amp)
-
设置预滤波器干信号输出电平。
参数:
- voice int : 语音索引
- amp number : 线性幅度
- filter_fc (voice, value)
-
预滤波器的包装器,用于向后兼容
参数:
- voice
- value
- post_filter_fc (voice, value)
-
设置后滤波器截止
参数:
- voice int : 语音索引
- value number : 截止频率(以 Hz 为单位)
- post_filter_rq (voice, rq)
-
设置后滤波器 Q 的倒数
滤波器 Q 因子的倒数是带宽的度量,
它与中心频率无关。
RQ ~= 0 将导致自振荡;
RQ == 4 给出 2 个八度的带宽。
参数:
- voice int : 语音索引
- rq number : 语音滤波器 Q 因子的倒数
- post_filter_lp (voice, amp)
-
设置后滤波器低通输出电平。
参数:
- voice int : 语音索引
- amp number : 线性幅度
- post_filter_hp (voice, amp)
-
设置后滤波器高通输出电平。
参数:
- voice int : 语音索引
- amp number : 线性幅度
- post_filter_bp (voice, amp)
-
设置后滤波器带通输出电平。
参数:
- voice int : 语音索引
- amp number : 线性幅度
- post_filter_br (voice, amp)
-
设置后滤波器带阻输出电平。
参数:
- voice int : 语音索引
- amp number : 线性幅度
- post_filter_dry (voice, amp)
-
设置后滤波器干信号输出电平。
参数:
- voice int : 语音索引
- amp number : 线性幅度
- level_slew_time (voice, time)
-
设置电平斜变时间
此斜变时间适用于所有混音点的电平:ADC->语音、语音->语音等。
参数:
- voice int : 语音索引
- time number : 指数斜变时间(以秒为单位)(-60db 收敛)
- pan_slew_time (voice, time)
-
设置声像斜变时间
参数:
- voice int : 语音索引
- time number : 指数斜变时间(以秒为单位)(-60db 收敛)
- recpre_slew_time (voice, time)
-
设置录音预电平斜变时间
影响录音和预电平的斜变时间
参数:
- voice int : 语音索引
- time number : 指数斜变时间(以秒为单位)(-60db 收敛)
- rate_slew_time (voice, time)
-
设置速率斜变时间
影响速率的斜变时间
参数:
- voice int : 语音索引
- time number : 指数斜变时间(以秒为单位)(-60db 收敛)
- phase_quant (voice, quantum)
-
设置相位轮询量子
例如,0.25 将在 rate=1 时每秒产生 4 次更新
明智地使用此参数比使用非常快的轮询(为了性能)
或以任意速率轮询(为了速率斜变时的准确性)更可取。
参数:
- voice int : 语音索引
- quantum number : 相位报告间隔(以秒为单位)
- phase_offset (voice, offset)
-
设置相位轮询偏移(以帧为单位)
参数:
- voice int : 语音索引
- offset number : 相位轮询偏移(以秒为单位)
- poll_start_phase ()
- 开始相位轮询
- poll_stop_phase ()
- 停止相位轮询
- enable (voice, state)
-
设置语音启用
禁用的语音没有效果且基本消耗零 CPU
参数:
- voice int : 语音编号 (1-?)
- state int : 关闭/开启 (0,1)
- buffer_clear ()
- 完全清除所有缓冲区
- buffer_clear_channel (channel)
-
完全清除一个缓冲区
参数:
- channel int : 缓冲区通道索引(基于 1)
- buffer_clear_region (start, dur, fade_time, preserve)
-
清除区域(两个通道)
参数:
- start number : 开始点(以秒为单位)
- dur number : 持续时间(以秒为单位)
- fade_time number : 交叉淡入淡出时间(以秒为单位)
- preserve number : 现有材料的电平
- buffer_clear_region_channel (ch, start, dur, fade_time, preserve)
-
清除单通道区域
参数:
- ch int : 缓冲区通道索引(基于 1)
- start number : 开始点(以秒为单位)
- dur number : 持续时间(以秒为单位)
- fade_time number : 交叉淡入淡出时间(以秒为单位)
- preserve number : 现有材料的电平
- buffer_copy_mono (src_ch, dst_ch, start_src, start_dst, dur, fade_time, preserve, reverse)
-
将缓冲区中的一个区域复制到另一个位置
参数:
- src_ch int : 源缓冲区索引(基于 1)
- dst_ch int : 目标缓冲区索引(基于 1)
- start_src number : 源中的开始点(以秒为单位)
- start_dst number : 目标中的开始点(以秒为单位)
- dur number : 持续时间(以秒为单位)。如果为 -1,则复制尽可能多的内容。
- fade_time number : 交叉淡入淡出时间(以秒为单位)
- preserve number : 现有材料的电平
- reverse int : 非零值表示复制时反转。反转时,不处理源区域和目标区域之间的重叠。
- buffer_copy_stereo (start_src, start_dst, dur, fade_time, preserve, reverse)
-
将两个缓冲区的区域复制到另一个位置
参数:
- start_src number : 源中的开始点(以秒为单位)
- start_dst number : 目标中的开始点(以秒为单位)
- dur number : 持续时间(以秒为单位)。如果为 -1,则复制尽可能多的内容。
- fade_time number : 交叉淡入淡出时间(以秒为单位)
- preserve number : 现有材料的电平
- reverse int : 非零值表示复制时反转。
- buffer_read_mono (file, start_src, start_dst, dur, ch_src, ch_dst, preserve, mix)
-
将单声道音频文件读取到单个缓冲区的任意区域
参数:
- file string : 输入文件路径
- start_src number : 源中的开始点(以秒为单位)
- start_dst number : 目标中的开始点(以秒为单位)
- dur number : 持续时间(以秒为单位)。如果为 -1,则读取尽可能多的内容。
- ch_src int : 要读取的音频文件通道
- ch_dst int : 要写入的缓冲区通道
- preserve number : 现有材料的电平
- mix number : 新材料的电平
- buffer_read_stereo (file, start_src, start_dst, dur, preserve, mix)
-
将立体声音频文件读取到两个缓冲区的任意区域
参数:
- file string : 输入文件路径
- start_src number : 源中的开始点(以秒为单位)
- start_dst number : 目标中的开始点(以秒为单位)
- dur number : 持续时间(以秒为单位)。如果为 -1,则读取尽可能多的内容
- preserve number : 现有材料的电平
- mix number : 新材料的电平
- buffer_write_mono (file, start, dur, ch)
-
将任意缓冲区区域写入音频文件(单声道)
参数:
- file string : 输出文件路径
- start number : 开始点(以秒为单位)
- dur number : 持续时间(以秒为单位)。如果为 -1,则读取尽可能多的内容
- ch int : 缓冲区通道索引(基于 1)
- buffer_write_stereo (file, start, dur)
-
将两个缓冲区的任意区域写入立体声音频文件
参数:
- file string : 输出文件路径
- start number : 开始点(以秒为单位)
- dur number : 持续时间(以秒为单位)。如果为 -1,则读取尽可能多的内容
- event_phase (func)
-
设置相位轮询的函数
参数:
- func function : 回调函数。此函数应接受两个参数 (voice, phase)
- render_buffer (ch, start, dur, samples)
-
请求区域缓冲区内容的快照。
参数:
- ch integer : 缓冲区通道索引(基于 1)
- start number : 区域的开始(以秒为单位)
- dur number : 区域的长度(以秒为单位)
- samples integer : 要检索的最大样本数。如果小于区域中的帧数,内容将被下采样
- event_render (func)
-
设置渲染回调的函数。使用 render_buffer 请求内容。
参数:
- func function : 当缓冲区内容准备好时调用。参数: (ch, start, secpersample, samples)
- query_position (i)
-
查询播放位置
参数:
- i integer : 哪个 softcut 语音
- event_position (func)
-
设置查询回调的函数。使用 query_position 请求内容。
参数:
- func function : 当索引和位置返回时调用
- reset ()
-
重置后端 softcut 进程的状态。
这应该对应于上面
defaults()函数返回的值。 - defaults ()
-
获取 softcut 系统的默认状态
这为每个语音返回一个表,
其中每个键对应于上面定义的设置器函数之一的名称。
对于每个语音有一个值的参数,相应的条目也是单个值。
对于具有多个值的参数(例如矩阵索引),条目是一个表。
注意:这些值与 softcut cpp 源代码中指定的值手动同步
返回:
-
table
每个语音的参数状态表
- params ()
-
controlspec 工厂
每个表包含每个 softcut 参数的一个条目。
每个条目是为该语音+参数配置的参数参数列表
返回:
-
表的数组,每个语音一个。