0. 先和大家打个招呼 
大家好,我是一名胡彦斌的歌迷,也是一个很喜欢音乐、却暂时没有精通任何乐器的普通人。
虽然不会弹琴、不会编曲,但我一直希望音乐不只是耳机里的“播放内容”,而是能够和自己的动作、情绪产生互动:
手抬高一点,声音就明亮起来;动作更有力量,节奏就随之变强;即使没有乐理基础,也能真实地参与一段音乐的形成。
AirMaestro 是我用 TRAE 一点点“聊”出来的。
我负责把脑海中的画面用大白话描述出来,例如:
“左手控制情绪,右手控制节奏。手一动,音乐就跟着变化。”
TRAE 则像一位既懂技术、也愿意陪我反复试错的搭档,帮我把这个想法拆成手势识别、程序化音乐生成、歌曲分析、交互界面、作品保存等模块,再一步步变成可以实际体验的产品。
整个过程中,我更像是在“创作”,而不是在完成一项传统的编程作业。
1. 产品简介:从手势 Demo 到完整音乐创作产品
AirMaestro 是什么?
AirMaestro 是一个纯前端 Web 音乐创作应用。
用户打开浏览器、授权摄像头后,就可以通过双手动作实时控制音乐;也可以上传一首本地歌曲,让系统分析它的节奏、调性和和弦,再通过手势进行二次创作。
无需安装软件、无需准备乐器,也不要求用户掌握乐理或专业编曲工具。
一句话概括:
AirMaestro 把身体动作和已有音乐,变成了可以继续创作的音乐输入。
面向谁?
AirMaestro 主要面向:
- 想体验即兴音乐创作、但不会乐器和编曲软件的普通用户;
- 喜欢音乐,希望获得更强参与感和互动感的用户;
- 需要现场氛围互动的活动、展览、课堂及品牌空间;
- 对手势交互、程序化音乐和 Web Audio 技术感兴趣的开发者。
2. 完整产品功能与使用路径
两种创作入口
打开 AirMaestro 后,用户可以选择两种创作方式。
① 空气创作
直接通过摄像头识别双手动作,在空气中实时生成和控制音乐。
适合第一次体验产品、自由即兴创作,以及活动现场的互动表演。
② 音乐重混
上传一首本地歌曲,由 AirMaestro 自动分析 BPM、调性、节拍和基础和弦,再用手势为原曲添加新的节奏、Bass 和编曲变化。
导入的音乐默认只在当前设备中处理,不会主动上传到服务器。
完整使用流程
AirMaestro 的完整体验路径为:
- 选择“空气创作”或“音乐重混”;
- 检查摄像头、麦克风和浏览器录音能力;
- 选择摄像头模式或无摄像头体验模式;
- 首次使用时完成四步手势校准;
- 进入创作台,用双手控制音乐;
- 切换不同创作模式;
- 录制并导出生成音轨;
- 完成创作并命名作品;
- 在“我的作品”中继续编辑、重命名或删除作品。
整个流程形成了“进入—创作—完成—保存—再次编辑”的产品闭环。
3. 四种音乐创作模式
① 随机模式:双手实时生成音乐
随机模式保留了初赛 Demo 最核心的“双手分工”设计。
左手负责塑造音乐情绪:
- 手掌开合控制音量;
- 上下位置控制音色明暗;
- 左右移动切换乐器;
- 离镜头远近控制混响空间感。
右手负责指挥音乐节奏:
- 挥动速度控制 BPM;
- 快速向下点击出重拍;
- 握拳加强重音;
- 大幅横摆切换乐句和段落。
音乐并不是完全随机产生的噪音,而是在预设调式、和弦进行和节奏结构中进行种子化生成,尽量保证每次即兴都具有基本的音乐性。
② 风格模式:先选择音乐世界,再进行指挥
风格模式内置六种音乐风格:
- 流行;
- 爵士;
- 电子;
- 国风;
- 氛围;
- 摇滚。
每种风格都有独立的调式、和弦进行、速度范围、节奏结构、推荐乐器和混响参数。
用户的手势不会简单地“更换一首背景音乐”,而是在当前风格的音乐规则内实时影响演奏结果。
③ 多轨模式:双手分别控制不同声部
在多轨模式中,左右手可以分别控制不同音色和声部。
双手之间的距离还会影响左右声场宽度,让手势不再只是单一参数控制器,而是成为一个具有空间感的多轨演奏界面。
④ 音乐重混:上传歌曲,再用手势进行二创
音乐重混是复赛版新增的核心功能。
用户上传本地音频后,AirMaestro 会自动分析:
- 歌曲 BPM;
- 调性及大小调;
- 第一拍位置;
- 节拍网格;
- 基础和弦时间线;
- 各项分析结果的置信度。
分析完成后,用户可以手动校正 BPM、调性等信息,再通过手势控制:
- 编曲能量;
- 声部密度;
- 鼓组变化;
- Bass 进入与退出;
- A/B 段落切换;
- 重音与节奏层次。
当系统对调性或和弦的判断置信度不足时,会主动进入安全降级模式,只添加风险较低的节奏声部,避免错误和弦破坏原曲听感。
4. 相比初赛 Demo 的升级
如果说初赛版是在验证:
手势能不能实时控制音乐?
那么复赛版重点解决的问题是:
用户能不能从进入产品开始,真正完成并留下一个属于自己的音乐作品?
本次主要升级包括:
- 从单一手势 Demo 升级为两个创作入口;
- 从一种基础玩法扩展为五种创作模式;
- 新增本地歌曲上传与自动音乐分析;
- 新增手势驱动的歌曲二次创作;
- 新增设备能力检测和权限说明;
- 新增四步手势校准与首次使用引导;
- 新增生成音轨录制与 WebM/Opus 导出;
- 新增本地作品库、自动保存和恢复;
- 支持作品重命名、删除、完成和继续编辑;
- 摄像头不可用时仍可进入无摄像头体验模式;
- MediaPipe 和 WebAudioFont 增加本地资源与降级方案;
- 增加多组自动化验证脚本,降低功能回归风险。
产品不再只是“能发出声音”,而是拥有了入口、引导、创作、保存和再次编辑的完整使用路径。
5. 产品演示视频
演示视频:
推荐评审体验路径:
- 进入“空气创作”;
- 没有摄像头时选择“无摄像头体验”;
- 尝试左手渐强、上下改变音色;
- 用右手向下打出重拍,再横摆切换乐句;
- 切换流行、国风或电子风格;
- 进入“音乐重混”,上传一段本地音乐;
- 查看 BPM、调性和和弦分析结果;
- 用手势改变编曲能量和段落;
- 完成创作并进入“我的作品”。
6. 产品创作历程
灵感从“指挥家”开始
最初的灵感来自交响乐指挥家。
指挥家不需要亲自演奏每一件乐器,却可以只依靠双手,让整支乐队产生力度、速度、情绪和色彩的变化。
我一直在想:
能不能把这种“用身体直接塑造音乐”的体验压缩进一个浏览器,让普通人也能当一次指挥家?
初赛阶段,我完成了最核心的可行性验证:
MediaPipe Hands 获取双手 21 个关键点,手势参数映射到 Web Audio 音乐引擎,再由 Tonal 乐理规则和种子化算法实时生成音乐。
但完成初赛 Demo 后,我发现它仍然存在三个明显问题:
- 第一次进入的用户不知道应该怎样移动双手;
- 玩法集中在一种生成方式,持续体验空间有限;
- 音乐停止后什么都没有留下,缺少“作品感”。
因此,复赛阶段的目标从“让手势发出声音”,变成了“让用户完成一次音乐创作”。
关键问题一:音乐实时变化,怎样避免失控?
如果把每一帧手势直接映射为音乐参数,手部的轻微抖动就会造成音量、速度和音色不断跳变。
在 TRAE 的帮助下,我为手势数据加入了:
- 平滑处理;
- 动作阈值;
- 触发冷却时间;
- 稳定帧判断;
- 连续参数与离散动作分离;
- 异常数值防御。
音乐端则通过统一的 Transport 节拍调度器和 Arrangement Engine 编曲引擎管理鼓组、Bass、和弦与旋律。
段落变化会尽量落在小节边界,而不是在任意时刻突然切换,从而让音乐响应手势的同时仍然保持基本秩序。
关键问题二:怎样让浏览器“听懂”一首歌曲?
音乐重混是复赛阶段技术难度最高的部分。
用户上传的歌曲并没有现成的 BPM、调性和和弦数据,因此 AirMaestro 需要先自行分析它。
最终采用的方案是:
- 使用 onset envelope 和自相关估计 BPM;
- 使用 chroma 特征匹配大小调模板;
- 根据节拍网格和三和弦模板生成和弦时间线;
- 使用置信度判断分析结果是否可靠;
- 将密集计算放入 Web Worker,避免阻塞页面;
- 保留人工校正入口;
- 对低置信度结果进行安全降级。
真正棘手的不只是“完成分析”,而是让原曲播放、节拍调度和新增声部始终保持同步。
为此,我和 TRAE 反复调整第一拍偏移、播放位置换算、节拍吸附和小节边界切换,才让手势生成的鼓点与 Bass 能够真正融入原曲。
关键问题三:怎样让 Demo 具有产品完成度?
复赛后期,我把很多精力放在第一次使用体验和异常场景上:
- 开始前检查设备能力;
- 清楚说明不同入口需要的权限;
- 第一次使用摄像头时提供手势校准;
- 权限被拒绝时提供解决提示;
- 摄像头不可用时保留无摄像头体验;
- 作品状态和导入音频保存到 IndexedDB;
- 保存失败时提供重试;
- 模式切换时清理残留录音、定时器和音频资源;
- 支持重新打开作品并恢复创作状态。
这些功能不一定像新模式那样显眼,但它们让 AirMaestro 从“偶尔能跑起来的 Demo”,逐渐变成了一个可以完整体验的产品。
7. TRAE 实践过程
我使用 TRAE 的方式不是一次性输入一份完整需求,而是把产品拆成许多可以逐步验证的问题:
- 先描述用户应该看到和感受到什么;
- 请 TRAE 帮我拆分模块、状态和异常路径;
- 每完成一个阶段就在浏览器里实际运行;
- 把“听起来不对”“操作不顺”“切换后有残音”等真实体验反馈给它;
- 让 TRAE 根据问题继续定位和修改;
- 最后补充自动化验证,防止修改一个功能后破坏其他模式。
阶段一:从单一 Demo 到多模式架构
我与 TRAE 一起梳理了统一的 ModeManager、模式生命周期、音乐上下文和节拍调度器。
随机、风格、多轨、重混和 Looper 模式能够共享底层音频能力,同时保持各自独立。
阶段二:攻克歌曲分析与重混同步
这一阶段主要完成:
- 音乐文件上传;
- BPM、调性和和弦分析;
- Web Worker 后台计算;
- 置信度降级;
- 原曲与新增声部同步;
- A/B 段在小节边界切换。
有时我只能描述听感,TRAE 会帮助我把这些听感翻译成时间轴偏移、节拍同步或模式生命周期问题,再逐步定位和修复。
阶段三:补齐引导、保存和作品闭环
最后一阶段从用户视角重新检查产品:
- 第一次进入是否知道怎样操作?
- 没有摄像头时能否继续体验?
- 权限失败后是否有明确提示?
- 创作结果能否保存?
- 退出后能否再次打开?
- 切换模式时是否会留下声音或录音资源?
在 TRAE 的协助下,我补齐了设备预检、手势校准、自动保存、作品库、完成页和项目恢复机制。
阶段四:让 TRAE 帮我验证,而不只是帮我写
随着功能越来越多,只靠手动点击已经很难保证没有回归。
因此,我继续让 TRAE 编写针对以下流程的验证脚本:
- 手势映射和异常数值防御;
- 重混节拍同步;
- 重混模式进入、退出和资源清理;
- 设备预检和新手引导;
- 项目自动保存与恢复;
- 作品库完整操作路径;
- 音频导出与完整产品构建。
.350109971003434:6365eced0bb48bffac40d88e56576b4b_6a670d532016e8efa9efccad.6a6717d32016e8efa9efcd56.6a6717d3757cb98d5ea453a4:Trae CN.T(2026/7/27 16:33:23)
.350109971003434:c83b2b06af36790cb1179948a576f629_6a630fbfd897047c066e9c4c.6a672eb72016e8efa9efced1.6a672eb5757cb98d5ea453a9:Trae CN.T(2026/7/27 18:11:03)
.350109971003434:e843dff13825ddb51c4b4148fcf10ed9_6a630fbfd897047c066e9c4c.6a66d0452016e8efa9efcc7c.6a66d043757cb98d5ea453a1:Trae CN.T(2026/7/27 11:28:05)
.350109971003434:94b3b6278a1688f31d18823e96d22b80_6a6b2ae02016e8efa9efd465.6a6b2fae2016e8efa9efd4ce.6a6b2fae757cb98d5ea453b7:Trae CN.T(2026/7/30 19:04:14)
8. 技术方案
AirMaestro 采用纯前端架构,主要技术包括:
- Vite + 原生 JavaScript ES Modules;
- MediaPipe Hands:双手 21 个关键点实时追踪;
- Web Audio API:音频节点、动态控制、混响、录音与播放;
- WebAudioFont:真实乐器采样音色;
- Tonal.js:音阶、和弦和音高处理;
- Transport:统一节拍和音频事件调度;
- Arrangement Engine:鼓组、Bass、和弦和旋律编排;
- Web Worker:后台执行歌曲 BPM、调性和和弦分析;
- IndexedDB:项目状态与导入音频的本地持久化;
- Canvas:手势拖尾、节拍脉冲和环境光效;
- MediaRecorder:生成音轨录制与导出。
整个音乐生成和分析过程主要在浏览器本地完成,既降低了服务端成本,也减少了用户音频和摄像头数据离开设备的需要。
9. 应用价值
个人音乐娱乐
让没有乐器和编曲基础的人,也能通过身体动作体验音乐创作,而不只是被动选择和播放音乐。
展览与品牌互动
AirMaestro 可以进一步应用于商场、展览、发布会和品牌活动,作为低门槛、强反馈的体感音乐装置。
音乐课堂
可以帮助学生直观理解速度、力度、音色、混响和段落等抽象音乐概念。
舞台与现场氛围
表演者可以使用更夸张的身体动作控制音乐变化,让观众直接看到“动作”和“声音”之间的关系。
无障碍创作探索
传统乐器往往需要较长时间训练。手势交互可以为不便使用传统键盘、弦乐器或复杂软件界面的用户,提供一种新的音乐表达可能。
10. 后续规划
后续我希望继续完善:
- 手机端手势识别和横屏体验;
- 更准确的复杂歌曲结构分析;
- WAV、MIDI 和分轨导出;
- 用户自定义手势映射;
- 支持导入更多音频格式;
- 多人协作和远程合奏;
- 更多国风乐器与音乐风格;
- 面向展览和活动场景的全屏演出模式。
AirMaestro 想做的并不是替代传统乐器或专业编曲软件,而是提供一个新的音乐入口:
在这里,会不会弹奏不是起点。
只要愿意动一动双手,就已经开始创作了。







