把 11 首自己写的歌按「动机来源」标进 ID3,我用的土办法
写歌几年,硬盘里躺着一批自己录的 demo,命名全靠当天心情:riff3_new.wav、riff3_new_真的final.wav。上个月想回头找「那条从地铁站哼出来的旋律最后落到哪首歌里」,翻了四十分钟没找着。版本是 foobar2000 v2.1,Windows 10,文件大概 400 多个,wav 和 m4a 混着。
做法不新鲜,就是把 ID3 / Vorbis 的 Comment 字段当成一个极简的标签系统用。规则定死:origin=<来源>;key=<调>;bpm=<整数>,来源只允许 hum(哼唱)、riff(琴上弹出来)、borrow(从别处借的动机)、accident(误操作留下的)四种。wav 没有原生标签,先用 ffmpeg 转一层带元数据的 m4a 再写:
ffmpeg -i riff3_new.wav -c:a aac -b:a 192k \
-metadata comment="origin=hum;key=Am;bpm=84" out.m4a
批量补标签时我用 mid3v2(mutagen 带的命令行)读改 m4a 不方便,就退回 Python 写了个二十行的脚本,只干一件事:从文件名里抠出日期,剩下字段留空,等我自己填。
from mutagen.mp4 import MP4
import sys
for p in sys.argv[1:]:
a = MP4(p)
a['\xa9cmt'] = ['origin=;key=;bpm=']
a.save()
为什么这么干:我不想再引入一个数据库或者 Notion 表格。标签跟着文件走,文件复制到哪标签跟到哪,foobar2000 里按 comment HAS origin=hum 一搜就出来了。代价是字段没有校验,手滑打成 origon=hum 就永远搜不到,而且 m4a 的 ©cmt 字段在部分播放器里显示成一坨,不好看。
失效的地方很明确:录音笔直接出的 wav 一旦转码,原始时间戳会丢,靠文件名补日期那步就不可靠;另外 borrow 这个来源我后来发现根本分不清「借别人的和弦走向」和「借自己的旧动机」,语义被我写窄了,现在已经有一半文件我不敢确定该填哪个。
你们给自录 demo 打标签时,是把「动机来源」和「调性」塞进同一个字段,还是拆成两个自定义标签?我卡在这里很久了。


0 条评论
还没有评论,写下第一条。