




研究阶段
在三轮探索中,我们与五十多位用户进行了交流。反复出现、高优先级的痛点是:


我们逐渐形成了一种将项目视为五个核心元素组合的思考方式:轨道结构、剪辑内容、自动化调制、全局参数和设备。这五个元素基本上定义了整个制作项目。
原型:als_converter
在这一框架下,我编写了一个小型代码库(Jupyter notebook):一个 ALS-to-JSON 转换器,可以将 Ableton Live 项目转换为机器可读的 JSON。
然后我就可以提取所有元数据:每个剪辑都变成一个包含其 ID、名称、开始与结束时间以及链接数据的 JSON 对象。
该工具使我能够将整个轨道结构(哪条轨道在何时播放)可视化为单一图表,并成为了构建其他一切的基石。

设计
新手指引
打开 ColDAW 编辑器会呈现一个在设计上略像 剪映 (CapCut) 的界面:上传项目,它会在继续前分析项目及其链接的音频资产。
我设计了一个拖拽放入按钮作为起点:悬停在其上会触发令人舒适的渐变效果。
选择项目后,会弹出一个窗口提示用户对其进行初始化。一个机器学习模型会读取该结构,并建议一个结合了该轨道风格和速度 (BPM) 的名称。
根据我们的访谈,这是制作人在命名时最关心的两个属性。一个标签会标记推荐的名称。如果你不满意,可以重新随机生成。

从那里,你可以通过两种方式上传文件:
自动上传,通过算法扫描文件夹并仅检测链接的音频资产(而非文件夹中的每个文件)进行批量上传。
手动上传,用于算法无法自动检测到的任何内容。

检查
完成新手指引后,用户会进入一个用于检查整个项目的界面:过滤资产、播放、下载或删除它们,以及检查结构。选择单个轨道,右侧的检查器就会显示其属性和所有链接的资产。

我是在研究了 DAW(数字音频工作站)之后设计这一点的,DAW 通常包含四个部分:
顶部菜单
左侧的轨道面板
右侧的检查器
中间的内容面板。


我的低保真原型紧密参考了 Logic Pro 和 Ableton Live,然后为轨道和剪辑添加了配色方案(借用自 Logic Pro),从而让布局感觉熟悉,使制作人能够快速上手导航。

在检查视图中,你可以浏览整个项目:过滤资产、播放、下载或删除它们。选择一个轨道,右侧的检查器就会显示其属性及其链接的所有内容。

一个小的微件用于处理缩放:

> 50% 时,剪辑会显示其波形;
<= 50% 时,则不显示。
这可以防止界面因细节过多而显得杂乱。
自动生成的标签变成了顶部的过滤器按钮,检查器会统计你选择的任何内容。你还可以导出为 JSON、p5.js 或 Tone.js,这对于计算音乐非常有用。
版本控制
这是我最自豪的部分。它与本地 DAW 插件紧密配合。安装后,你可以将本地音频资产或整个项目直接导出到浏览器,插件会为你打开 Web 应用程序。
真正的价值在于它允许在本地应用更改并推送,ColDAW 会比较所有内容,创建一个提交,并生成一个新版本,就像 GitHub 一样。你可以分支、回滚、提交并撰写提交信息,以便团队成员确切地了解发生了什么变化。

在后端,系统会检测你是在通过插件还是浏览器工作,将项目解析为符号表示,生成快照,创建提交对象,并将其推送到数据库。

我们向 ACM UIST 提交了这项工作,初审意见反馈使我们处于一个很有希望被录用的区间。
非侵入式 AI
人工智能是当下的主流话题,但在创意工作(尤其是音乐领域)中,它仍然是一个敏感话题。
我们如何将其整合,在团队内部进行了深入的思考和讨论。我确立的原则是我所称的“非侵入式 AI”:限制对创意数据的访问,在后台静默运行,在不解构工作流的前提下辅助其进行。
双机器学习模型
ColDAW 使用两个机器学习模型:

Anthropic SDK,以 Claude 3 Haiku 作为默认模型。
我们自己设计的本地小模型,与我的团队成员 Youhan 共同构建,可在网站加载时立即进行缓冲。
我们使用哪个模型取决于具体的应用场景。
智能命名
为了实现智能命名,我们仅将包含以下内容的文本内容发送至 Anthropic SDK
轨道结构
全局参数
样本名称
自动化调制
设备和路由信息。

由于数据量不大,它会快速返回初始结果。如果用户覆盖了该结果,则以用户的选择为准;否则,保留建议的名称。
自动打标签
对于自动打标签(对音频样本进行标记以便制作人过滤和导航),我们[只将文本内容]发送至 Anthropic SDK,但[将音频保留在我们的本地模型中]。这样,我们绝不会将音频样本上传给第三方;它保持了非侵入性和本地化。

处理时间因样本和项目大小而异,因此我们采用了两步走的方法:快速模型产生一个初始标签,较慢的模型产生一个后台标签,最后将两者调和为最终结果。
项目总结

最后一项功能“项目总结”仍在开发中。其想法是将这两种工作流结合起来:文本输入 Anthropic SDK,音频输入本地模型,以总结项目的演变过程。如果两位团队成员想看看对方修改了什么,那么项目演变过程的快照将非常实用。
作为团队共同构建

除了产品本身,ColDAW 也是一项运营工作。我与一个八人团队协作,维护着一个庞大的 Wiki,内容涵盖我们的工作方式、规划、概念和设计系统,同时在 GitHub 上还有一个开发 Wiki,用于组织代码库并帮助新成员快速融入。

我们还花时间建立社区和寻求合作伙伴,其中很大一部分归结于管理、运营以及随之而来的软实力。


研究阶段
在三轮探索中,我们与五十多位用户进行了交流。反复出现、高优先级的痛点是:


我们逐渐形成了一种将项目视为五个核心元素组合的思考方式:轨道结构、剪辑内容、自动化调制、全局参数和设备。这五个元素基本上定义了整个制作项目。
原型:als_converter
在这一框架下,我编写了一个小型代码库(Jupyter notebook):一个 ALS-to-JSON 转换器,可以将 Ableton Live 项目转换为机器可读的 JSON。
然后我就可以提取所有元数据:每个剪辑都变成一个包含其 ID、名称、开始与结束时间以及链接数据的 JSON 对象。
该工具使我能够将整个轨道结构(哪条轨道在何时播放)可视化为单一图表,并成为了构建其他一切的基石。

设计
新手指引
打开 ColDAW 编辑器会呈现一个在设计上略像 剪映 (CapCut) 的界面:上传项目,它会在继续前分析项目及其链接的音频资产。
我设计了一个拖拽放入按钮作为起点:悬停在其上会触发令人舒适的渐变效果。
选择项目后,会弹出一个窗口提示用户对其进行初始化。一个机器学习模型会读取该结构,并建议一个结合了该轨道风格和速度 (BPM) 的名称。
根据我们的访谈,这是制作人在命名时最关心的两个属性。一个标签会标记推荐的名称。如果你不满意,可以重新随机生成。

从那里,你可以通过两种方式上传文件:
自动上传,通过算法扫描文件夹并仅检测链接的音频资产(而非文件夹中的每个文件)进行批量上传。
手动上传,用于算法无法自动检测到的任何内容。

检查
完成新手指引后,用户会进入一个用于检查整个项目的界面:过滤资产、播放、下载或删除它们,以及检查结构。选择单个轨道,右侧的检查器就会显示其属性和所有链接的资产。

我是在研究了 DAW(数字音频工作站)之后设计这一点的,DAW 通常包含四个部分:
顶部菜单
左侧的轨道面板
右侧的检查器
中间的内容面板。


我的低保真原型紧密参考了 Logic Pro 和 Ableton Live,然后为轨道和剪辑添加了配色方案(借用自 Logic Pro),从而让布局感觉熟悉,使制作人能够快速上手导航。

在检查视图中,你可以浏览整个项目:过滤资产、播放、下载或删除它们。选择一个轨道,右侧的检查器就会显示其属性及其链接的所有内容。

一个小的微件用于处理缩放:

> 50% 时,剪辑会显示其波形;
<= 50% 时,则不显示。
这可以防止界面因细节过多而显得杂乱。
自动生成的标签变成了顶部的过滤器按钮,检查器会统计你选择的任何内容。你还可以导出为 JSON、p5.js 或 Tone.js,这对于计算音乐非常有用。
版本控制
这是我最自豪的部分。它与本地 DAW 插件紧密配合。安装后,你可以将本地音频资产或整个项目直接导出到浏览器,插件会为你打开 Web 应用程序。
真正的价值在于它允许在本地应用更改并推送,ColDAW 会比较所有内容,创建一个提交,并生成一个新版本,就像 GitHub 一样。你可以分支、回滚、提交并撰写提交信息,以便团队成员确切地了解发生了什么变化。

在后端,系统会检测你是在通过插件还是浏览器工作,将项目解析为符号表示,生成快照,创建提交对象,并将其推送到数据库。

我们向 ACM UIST 提交了这项工作,初审意见反馈使我们处于一个很有希望被录用的区间。
非侵入式 AI
人工智能是当下的主流话题,但在创意工作(尤其是音乐领域)中,它仍然是一个敏感话题。
我们如何将其整合,在团队内部进行了深入的思考和讨论。我确立的原则是我所称的“非侵入式 AI”:限制对创意数据的访问,在后台静默运行,在不解构工作流的前提下辅助其进行。
双机器学习模型
ColDAW 使用两个机器学习模型:

Anthropic SDK,以 Claude 3 Haiku 作为默认模型。
我们自己设计的本地小模型,与我的团队成员 Youhan 共同构建,可在网站加载时立即进行缓冲。
我们使用哪个模型取决于具体的应用场景。
智能命名
为了实现智能命名,我们仅将包含以下内容的文本内容发送至 Anthropic SDK
轨道结构
全局参数
样本名称
自动化调制
设备和路由信息。

由于数据量不大,它会快速返回初始结果。如果用户覆盖了该结果,则以用户的选择为准;否则,保留建议的名称。
自动打标签
对于自动打标签(对音频样本进行标记以便制作人过滤和导航),我们[只将文本内容]发送至 Anthropic SDK,但[将音频保留在我们的本地模型中]。这样,我们绝不会将音频样本上传给第三方;它保持了非侵入性和本地化。

处理时间因样本和项目大小而异,因此我们采用了两步走的方法:快速模型产生一个初始标签,较慢的模型产生一个后台标签,最后将两者调和为最终结果。
项目总结

最后一项功能“项目总结”仍在开发中。其想法是将这两种工作流结合起来:文本输入 Anthropic SDK,音频输入本地模型,以总结项目的演变过程。如果两位团队成员想看看对方修改了什么,那么项目演变过程的快照将非常实用。
作为团队共同构建

除了产品本身,ColDAW 也是一项运营工作。我与一个八人团队协作,维护着一个庞大的 Wiki,内容涵盖我们的工作方式、规划、概念和设计系统,同时在 GitHub 上还有一个开发 Wiki,用于组织代码库并帮助新成员快速融入。

我们还花时间建立社区和寻求合作伙伴,其中很大一部分归结于管理、运营以及随之而来的软实力。


