你画下的不是答案,而是一种可能。线的位置决定声音,线的倾斜改变下一次相遇。
星间回声、雨的阶梯、相遇,各有不同的布局。它们没有写死的完整旋律:节奏来自光点落下、弹起和再次碰到弦的过程。
音高选自同一组五声音阶,让即兴更容易融合。它依然可能密集、稀疏、偶然沉默;你也可以只留下两根线。
二维粒子在重力下运动,通过子步积分与折线段做圆—线碰撞检测。碰撞沿法线反射速度,并损耗能量;重复触发有冷却时间。弦的可见振动使用有阻尼的正弦波,是视觉近似,并非完整弹性体求解。
每次碰撞触发 Karplus–Strong 型延迟反馈拨弦合成。弦高映射到 D 宫五声音阶;碰撞速度影响音量,横坐标影响立体声位置。混响由生成的衰减噪声脉冲构成。没有录音素材,也没有后台 AI 调用。
为保证体验,画线最多保留 32 根,光点最多 24 个,发声有速率限制。它是一件生成式乐器,不是精密声学或刚体物理模拟。
打开完整引擎源码