SIGNAL//VOIDSUBMISSION

SIGNAL//VOID · EXTERNAL AUDIO EDITION · 2026 · BROWSER-NATIVE AUDIOVISUAL INSTRUMENT

A room that
listens back.

SIGNAL//VOID 是一个全部在浏览器里实时生成的听觉房间。生成声场不依赖预录音频、视频或贴图;外部输入支持本地文件与麦克风,本地 GSAP 用于入场动画——你看到的 88,000 个点和听到的每一个音,都是当场算出来的。

它更像一件可以演奏的乐器,而不是一个播放器:拖动漫游,点击落下一枚音,三根滑杆分别改变音高、速度与亮度、空间远近,四个章节对应四种完全不同的音乐性格。

0外部请求
0依赖库(GSAP 为本地可选)
12策展声景
45 / 45验收断言
3840×2160收藏海报

提交信息

上传到作品平台或交付评审时,这一段可以直接引用。

作品名SIGNAL//VOID — 一个可以被听见的房间
作者待填写(请替换为你的署名)
版本r12 · 十二声景 + 分享社区
类型浏览器原生生成式视听乐器
技术栈原生 WebGL / Canvas 2D / Web Audio / DOM;Pages Functions + KV
依赖零运行时依赖(GSAP 为本地可选)
体积运行必需文件约 0.3 MB;含成品音频与回归脚本的完整包约 21 MB
离线演示双击 index.html 即可运行

预览

乐器页展示当前界面,桌面与手机预览均来自本机浏览器;其余截图展示声景索引与分享社区。

乐器页桌面视图:WebGL 点场、章节选择与三根滑杆乐器 · 单屏整合桌面视图 乐器页手机视图:竖屏舞台占据大部分视野乐器 · 手机视图 十二声景索引页:卡片网格与试听按钮十二声景 · 1600×1100 分享社区页:发布表单与房间列表分享社区 · 1600×1000

作品简介

给不看代码的人看的版本。

这是一间可以进入的房间。进去之后,画面会随着你调的音慢慢变形:调高中心音,整个空间会往上升;加大脉冲,它会变快变亮;把距离拉远,声音会退到走廊尽头,画面也会散开。你可以把这些状态存下来,也可以带走——一张 4K 海报,或一段 60 秒的声音。

它刻意不做三件事:不假装成宇宙模拟器,不播放现成的背景音乐,也不在你不注意的时候把数据送走。

新增:外部声音转为动态图像

可主动开启麦克风,或选择本地音频文件。音量、低中高频能量、频谱重心与起音用于驱动抽象视觉;不是语义识别或情绪测量。麦克风不回放、不录音,音频文件不上传。可冻结画面并导出当前 PNG。外部音频不包含在档案、分享参数或生成式 WAV 中。

外部输入的自动核验与使用范围见随包《外部声音使用说明.md》;本页旧版测试结论未作为本次新功能的实测结论。

实现要点

现场可试

进入房间完整乐器 · 四个章节 十二声景试听 / 深入 / 下载 分享社区发布 / 浏览 / 一键进入 Open WindowBLOOM · 512 Hz OcclusionECLIPSE · 312 Hz UndertowTIDAL · 384 Hz 成品音频60 秒 · 22.05kHz 单声道

工程结构

文件作用
index.html · styles.css乐器界面、语义结构与可访问性、响应式与减动效
app.js状态、交互、档案、导出、分享、渲染循环
renderer.jsWebGL 着色器点场 + 批量 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 手写了一个可以演奏的房间,把十二种状态做成作品集,并且把「带走它」这件事真的做完了——而不是留一个支付按钮。