dsh-adhd-noise: Real-time synthesized focus soundscape plugin for ADHD in DSH

前言

写代码、调智能体、反复跑会话的时候,很多人会开白噪音或雨声来压住环境干扰。市面上的白噪音工具要么要你自己去录音网站找素材,要么播放器和命令行界面各占一边,切一次声音就要点开另一个窗口。

下面介绍 tommy00748-tech/dsh-adhd-noise(版本 3.1.2)。它把这件事放到 DSH 里:五种声音全部由浏览器 Web Audio API 实时合成,不下载一个音频文件,也不发起任何网络请求。插件在对话输入框下方放一个小胶囊,点开是一张 Liquid Glass 质感的浮层卡片,里面有会随波形呼吸的声球、声音切换、音量和定时。适合想「开一个会话顺便把背景声一起打开」的 DSH 开发者。

目录页:https://www.skillhub.cn/plugins/tommy00748-tech/dsh-adhd-noise
仓库:https://github.com/tommy00748-tech/dsh-adhd-noise

这是什么

一句话:一个把 ADHD 友好的固定声景嵌入 DSH 界面的插件。维护者是 tommy00748-tech,分类「趣味换装」,许可证 MIT。它解决的问题是:在 DSH 会话里直接播放棕色 / 粉红 / 白噪声、雨声、风扇声,同时让视觉和声音一起工作,而不是把播放器放在另一个窗口。

README 给出了和其他白噪音方案的四点差别:零素材零联网、为 ADHD 调的默认值(淡入淡出、安全音量、尊重减少动态效果 / 减少透明度)、视觉本身就是功能(真实波形驱动声球)、可配置默认值。

核心功能

五种声音:白噪声、粉红噪声(Paul Kellet 滤波)、棕色噪声(泄漏积分器)、雨声(粉红底噪 + 低频 body + 6 kHz 水雾 shimmer + 密度起伏的雨滴)、风扇声(55/110/165 Hz 扇叶谐波 + 空气噪声)。雨声和风扇用去相关的立体声缓冲,戴耳机时声场更宽。

一个播放/暂停按钮加 400px 浮层卡片(shell.overlay,不占布局):顶部 132px 声球,球内白线是 AnalyserNode 的实时时域波形;下面衬线标题直接写当前声音名,圆形播放按钮和剩余时间;音效用五枚粉彩渐变小圆球选择,选中放大 10%。音量是一根 2px 细滑杆,定时是极简文字选项。×、Esc、点击卡片外侧都能收起。

玻璃材质:backdrop-filter: blur(30px) saturate(180%) 之上叠 SVG feTurbulence + feDisplacementMap 的折射层,边缘用 conic-gradient 加 mask-composite 描出 1px 玻璃边;白色径向高光跟随鼠标(--adn-mx/--adn-my)。材质读宿主主题的 --dsw-alias-bg-base 亮度打 data-tone 做深浅自适应,不支持 backdrop-filter 时退回不透明底色。

窄窗口会翻转:插件测量输入框卡片矩形,400px 压到输入框就挪到左右空白,两侧不够再悬浮到输入框上方,不盖住发送按钮。对齐方式是探针扫描紧邻同类兄弟节点找到 composer 卡片本身,借它的 bottom 对齐,并通过监听尺寸变化跟随输入框变高。

默认值可由 Host 注入:插件行 config 写进 window.__ADHD_NOISE_DEFAULTS__,localStorage 优先。

安装与启用

安装命令来自 README,需要带 profile:

dsh plugin --profile desktop add "git+https://github.com/tommy00748-tech/dsh-adhd-noise.git"

本地开发用符号链接形式:

dsh plugin --profile desktop add "link:/path/to/dsh-adhd-noise"

装好后重启 DSH 或刷新页面,输入框下方出现胶囊。插件只在浏览器里合成声音,不需要 API Key,不读取任何凭据。启用 / 停用在「设置 → 插件」里的 dsh-adhd-noise 行;停用后胶囊消失、声音停止,本地文件不受影响。卸载在插件管理中移除即可。

engines 要求 dsh >=0.2.1-rc.1 <0.3.0,装之前先确认本地 DSH 版本落在这个区间。

典型用法

装好之后不需要额外配置就能用。装完刷新页面,输入框下方会出现形如 [▶] ◍ 粉红噪声 24:12 ⌃ 的胶囊:

  1. 点 ▶ 开始播放,胶囊里出现随声音呼吸的小光球。
  2. 点 ⌃ 浮出声景卡片,在声球下方听波形,用五枚粉彩小球换声音,用细滑杆调音量。
  3. 需要限时时选定时项;到点后 8 秒淡出,而不是硬停。

要在团队里固定一套默认值,在 Host 的插件配置里注入:

- id: adhd-noise
  name: dsh-adhd-noise
  config:
    defaultSound: brown      # brown | pink | white | rain | fan
    defaultVolume: 0.35      # 0–1 或 0–100
    timerMinutes: 25         # 0 | 15 | 25 | 50 | 90

注意 README 内部有一处不一致:上面配置示例的 defaultVolume 是 0.35,而「和其他白噪音插件的区别」一节写的是默认 30% 音量。两者都是资料原文,具体数值以你本地配置为准。

适用场景与注意事项

适合个人或团队想在 DSH 会话里用固定声景辅助专注的场景,尤其是不希望另外开一个播放器、也不希望下载音频文件的情况。

注意三点:

  • 插件以当前 DSH 进程的权限运行,安装前应先读一遍源码与许可证(MIT)。
  • 声音由浏览器合成,音色「接近」而非采样级真实录音;需要绝对逼真的雨声 / 风扇声,应换采样方案。README 的候选优化里也把「真实采样音色」排在前面,代价是约 300–600KB 体积。
  • 仅简体中文 / English,没有更多本地化。

效果方面 README 写得比较克制:默认粉红噪声,引用的是 Nigg 等 2024 年的元分析(13 项研究、335 名被试,实验室注意力任务平均约 8–10% 的小幅改善),同时明确写临床样本里约三分之一的人反而更差,面板里有「因人而异」提示。棕色噪声目前没有针对 ADHD 的对照试验,插件把它做成选项而非默认。README 没有采纳 40 Hz 双耳节拍,理由是现有对照研究未发现对注意力网络有作用,而且依赖耳机、容易与音频缓冲产生拍频干扰。

离线开发自检可以直接跑:

node tools/verify.cjs

它会在 mock 掉 React / Web Audio / Canvas2D / DOM 的环境里加载 client.js,检查槽位注册、浮层几何、声球与小球画布尺寸、5 个声音和 5 个定时项、文案 key、引擎播放 / 暂停 / 换声 / 定时、Host 注入默认值、立体声缓冲的 RMS 与峰值。改 UI 或音频后跑一遍能拦住大部分回归。

结尾

这个插件的价值在于把「合成 + 播放 + 界面」收进一个包里:五种声音全部现算,零素材零联网,默认值和淡入淡出按 ADHD 的感觉敏感与安全听音来调,反而是少见的诚实度。如果你本来就在 DSH 里长时间跑会话,装一个试试成本很低,卸载也很干净。

目录页:https://www.skillhub.cn/plugins/tommy00748-tech/dsh-adhd-noise
GitHub:https://github.com/tommy00748-tech/dsh-adhd-noise

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye