用 AI 造了个十进位数字五线谱,Hacker News 评论区直接教做人
今天 Hacker News 上有个挺典型的 Show HN,标题叫「XY Music Notation」。作者 jmole 用 codex 搭了一套基于十进位(base-12)的乐谱渲染后端,挂在 music.xy.dev 上。逻辑不复杂:把 12 平均律里的每个音用一个数字表示,音高类 N 落在 0 到 11 之间,用 0,1,2,…,9,X,Y 当记号,C 默认就是 0。然后拿 MuseScore 做后端,自定义音头,把每个音的音高类别直接显示进音符里。作者说这是为了给自己那把 isomorphic 键盘(等构键盘)学的,觉得挺有用,就发出来分享。
从开发者角度看这想法挺自然:既然每个音的高低本质上就是一串数字,那把谱面上的音符也变成数字,学起来就不用记五线谱的键位、调号和临时升降号。isomorphic 键盘本身就是把 12 个键规则排列,不像钢琴那样白键黑键交叉错落,移调的时候手型完全一样,所以「谱面=数字」对这类键盘确实有点道理。
但点开评论区,风向完全不是作者预想的样子。点赞最多的是一条来自 munch-o-man 的回复,说得很直白:「没有任何音乐家会在乎这个。」理由是标准记谱法的存在是有历史的——它是几百年来妥协出来的产物,调和了节奏、可读性、转页效率、音域、力度这些相互冲突的东西。数字记谱最大的问题在于把「音高」这个信息单独拎出来,却把「和弦功能」整个丢掉了。他举的例子很细节:a 小调里做五级和弦大和弦回到一级,要把第七级升半音,G 变成 G#;Ab 和 G# 音高一样,但写 E 大和弦必须写成 E G# B,不能写成 E Ab B。一旦变成数字 9 0 4,这些上下文全没了。音乐家不是「会按的钢琴」,他们是靠着和声结构来理解乐句、处理强弱、决定速度变化的。评论最后补了一句,说这种想法的作者,多半是「能弹乐器、但读谱不好,也不想花几年去练视奏和学和声」的人。
这条评论带出一串同感。throwforfeds(钢琴手)说得更直接:乐谱对他最重要的部分不是「按哪个键、什么时候按」,而是「乐曲里一切是怎么移动的」,这让他能在里面做决定;一个 base-12 的记法很可能连表达这一点都做不到。altruios 用了一个挺狠的词——「拆掉切斯特顿的栅栏」。意思是这套系统暴露出作者根本不了解现有系统(虽然它确实是笔烂账)为什么会是现在这个样子,贸然拆掉栅栏却不知道为什么有这道栅栏。还有人翻出「软件宅搞出自己的音乐记谱法」这个现象,munificent 说自己也差点被这种 idea 勾走。
也不是全盘否定。有人指出这只是 isomorphic 键盘的 tab 谱,像 Lumatone、Jankó 键盘这类乐器上确实有点用;有个评论者说自己用 Dorico 时已经放弃调号,全部改用临时升降号;还有人提到加和弦名字在上面的吉他谱(tab)其实和这个思路相通。作者自己也在对话里澄清:数字不一定是绝对音高,可以直接整体转调,比如把 A 当 0 而不是 C 当 0;C 大调主和弦是 (0-4-7),降 B 小调主和弦是 (X-1-5)。
这件事我最在意的,倒不是记谱法本身该不该改革——这个争论在乐理圈吵了几百年了,Hacker News 上还有热心人贴了 Tantacrul 讲历代「改进记谱法」翻车案例的视频。我更有感觉的是 sublinear 那句带刺的总结:你无意中给「vibe coding」和「把软件当成万能手段」做了一个非常有力的反面论证。
这里有点提醒的意味。写代码的人能用 codex、能几分钟搭出后端渲染、能做出看起来自洽的数字记谱,但代码能力解决不了「你根本不了解这个领域」这件事。评论区里那个钢琴手把话说得很透:对训练有素的音乐家来说,数字是干扰,是本来已经够噪的谱面上又多了一层要翻译的东西。技术工具把「做出来」这件事变得前所未有的便宜,但它没把「做对」变便宜——后者需要的,是切斯特顿那面栅栏在你动手之前,你到底有没有搞清楚它为什么会立在那个位置。
现在这套东西在 Hacker News 上拿了 39 分、30 条评论,作者把移动端显示问题也修掉了。作为个人学习工具,它挺真诚;但要拿来替代五线谱,评论区已经替大家把答案说得明明白白。我更愿意把它当一个「AI 造工具 + 领域外推」的案例存档,下次再用 AI 解决某个行业的「老问题」之前,先想想自己是不是那个拆栅栏的人。
相关链接:
- XY Music Notation:https://music.xy.dev/
- Pitch class:https://en.wikipedia.org/wiki/Pitch_class
- 等构键盘(Jankó keyboard):https://en.wikipedia.org/wiki/Jankó_keyboard