Eigendrum

Hacker News Top 工具

摘要

Eigendrum 是一款网页工具,允许用户绘制形状,并通过有限元方法求解鼓膜振动的特征值问题,从而听到形状产生的真实鼓声。

暂无内容
查看原文
查看缓存全文

缓存时间: 2026/08/15 03:32

# Eigendrum - 画个形状,把它变成真实的鼓声 来源:https://eigendrum.com/ ## 工作原理 鼓皮边缘固定时,只能以特定形状、在特定频率下振动。这些形状与频率是以下方程的解: −∇²u = λu (在形状内部),u = 0 (在边界上) 每个解 u 代表一种模态(驻波),每个 λ 对应与 √λ 成正比的频率。这是一个特征值问题,几乎任何形状都没有解析公式。因此 Eigendrum 采用数值解法:用三角网格覆盖你画的形状,构建有限元刚度矩阵和质量矩阵,然后求解特征方程 Kφ = λMφ 的最小特征值。 ### 为何可以信赖计算结果 少数形状的频谱能精确写出,每次代码更新都会用它们进行测试。圆形的频率对应贝塞尔函数的零点;矩形的频率为 π²(m²/a² + n²/b²)。求解器能以低于千分之一的误差复现这两种结果。由于协调有限元方法是在受限空间中最小化能量,其结果必然略微高估,绝不会低估。测量误差尽在"数值"之中。 ### 敲击位置的重要性 敲击某点时,每个模态的激发程度与其在该点的振动幅度成正比。敲击某个模态的节点线就无法激发该模态。这并非预先设定,而是将鼓槌投影到各模态上自然得出的结果。 因此,一次敲击永远不会只产生单一模态:它会同时激发所有模态,混合比例取决于鼓槌落点。模态列表旁的规则即为这种混合关系,而标有方框的模态是鼓槌无法到达的。点击某行则会单独播放该模态——这是鼓槌无法实现的,也是聆听特定频率下形状本音的唯一方式。 ### 方程生成的鼓面 除了勾勒轮廓,你还可以用方程描述它。r(t) 表示绕中心一周时的半径变化,因此 1 + 0.3cos(5t) 是一朵五瓣花;参数方程 x(t), y(t) 能描绘极坐标无法表示的闭合曲线,比如肾形线或蛋形。这并非绘图捷径——它能生成手绘无法精确复现的形状(如完美均匀的十一瓣花、介于圆与方形之间的超椭圆部分),并使形状成为可调节的变量:改变一个参数,聆听相应变化。 方程形状以文本形式传播。公式链接内嵌公式文本,便于阅读和重输,而非数百个字符的编码轮廓;在地址栏直接编辑即可生效。过于细窄无法可靠划分网格的形状会被拒绝返回结果,因为薄片状图形仍会输出错误数值。 ### 能否听出鼓的形状? 马克·卡克在1966年提出了这个问题。1992年,卡洛琳·戈登、大卫·韦伯与斯科特·沃尔珀特用两个频谱相同但形状不同的鼓面给出了否定答案。这两个图形已收录在形状列表中,分别命名为"卡克鼓 I 与 II"。它们由相同的七个三角形重新排列而成,具有相同的面积和周长,所有频率完全一致。切换聆听:轮廓明显不同,声音却毫无二致。 ### 建模选择的含义 频率比与模态形状属于物理特性,完全由轮廓决定。绝对音高取决于尺寸与张力,泛音衰减速度取决于材质与空气环境,因此这些参数以滑块控制,而非隐含默认值。求解前所有形状会缩放至相同面积,因此你听到的是形状差异而非尺寸差异。 鼓槌也经过建模:其宽度可调;接触时间固定为几毫秒(真实鼓槌不可能瞬间接触,否则会均匀激发所有模态)。二者共同决定敲击可到达的模态范围,但无法改变模态频率。阻尼采用雷利阻尼模型,损耗随频率平方增加:高频泛音最先衰减,这正是鼓声随余韵变暗的原因。 ### 访问途径与联系方式 Eigendrum 托管于 eigendrum.com (https://eigendrum.com/)。此为官方链接与引用地址;旧版 baselashraf81.github.io/eigendrum 镜像站现已重定向至此。 商务合作请邮件联系 [email protected]。若发现数学或界面问题,建议在代码仓库提交 issue,以便公开修复。 ### 技术说明 无需构建步骤或后端支持:网格划分、求解与音频生成均在用户本地设备运行。网站使用 Vercel Analytics、Google Analytics 与 Google AdSense 支持域名费用与免费服务。绘制的形状存储在地址栏 # 符号之后,浏览器不会将其发送至服务器,且分析工具已配置为不记录该数据。详见隐私声明 (https://eigendrum.com/privacy)。字体采用 Jost*(由 indestructible type* 提供)。参考文献:卡克《能否听出鼓的形状?》(1966);戈登、韦伯与沃尔珀特(1992);德里斯科尔《等谱鼓的本征模态》(1997),其中包含两个卡克鼓的坐标数据。 源代码(含求解器与解析谱验证测试):github.com/BaselAshraf81/eigendrum (https://github.com/BaselAshraf81/eigendrum) 免费使用,无需账户或安装。若想支持项目,或希望无广告运行:ko-fi.com/baselashraf (https://ko-fi.com/baselashraf)

相似文章

Backbeat Forge

Product Hunt

Backbeat Forge 是一款将鼓点音频转换为可编辑乐谱的工具。

如何跟随鼓手

Hacker News Top

一篇技术博文,描述了一个实时系统的开发,该系统通过使用锁相环从鼓点中估计节奏和相位来跟随鼓手,使软件能够适应人类的感觉,而不是强迫鼓手跟随机器。

MCP 2000

Product Hunt

MCP 2000 是一款在浏览器中运行的 AI 鼓机 MPC。