piapia123
zh

音调发生器(正弦波 / 方波 / 三角波 / 锯齿波)

音视频

所有处理都在浏览器本地完成,数据不上传服务器

音调发生器

音量默认 30%(戴耳机时满音量会吓人),要听清可以自己调大。点「播放」后声音才开始 —— 浏览器的自动播放策略要求第一次发声必须发生在用户操作里。

⚠️ 扫频默认走**指数**:人耳对频率的感知是对数的,指数扫频听起来才是「匀速」,线性扫频听起来「前面慢、后面快」。音量做了 20–50 ms 的淡入淡出 —— 直上直下会有一声「咔」。

在浏览器里现场合成一个音调:选波形、填频率(赫兹或音符名),点「播放」就能听到。 三件事常常被忽略,这里都做了:一是音量渐变 —— 直接起停振荡器会有一声「咔」,那是波形被硬切造成的,这里用 20–50 ms 的增益包络淡入淡出抹掉它;二是扫频走指数 —— 人耳对频率的感知是对数的,指数扫频听起来才是「匀速」,线性扫频听起来「前面慢、后面快」,这一点在测耳机、找共振点时差别很大;三是默认音量 30% —— 戴着耳机点开一个满音量的 440 Hz 正弦波是会吓到人的。 频率既可以填数字(`440`),也可以填音符名(`A4`、`C#5`、`Db3`),工具会显示它对应的赫兹与最接近的音符。低于 20 Hz 或高于 20 kHz 会提示「人耳听不见」,其中 20 Hz 以下还会提醒可能损坏低音单元。 声音由 `AudioContext` 现场合成,不加载任何音频文件、不发任何网络请求。

功能

  • 四种波形:正弦(最纯净)、方波、三角波、锯齿波
  • 频率可填赫兹或音符名(440 或 A4),并显示最接近的音符
  • 音量默认 30%(戴耳机不吓人),播放中也能实时调整
  • 左 / 右 / 双声道可选,用来检查耳机与音箱的左右
  • 指数扫频:从起始频率滑到结束频率,时长可设
  • 自动停止:填几秒后自动停,0 表示一直响到手动停止
  • 20–50 ms 的淡入淡出,消除开头的「咔」声
  • 低于 20 Hz 或高于 20 kHz 会提示「人耳听不见」;20 Hz 以下还提醒可能损坏低音单元
  • 全部在浏览器本地合成:不加载音频文件、不发起任何请求

使用方法

  1. 选波形,填频率(如 440 或 A4)
  2. 设置音量与声道
  3. 需要的话勾上扫频,填起始 / 结束频率与时长
  4. 点「播放」,到点自动停或点「停止」

常见问题

为什么要做音量渐变?
直接起停振荡器时,波形会从某个非零值突然跳到零(或反过来),扬声器把这个跳变重放成一声「咔」。加 20–50 ms 的淡入淡出就能消除。
扫频为什么默认用指数而不是线性?
因为人耳对频率的感知是对数的。从 20 Hz 扫到 20 kHz 时,指数扫频的中点在约 630 Hz(几何平均),线性扫频的中点却在 10 kHz(算术平均),差了一个数量级。指数听起来像匀速上升,线性听起来「前面慢、后面快」。
音量为什么默认 30%?
戴着耳机点开一个满音量的 440 Hz 正弦波,不只是吓人,对听力也是负担。先从小声开始,需要再调大。
会下载音频文件或联网吗?
不会。声音由 `AudioContext` 的振荡器现场合成,不加载任何音频文件,也不发起任何请求,断网也能用。
低于 20 Hz 或高于 20 kHz 会怎样?
两种情况都会提示「人耳听不见」。尤其是 20 Hz 以下,不只听不见,还可能损坏低音单元,所以会先提醒把音量调小。

相关工具