Brown Noise Player (2026.01.26)
我很喜欢听噪音,尤其是棕色的噪音,会让我安静下来,所以想做一个在自己的空间中。
现在已经做好了,你可以点击网页顶部的播放按钮倾听,放心,声音很柔和,不会惊吓到你和周围的环境。
关于如何制作,我本来想使用音频文件,但是它太大了,而且会占用存储空间,因此我想到了使用 JS 函数来生成噪音。
大致的原理是首先生成随机的白噪音,这里我设计了双声道。
for (let i = 0; i < bufferSize; i++) {
// 左右分别填充独立的随机数
// 这利用了"双耳去相关性",让声音听起来极其宽广,不聚焦在脑中
leftChannel[i] = Math.random() * 2 - 1;
rightChannel[i] = Math.random() * 2 - 1;
}
棕色噪音的特性是充满低频,因此这里使用了Lowpass Filter(低通滤波器)来滤除高音部分。 当然,这只是模拟了听感,而不是实际的棕色噪音(即频谱每翻一倍,能量下降一半的平方:1/f^2):
const filter = state.ctx.createBiquadFilter();
filter.type = "lowpass";
filter.frequency.value = 220; // 保持 220Hz 的深沉感
为了避免突然的咔哒声音,可以用渐强:
state.gainNode.gain.setValueAtTime(0, state.ctx.currentTime);
state.gainNode.gain.linearRampToValueAtTime(0.3, state.ctx.currentTime + 0.8);
MDX (2026.01.14)
我希望让一篇文章能够拥有更多且灵活的表现形式,因此加入了 mdx 格式。
💡 为什么是 MDX?
MDX 让我能够在文章中直接嵌入 React 或 Astro组件。 我可以在其中展示交互式图表、实时代码演示,而不仅仅是枯燥的代码块。
我将有机会展示更多的内容,类似于:
ℹ️ 新的内容
而不是
<Callout type="info" title="新的内容" />