Nyquist内置函数-振荡器函数

1 Nyquist内置函数-振荡器函数

1.1 振荡器

  • osc(pitch [, duration, table, phase]) [SAL]
    (osc pitch [duration table phase]) [LISP]
    返回一个声音,该声音是在给定持续时间内,以 pitch 振荡波形表,从 phase(以度为单位)开始。默认值为:duration: 1.0(秒),table: *table*phase: 0.0*table* 的默认值是一个正弦波。持续时间由 *warp**sustain* 拉伸。幅度名义上为1,但由 *loud*(以dB为单位)缩放。起始时间是逻辑时间0,由 *warp* 变换,采样率为 *sound-rate*。时间扭曲的效果仅扭曲起始时间和结束时间;信号具有恒定的未扭曲频率。
    注意1table 是一个3元素列表。有关详细说明,请参见 maketable
    注意2:在当前实现中,假定输出声音是周期性的。请参见 snd-downsnd-up 以将一次性声音重采样到所需采样率。osc 的未来版本将处理这两种情况。
    注意3:调用 osc 时,会为波形表分配内存,样本从声音(作为 table 参数的列表的第一个元素)复制到内存中。osc 的每个实例都有波形表的私有副本,因此在某些情况下,例如在大型合成器中使用许多 osc 实例时,总存储量可能会很大。在某些情况下,使用 snd-flatten(请参见“访问和创建声音”部分 )使声音完全实现可能是有意义的,之后 osc 及其波形表内存可以通过垃圾回收回收。部分函数(见下文)不需要私有波形表,并且不会占用太多空间。
  • partial(pitch, env) [SAL]
    (partial pitch env) [LISP]
    返回指定音高的正弦波;声音乘以 env 。起始时间和持续时间取自 env,当然会受到变换的影响。采样率为 *sound-rate* 。此部分函数比 osc 更快。
  • sine(pitch [, duration]) [SAL]
    (sine pitch [duration]) [LISP]
    返回指定音高的正弦波。采样率为 *sound-rate* 。就变换而言,此函数与 osc 类似。sine 函数比 osc 更快。
  • hzosc(hz [, table, phase]) [SAL]
    (hzosc hz [table phase]) [LISP]
    返回一个声音,该声音是以 hz 振荡波形表,从 phase 度开始。默认波形表为 *table*,默认相位为0.0度。默认持续时间为1.0,但会像 osc 中那样拉伸(见上文)。hz 参数可以是一个声音,在这种情况下,结果的持续时间是 hz 的持续时间。采样率为 *sound-rate*
  • osc-saw(hz) [SAL]
    (osc-saw hz) [LISP]
    返回指定频率(单位为赫兹)的锯齿波形。采样率为 *sound-rate* 。与 hzosc 一样,hz 参数可以是一个声音(见上文)。
  • osc-tri(hz) [SAL]
    (osc-tri hz) [LISP]
    返回指定频率(单位为赫兹)的三角波形。采样率为 *sound-rate* 。与 hzosc 一样,hz 参数可以是一个声音(见上文)。
  • osc-pulse(hz, bias [, compare-shape]) [SAL]
    (osc-pulse hz bias [compare-shape]) [LISP]
    返回指定频率(单位为赫兹)的可变宽度脉冲波形。bias 参数控制脉冲宽度,应在 -1 到 +1 之间,对应脉冲宽度从0%(全关)到100%(全开)。当 bias 为零时,生成方波。bias 可以是一个声音。
  • buzz(n, pitch, modulation) [SAL]
    (buzz n pitch modulation) [LISP]
    返回具有 n 个等幅度谐波且总幅度为1.0的声音,使用一个已知函数。如果 n(整数)小于1,则设置为1。如果 n 太大,会出现混叠。pitch 指定基频(一个数,以音阶步数为单位),假设无调制。持续时间由声音调制的持续时间决定,声音调制是一个以赫兹表示的频率调制项(请参见“振荡器”部分 )。负频率会被正确处理。采样率为 *sound-rate*
  • pluck(pitch [, duration, final-amplitude]) [SAL]
    (pluck pitch [duration final-amplitude]) [LISP]
    返回一个使用修改后的Karplus-Strong弹拨弦算法在指定音高创建的声音。在 duration 秒内,幅度从约1.0衰减到约 final-amplitude 。默认值是在1秒内衰减到0.001(-60dB)。采样率为 *sound-rate*
  • siosc(pitch, modulation, tables) [SAL]
    (siosc pitch modulation tables) [LISP]
    通过对一系列周期波形进行插值来返回构建的声音。频率由 pitch 给出(以半音为单位),向其添加调制信号(单位为赫兹),与 fmosc 完全一样。tables 指定一系列波形,形式为:(table0 time1 table2... timeN tableN),其中每个 table 是表示一个周期的声音。每个 time 是从起始时间开始测量的时间间隔。时间由名义持续时间(使用 (local-to-global (get-sustain)) 计算)缩放。请注意,这意味着线性拉伸而不是插值或断点的连续时间扭曲。起始时间的波形是 table0,在 time1 之后(按上述方式缩放)是 table1,依此类推。持续时间和逻辑停止时间由调制给出。如果调制短于 timeN,则不使用完整的波形序列。如果 modulation 长于 timeN,则在 timeN 之后使用 tableN 而不进行进一步插值。
  • sampler(pitch, modulation [, sample, npoints]) [SAL]
    (sampler pitch modulation [sample npoints]) [LISP]
    返回一个声音,该声音通过从开头读取一个样本,然后拼接相同声音的副本到结尾来构建。pitchmodulation 参数的用法与上述 fmosc 中相同。可选的 sample(默认为2048点正弦波)是以下形式的列表:(sound pitch-number loop-start),其中第一个元素是包含样本的声音,第二个是样本的音高,第三个元素是循环点的时间。如果循环点不在声音的边界内,则设置为零。可选的 npoints 参数指定用于样本插值的点数。目前此参数默认为2,仅实现2点(线性)插值。可以对负频率进行调制。请注意,循环点可能是虚构的。采样率为 *sound-rate*

作者声明:本文用于记录和分享作者的学习心得,可能有部分文字或示例来自AI平台,如:豆包、DeepSeek(硅基流动)(注册链接)等,由于本人水平有限,难免存在表达错误,欢迎留言交流和指教!
Copyright © 2022~2025 All rights reserved.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值