Nyquist内置函数-杂项函数

news2025/4/10 6:32:48

1 Nyquist内置函数-杂项函数

1.1 杂项函数

这些函数对于日常使用来说都是安全且推荐的。

1.1.1 to-mono(sound) [SAL]

(to-mono sound) [LISP]
如果 sound 是多声道声音,返回其所有声道的总和;如果 sound 本身就是单声道声音,则直接返回,不做改变。有关声道求和的更多详细信息,请参见 sim(“组合与时序结构”部分 )。

; 假设已有一个多声道声音对象multi_channel_sound
(setq mono_sound (to-mono multi_channel_sound))
; 此时mono_sound就是转换后的单声道声音,可进行后续处理,比如播放等操作

1.1.2 db-to-linear(x) [SAL]

(db-to-linear x) [LISP]
x 从分贝转换为线性值。0dB 转换为 1,20dB 表示线性因子为 10。如果 x 是声音,会对每个样本进行转换并返回一个声音;如果 x 是多声道声音,每个声道都会进行转换并返回一个多声道声音(数组)。注意:对于声音,转换仅对实际样本进行,不对声音起始前和结束后的隐式零值进行转换。采样率、起始时间等信息取自 x

1.1.3 db-to-vel(x [, float]) [SAL]

(db-to-vel x [float]) [LISP]
使用将 -60dB 映射到 1 且 0dB 映射到 127 的规则,将 x 从分贝转换为 MIDI 速度。MIDI 速度与幅度的平方根成线性关系。float 的默认值为 nil,结果是一个截断在 1 - 127 合法范围内的定点数;但如果提供了非 nil 值,则结果是一个不进行舍入或截断的浮点数。输入参数必须是定点数或浮点数,不允许是声音。

1.1.4 follow(sound, floor, risetime, falltime, lookahead) [SAL]

(follow sound floor risetime falltime lookahead) [LISP]
一种用于压缩器和限制器功能的包络跟随器,旨在生成一个平滑信号,跟随输入信号的峰值。该函数的基本目标是产生一个代表均方根(RMS)测量幅度的平滑信号。输入的第一个参数是低采样率控制速率信号(表示局部RMS测量)。floor 是最小输出值;risetime 是输出从 floor 上升到 1.0 所需的时间(秒);falltime 是输出从 1.0 下降到 floor 所需的时间(秒);lookahead 是提前查看峰值并提前开始下降的时间(秒)。算法按以下方式工作:根据 lookahead 的值预测输出信号的变化量,根据 risetime 增加,根据 falltime 减少。如果下一个输入样本在该范围内,该样本即为输出。如果下一个输入样本太大,算法会回溯到下一个必要样本,计算一个包络样本,使其上升到 risetime 以达到新值。算法只会在 lookahead 的范围内回溯。如果回溯不够,就会进行最终的前向传递,计算一个上升信号,至少与输入信号一样快,直到与输入信号相交。如果输入信号下降速度比 falltime 指示的速度快,输出下降速率将受 falltime 限制,当输出达到 floor 时停止下降。该算法在输入急剧上升时可能需要对缓冲区进行两次遍历,所以速度不是特别快。使用短缓冲区和低采样率时,这一点会更明显。有关相关帮助生成低采样率输入的函数,请参见 snd-avg,关于相关滤波器,请参见“滤波器”部分 。

1.1.5 gate(sound, lookahead, risetime, falltime, floor, threshold) [SAL]

(gate sound lookahead risetime falltime floor threshold) [LISP]
生成一个用于噪声门的指数上升和下降包络。当信号下降到 threshold 以下且持续时间超过 lookahead(以秒为单位的浮点数)时,衰减开始。(信号在越过 threshold 时开始下降,而不是在 lookahead 之后。)衰减持续进行,直到值达到 floor(一个浮点数),此时衰减停止,输出值保持恒定。在信号越过 threshold 之前,每个持续时间(衰减)或在衰减停止时(如果信号再次超过 threshold),输出值将在信号越过 threshold 时上升到 1.0。由于内部提前查看,信号实际上在越过 threshold 之前就开始上升。上升是恒定速率的指数变化,设置为从 floor 上升到 1.0 的时间为 risetime。类似地,下降也是恒定速率的指数变化,从 1.0 下降到 floor 的时间为 falltime

1.1.6 noise-gate(sound [, lookahead, risetime, falltime, floor, threshold] [, rms: use-rms, link: link-option]) [SAL]

(noise-gate sound [lookahead risetime falltime floor threshold] [rms: use-rms:link link-option]) [LISP]
一种基于门的简单噪声门实现。除 snd 外,所有参数都是可选的,默认值为 lookahead: 0.5risetime: 0.02falltime: 0.5floor: 0.01threshold: 0.01。关键字参数 :rms:link 也是可选的,默认值分别为 use-rms: NIL(假)和 link-option: T(真)。结果是输入声音,根据上述阈值段进行衰减。注意:无论是否使用 use-rms,都会从声音的所有声道计算一个最大值,并用于控制噪声门。如果 link-option 不为 NIL,且输入声音是多声道的,则会计算并应用一个单一的门到所有声道。如果噪声门的阈值被任何声道超过,噪声门就会打开(即无论是否使用 use-rms,都会从所有声道计算一个最大值,并用于控制噪声门)。

1.1.7 hz-to-step(freq) [SAL]

(hz-to-step freq) [LISP]
返回 freq(以赫兹为单位,也可以是一个声音)对应的音阶步数,结果与参数类型相同。另请参见 step-to-hz(如下)。

1.1.8 linear-to-db(x) [SAL]

(linear-to-db x) [LISP]
x 从线性值转换为分贝值。1 转换为 0,0 转换为 -INF(一种特殊的IEEE浮点值)。因子 10 表示 20dB 的变化。如果 x 是声音,会对每个样本进行转换并返回一个声音;如果 x 是多声道声音,每个声道都会进行转换并返回一个多声道声音(数组)。注意:对于声音,转换仅对实际样本进行,不对声音起始前和结束后的隐式零值进行转换。采样率、起始时间等信息取自 x

1.1.9 linear-to-vel(x [, float]) [SAL]

(linear-to-vel x [float]) [LISP]
使用将 -60dB 映射到 1 且 0dB 映射到 127 的规则,将 x 从线性幅度转换为 MIDI 速度。MIDI 速度与幅度的平方根成线性关系。float 的默认值为 nil,结果是一个截断在 1 - 127 合法范围内的定点数;但如果提供了非 nil 值,则结果是一个不进行舍入或截断的浮点数。输入参数必须是定点数或浮点数,不允许是声音。

1.1.10 log(x) [SAL]

(log x) [LISP]
计算 x(一个浮点数)的自然对数。(有关对信号进行操作的版本,请参见 s-log 。)

1.1.11 set-control-srate(rate) [SAL]

(set-control-srate rate) [LISP]
通过设置 *default-control-rate* 并重新初始化环境,将控制信号的默认采样率设置为 rate。在任何合成函数中请勿调用此函数(请参见“控制速率绝对值转换”部分 )。

1.1.12 set-sound-srate(rate) [SAL]

(set-sound-srate rate) [LISP]
通过设置 *default-sound-rate* 并重新初始化环境,将音频信号的默认采样率设置为 rate。在任何合成函数中请勿调用此函数(请参见“声音速率绝对值转换”部分 )。

1.1.13 set-pitch-names() [SAL]

(set-pitch-names) [LISP]
初始化音高变量(c0cs0d0ds0,…,b0c1,…,b7)。A440(默认调音)由音阶步数 69.0 表示,因此变量 a4(第四八度的A)设置为 69.0。你可以通过将 *A4-Hertz* 设置为一个值(以赫兹为单位)并调用 set-pitch-names 来重新初始化音高变量,从而改变调音。请注意,这将导致非整数音阶步数值,它不会拉伸或映射音分的值到频率。没有内置的规定用于处理非十二平均律音阶,但用户可以编写或计算任何所需的分数音阶步数值。

1.1.14 step-to-hz(pitch) [SAL]

(step-to-hz pitch) [LISP]
返回 pitch(一个音阶步数或表示随时间变化的音阶步数的声音类型)对应的赫兹频率。如果 pitch 是一个数,结果是一个浮点数;如果 pitch 是一个声音,结果是一个声音。另请参见 hz-to-step(如上)。

1.1.15 get-ioi(dur) [SAL]

(get-ioi dur) [LISP]
获取从局部时间 0 开始到局部时间 dur 结束的某事物的时间间隔。为方便起见,*rslt* 设置为对应局部时间 0 的全局时间。请注意,在此计算中不考虑 sustain。目的是计算序列中当前事件之后下一个事件的标称起始时间(即考虑当前事件的逻辑停止时间,而不是实际持续时间)。

1.1.16 get-duration(dur) [SAL]

(get-duration dur) [LISP]
获取从局部时间 0 开始到局部时间 dur 结束的某事物的实际持续时间,计算时考虑 sustain。为方便起见,*rslt* 设置为对应局部时间 0 的全局时间。另请参见 get-ioi(如上)。

1.1.17 get-loud() [SAL]

(get-loud) [LISP]
获取 *loud* 环境变量的当前值。如果 *loud* 是一个信号,则在局部时间 0 对其求值并返回一个数(浮点数)。

1.1.18 get-sustain() [SAL]

(get-sustain) [LISP]
获取 *sustain* 环境变量的当前值。如果 *sustain* 是一个信号,则在局部时间 0 对其求值并返回一个数(浮点数)。

1.1.19 get-transpose() [SAL]

(get-transpose) [LISP]
获取 *transpose* 环境变量的当前值。如果 *transpose* 是一个信号,则在局部时间 0 对其求值并返回一个数(浮点数)。

1.1.20 get-warp() [SAL]

(get-warp) [LISP]
获取与 *warp* 环境变量当前值对应的函数。为提高效率,*warp* 存储为三个部分的表示:shiftscale 因子和一个连续的扭曲函数。get-warp 检索一个将逻辑时间映射到实际时间的信号,该信号将 *warp* 的三个部分的信息组合成一个单一信号。如果连续的扭曲函数部分不存在(这表明时间扭曲主要是 atstretch 变换的简单组合),则不会引发错误。此函数主要供内部使用。将来,get-warp 可能会重新实现,始终返回一个信号且不会引发错误。

1.1.21 local-to-global(local-time) [SAL]

(local-to-global local-time) [LISP]
根据当前环境将乐谱(局部)时间转换为实际(全局)时间。

1.1.22 round(x) [SAL]

(round x) [LISP]
x 四舍五入到最接近的整数。如果 xn + 0.5,其中 n 是整数,则返回 n + 1,即使 n 为负数。

1.1.23 snd-set-latency(latency) [SAL]

(snd-set-latency latency) [LISP]
将Nyquist播放声音时请求的延迟设置为 latency(一个浮点数),返回先前的值。默认值为 0.3 秒。为避免出现杂音,延迟应大于垃圾回收和消息打印所需的时间,以及Nyquist外部的其他系统活动时间。

1.1.24 vel-to-db(x) [SAL]

(vel-to-db x) [LISP]
使用将MIDI速度 1 映射到 -60dB 且 127 映射到 0dB 的规则,将 x 从MIDI速度转换为分贝值。幅度与MIDI速度的平方成正比。输入 x 可以是定点数或浮点数,但不能是声音,结果是一个浮点数。

1.1.25 vel-to-linear(x) [SAL]

(vel-to-linear x) [LISP]
使用将MIDI速度 1 映射到 -60dB(0.001)且 127 映射到单位增益的规则,将 x 从MIDI速度转换为线性幅度比。幅度与MIDI速度的平方成正比。输入 x 可以是定点数或浮点数,但不能是声音,结果是一个浮点数。


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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2328049.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基姆拉尔森计算公式

基姆拉尔森计算公式(Zellers Congruence 的变体)是一种快速根据公历日期计算星期几的数学公式。其核心思想是通过对年月日的数值进行特定变换和取模运算,直接得到星期几的结果。 公式定义 对于日期 年-月-日,公式如下&#xff1a…

5 分钟用满血 DeepSeek R1 搭建个人 AI 知识库(含本地部署)

最近很多朋友都在问:怎么本地部署 DeepSeek 搭建个人知识库。 老实说,如果你不是为了研究技术,或者确实需要保护涉密数据,我真不建议去折腾本地部署。 为什么呢? 目前 Ollama 从 1.5B 到 70B 都只是把 R1 的推理能力…

Python数据可视化-第6章-坐标轴的定制

环境 开发工具 VSCode库的版本 numpy1.26.4 matplotlib3.10.1 ipympl0.9.7教材 本书为《Python数据可视化》一书的配套内容,本章为第6章 坐标轴的定制 本章主要介绍了坐标轴的定制,包括向任意位置添加坐标轴、定制刻度、隐藏轴脊和移动轴脊。 参考 第…

18认识Qt坐标系

平面直角坐标系(笛卡尔坐标系) 数学上的坐标系 右手坐标系 计算机中的坐标系 左手坐标系 坐标系的原点(0,0) 就是屏幕的左上角 /窗口的左上角 给 Qt 的某个控件,设置位置,就需要指定坐标.对于这个控件来说, 坐标系原点就是相对于父窗口/控件的. QPushButton 的父元素/父控件/父…

动态循环表单+动态判断表单类型+动态判断表单是否必填方法

页面效果: 接口请求到的数据格式: list: [{demandType: "设备辅助功能要求",demandSettingList: [{id: "1907384788664963074",name: "测试表单",fieldType: 0,contentValue: "",vaildStatus: 0, // 0 非必填&a…

25.4.3学习总结【Java】

又是一道错题: 1. 班级活动https://www.lanqiao.cn/problems/17153/learning/?page1&first_category_id1&sortdifficulty&asc1&second_category_id3 问题描述 小明的老师准备组织一次班级活动。班上一共有 n 名 (n 为偶数) 同学,老师…

运维之 Centos7 防火墙(CentOS 7 Firewall for Operations and Maintenance)

运维之 Centos7 防火墙 1.介绍 Linux CentOS 7 防火墙/端口设置: 基础概念: 防火墙是一种网络安全设备,用于监控和控制网络流量,以保护计算机系统免受未经授权的访问和恶意攻击。Linux CentOS 7操作系统自带了一个名为iptables的…

开发一个小程序需要多久时间?小程序软件开发周期

开发一个小程序所需时间受多种因素影响,以下为你详细列举: 一、需求复杂度。若只是简单展示类小程序,如企业宣传、产品介绍,功能单一,大概 1 - 2 周可完成。若涉及复杂交互,像电商小程序,涵盖商…

【数据结构篇】算法征途:穿越时间复杂度与空间复杂度的迷雾森林

文章目录 【数据结构篇】算法征途:穿越时间复杂度与空间复杂度的迷雾森林 一、 什么是算法1. 算法的定义1.1 算法的五个特征1.2 好算法的特质 2. 时间复杂度3. 空间复杂度 【数据结构篇】算法征途:穿越时间复杂度与空间复杂度的迷雾森林 💬欢…

新增帧能耗指标|UWA Gears V1.0.9

UWA Gears 是UWA最新发布的无SDK性能分析工具。针对移动平台,提供了实时监测和截帧分析功能,帮助您精准定位性能热点,提升应用的整体表现。 本次版本更新主要新增帧能耗指标,帮助大家对每一帧的能耗进行精准监控,快速…

蓝桥杯嵌入式16届———LCD模块

LCD有官方给我们提供的库,我们使用其非常简单,唯一要注意的就是LCD和LED的引脚冲突。 引脚状况 STM32CubeMX 端口配置 使能 比赛给的选手 资源数据包中有以下三个文件,(除去led相关的),将他们复制到自己…

CMake在Windows环境下Visual Studio Code的使用

1,安装下载 地址:Visual Studio Code - Code Editing. Redefined 双击安装 选择安装路径 可勾选微软的AI工具 2,环境介绍 2.1 ,界面介绍 2.2中文包的安装 下载中文简体 汉化后的界面 2.3 配置C/C环境 VSCode安装好之后&#xf…

注意力机制在大语言模型中的原理与实现总结

注意力机制在大语言模型中的原理与实现总结 1. 章节介绍 在大语言模型的学习中,理解注意力机制至关重要。本章节旨在深入剖析注意力机制的原理及其在大语言模型中的应用,为构建和优化大语言模型提供理论与实践基础。通过回顾神经网络基础及传统架构的局…

大模型学习三:DeepSeek R1蒸馏模型组ollama调用流程

一、说明 目前DeepSeek R1及其蒸馏模型均支持使用ollama进行调用,可以在模型主页查看调用情况 deepseek-r1https://ollama.com/library/deepseek-r1 显存需求 ,我们显存是16G,可以玩好几个 二、以14B模型演示 1、安装ollama curl -fsSL htt…

RAGFlow部署与使用介绍-深度文档理解和检索增强生成

ragflow部署与使用教程-智能文档处理与知识管理的创新引擎 1. ragflow简介 ​ RAGFlow作为新一代智能文档处理平台,深度融合检索增强生成(RAG)技术与自动化工作流引擎,为企业级知识管理提供全栈解决方案。通过结合多模态解析、语…

【AI赋能:58招聘数据的深度剖析之旅】

影刀出鞘,抓取数据 在当今数字化时代,数据分析已成为企业决策和发展的关键驱动力。而获取高质量的数据则是数据分析的首要任务。在这个信息爆炸的时代,网络上蕴含着海量的数据,其中招聘网站的数据对于人力资源分析、市场趋势研究…

几何法证明卡特兰数_栈混洗

模型&#xff1a; 考虑从坐标原点 (0, 0) 到点 (n, n) 的路径&#xff0c;要求路径只能向右&#xff08;x 方向&#xff09;或向上&#xff08;y 方向&#xff09;移动&#xff0c;并且路径不能越过直线 y x&#xff08;即始终满足 y< x &#xff09;。这样的路径数量就是…

Kafka的安装与使用(windows下python使用等)

一、下载 可以去官网下载&#xff1a;https://kafka.apache.org/downloads 版本可选择&#xff0c;建议下载比较新的&#xff0c;新版本里面自带zookeeper 二、安装 创建一个目录&#xff0c;此处是D:\kafka&#xff0c;将文件放进去解压 如果文件后缀是gz&#xff0c;解压…

数据结构初阶: 顺序表的增删查改

顺序表 概念 顺序表是⽤⼀段物理地址连续的存储单元依次存储数据元素的线性结构&#xff0c;⼀般情况下采⽤数组存储。如图1&#xff1a; 顺序表和数组有什么区别&#xff1f; 顺序表的底层是用数组实现的&#xff0c;是对数组的封装&#xff0c;实现了增删查改等接口。 分…

详解AI采集框架Crawl4AI,打造智能网络爬虫

大家好&#xff0c;Crawl4AI作为开源Python库&#xff0c;专门用来简化网页爬取和数据提取的工作。它不仅功能强大、灵活&#xff0c;而且全异步的设计让处理速度更快&#xff0c;稳定性更好。无论是构建AI项目还是提升语言模型的性能&#xff0c;Crawl4AI都能帮您简化工作流程…