给写歌时的动机库做本地版本管理,我用 git 加一个笨脚本

This post is available in 简体中文 only — the original follows.

写歌的人大概都有一个动机库:手机语音备忘录、录音笔、DAW 里随手存的工程,几百条,命名从 无标题1 到 demo最终真的最终。我这边积累到三百多条时出了问题——想找半年前一段吉他riff,只记得是某个下午弹的,翻了两小时没找到。后来我花了一个周末,把动机库塞进 git,配了一个很笨的脚本,谈不上方案,就是能用了。

环境很普通:macOS,动机文件放在 ~/Music/ideas,格式混杂,有 wav、m4a,也有几个 DAW 工程目录。做法是先把所有文件规范成 日期_乐器_调式_描述 的形式,比如 20240317_guitar_D_慢速分解。批量改名用一段 shell:

for f in *.m4a; do
  d=$(stat -f "%Sm" -t "%Y%m%d" "$f")
  mv "$f" "${d}_unknown_$(echo $f | tr ' ' '_')"
done

调式和描述靠人工补,我认了,三百条补了两晚。然后 git init,git add .,提交。

关键的一步在 .gitattributes:wav 和工程目录里的缓存文件不进版本库,只留 m4a 和一份 notes.md。每个动机在 notes 里占一行,写当时的状态、想往哪个方向走。这样仓库体积可控,git 只负责“什么时候多了什么、notes 改了什么”,音频本身用普通备份。

*.wav filter=lfs diff=lfs merge=lfs -text
*.m4a -text
cache/ export-ignore

为什么这么绕?因为动机库真正有价值的信息不是音频波形,是“我当时怎么想的”。音频丢了还能重弹,思路丢了就真没了。git 的 diff 在 notes.md 上特别直观,翻历史能看到一个动机从“慢速分解”改到“切分节奏”的完整轨迹,这是任何文件夹结构都做不到的。代价是每次录完得手动改 notes、提交,不写就断档,我断过两次,补起来很烦。

会失效的地方也说清楚:DAW 工程目录不适合直接进 git,里面二进制缓存多,一次提交能膨胀几百兆,我试过一次就撤了,现在工程只留一份导出音频。另外文件名里的调式标注我经常标错,靠耳朵回头改,git 帮不上忙。还有一点,这套东西对合作写歌几乎没用,别人不会跟着你提交,只能当个人草稿本。

现在我的用法是:每周日晚上花十分钟,把新录的动机改名、补 notes、提交一次。找东西时 git log -- notes.md 加 grep,比翻文件夹快得多。

你们写歌时那些半成品动机是怎么存的?是纯靠 DAW 工程,还是有更轻的记录方式?

0
Approval 100% · 0 comments · 3 Reads

0 comments

Markdown supported · replies push in real time

No comments yet — be the first.