SIGNAL//VOID · EXTERNAL AUDIO EDITION · 2026 · BROWSER-NATIVE AUDIOVISUAL INSTRUMENT
A room that
listens back.
SIGNAL//VOID 是一个全部在浏览器里实时生成的听觉房间。生成声场不依赖预录音频、视频或贴图;外部输入支持本地文件与麦克风,本地 GSAP 用于入场动画——你看到的 88,000 个点和听到的每一个音,都是当场算出来的。
它更像一件可以演奏的乐器,而不是一个播放器:拖动漫游,点击落下一枚音,三根滑杆分别改变音高、速度与亮度、空间远近,四个章节对应四种完全不同的音乐性格。
提交信息
上传到作品平台或交付评审时,这一段可以直接引用。
预览
乐器页展示当前界面,桌面与手机预览均来自本机浏览器;其余截图展示声景索引与分享社区。
作品简介
给不看代码的人看的版本。
这是一间可以进入的房间。进去之后,画面会随着你调的音慢慢变形:调高中心音,整个空间会往上升;加大脉冲,它会变快变亮;把距离拉远,声音会退到走廊尽头,画面也会散开。你可以把这些状态存下来,也可以带走——一张 4K 海报,或一段 60 秒的声音。
它刻意不做三件事:不假装成宇宙模拟器,不播放现成的背景音乐,也不在你不注意的时候把数据送走。
新增:外部声音转为动态图像
可主动开启麦克风,或选择本地音频文件。音量、低中高频能量、频谱重心与起音用于驱动抽象视觉;不是语义识别或情绪测量。麦克风不回放、不录音,音频文件不上传。可冻结画面并导出当前 PNG。外部音频不包含在档案、分享参数或生成式 WAV 中。
外部输入的自动核验与使用范围见随包《外部声音使用说明.md》;本页旧版测试结论未作为本次新功能的实测结论。
实现要点
- 声音:原生 Web Audio 实时合成四层结构——有起音与衰减的拨奏和弦块、缓慢呼吸的低频、稀疏的 FM 钟声、带阻尼的空间回声。四个章节使用不同的和弦族与动机,不是同一个音色换滤波。
- 画面:自写 GLSL 顶点着色器驱动 88,000 个点(手机 38,000);没有 GPU 时降级到批量绘制的 Canvas 11,000 点,形态语言保持一致。
- 联动:声音的能量实时回灌画面,点场的亮度与呼吸跟着响度走;拖拽与点击同时改变视角与音乐。
- 导出:现场 WAV 保存生成声场实际播放的最近12或60秒;目录 WAV 以当前参数和种子从头渲染。两者与4K海报均在本机处理,不上传,不需要账号。
- 十二声景:十二个参数组合被当作作品集策展,每个都能试听、深入与下载。
现场可试
工程结构
| 文件 | 作用 |
|---|---|
index.html · styles.css | 乐器界面、语义结构与可访问性、响应式与减动效 |
app.js | 状态、交互、档案、导出、分享、渲染循环 |
renderer.js | WebGL 着色器点场 + 批量 Canvas 兜底 + GPU 生命周期 |
audio.js | 种子乐谱、实时与离线共用合成图、现场PCM暂存与立体声WAV编码 |
soundscapes.js · curator.html · curator.js | 十二声景数据契约、索引页与就地试听 |
scripts/validate.cjs | 主验收:45 条断言 |
scripts/render-suite.cjs | 离线渲染声景音频(--all 渲染全部 12 个) |
work/ | 专项回归:声音特征、移动端、导出、无障碍、渲染器生命周期 |
design/ · release-manifest.json | 设计契约、交付哈希清单 |
验证与复现
本版优先修复距离启动参数、视角编码、冻结画面、现场WAV与种子重播。随包「本次核验.json」记录当前文件的检查结果与浏览器证据;历史版本的截图、声景成品和性能数字不代表本版实测。
自动检查脚本位于 tests/。实际浏览器音频检查页 tests/consistency-browser.html 可检查种子PCM一致性和现场捕获。请通过本机预览服务打开。
同参数、同种子控制从头生成的乐句。参数分享与档案不包含演奏过程、麦克风或音频文件;要保留一次临场演奏,请下载「已听声音」WAV。音频节点实现与采样率可能因浏览器不同而存在差别,不宣称跨浏览器逐采样一致。
诚实边界
本地创作,独立社区:主作品的音频分析与图像生成在本地运行,不上传麦克风或音频文件;社区发布单独使用 Pages Functions + KV。没有账号、支付或跨设备档案。麦克风建议在 HTTPS 或 localhost 页面使用。
本地存储不是保险箱:file:// 模式下同一浏览器的其他本地页面理论上可以读到本机档案。我们不建议把敏感内容存进档案,并提供双击清除本机数据。
手机性能是估算区间:仓库中的帧率来自桌面无头浏览器,不能代表真机;渲染路径与点数已按移动端重新配置,但中低端安卓的实际表现仍可能更低。
不是独立视觉验收:像素与结构证据齐全,但没有经过体系外的审美评审。
一句话总结
用原生 WebGL、Canvas 与 Web Audio 手写了一个可以演奏的房间,把十二种状态做成作品集,并且把「带走它」这件事真的做完了——而不是留一个支付按钮。



