日本語 | 中文 | Español | Français | हिन्दी | Italiano | Português (BR)
Machine Learning the Old Fashioned Way
An MCP server that teaches AI to play piano and guitar — and sing.
120 songs across 12 genres. Six sound engines. Interactive guitar tablature.
A browser cockpit with vocal synthesizer. A practice journal that remembers everything.
______________________________________________________________________
这是什么?
AI学会弹奏的钢琴和吉他。不是合成器,也不是MIDI库——一种教学工具。
法学硕士可以读写文本,但它不能像我们一样体验音乐。没有耳朵,没有手指,没有肌肉记忆。AI Jam Sessions通过赋予模型实际可以使用的感官来缩小这一差距:
- 阅读 --带有深度音乐注释的真实MIDI乐谱。不是手写的近似值——解析、分析和解释。
- 听证会 --通过扬声器播放的六个音频引擎(振荡器钢琴、样本钢琴、声音样本、物理声道、附加声音合成器、物理建模吉他),使房间里的人成为人工智能的耳朵。
- 看见 --一个钢琴卷轴,将播放的内容渲染为SVG,模型可以读回并验证。一个交互式吉他谱编辑器。一个带有可视键盘、双模笔记编辑器和调音实验室的浏览器驾驶舱。
- 铭记 --一份跨课程持续的实践日志,因此学习会随着时间的推移而复合。
- 歌唱 --从歌剧女高音到电子合唱团,有20个预设的声道合成。伴随着声音、轮廓和音节叙事的模式唱歌。
12种流派中的每一种都有一个注释丰富的示例——人工智能首先研究的参考作品,包括历史背景、逐条结构分析、关键时刻、教学目标和表演技巧。其他96首歌曲是原始MIDI,等待AI吸收模式、播放音乐并编写自己的注释。
钢琴卷
钢琴滚动是人工智能看待音乐的方式。它将任何歌曲渲染为SVG——右手为蓝色,左手为珊瑚色,带有节拍网格、动态和测量边界:
Für Elise, measures 1–8 — the E5-D#5 trill in blue, bass accompaniment in coral
两种颜色模式: 手 (蓝色/珊瑚色)或 音高等级 (彩色彩虹——每个C都是红色,每个F#都是青色)。SVG格式意味着模型既可以看到图像,也可以读取标记,以验证音高、节奏和手部独立性。
驾驶舱
一个基于浏览器的乐器和声乐工作室,与MCP服务器一起打开。没有插件,没有DAW——只有一个带钢琴的网页。
- 双模式钢琴滚动 --在乐器模式(彩色音高类颜色)和声乐模式(按元音形状着色的音符:/a//e/i//o/u/)之间切换
- 可视键盘 --C4的两个八度音阶,映射到您的QWERTY键盘。单击或键入。
- 20个语音预设 --15个Kokoro映射的声音(Aoede、Heart、Jessica、Sky、Eric、Fenrir、Liam、Onyx、Alice、Emma、Isabella、George、Lewis,加上合唱团和合成合唱团),4个声道映射的声音,以及一个合成合唱团部分
- 10个仪器预设 --6个服务器端钢琴音色加上合成器、风琴、铃和琴弦
- 纸币检查员 --单击任何音符以编辑速度、元音和呼吸
- 7个调谐系统 --气质平等,只有语调(大/小),毕达哥拉斯式,四分之一逗号意音,韦克迈斯特三世,或自定义分偏移。可调A4参考(392–494 Hz)。
- 调整审计 --频率表、带拍频分析的间隔测试仪和调谐导出/导入
- 分数导入/导出 --将整个分数序列化为JSON并重新加载
- 面向LLM的API —
window.__cockpit暴露exportScore(),importScore(),addNote(),play(),stop(),panic(),setMode(),以及getScore()因此,LLM可以以编程方式编写、排列和播放
学习循环
Read Play See Reflect
┌──────────┐ ┌───────────┐ ┌────────────┐ ┌──────────────┐
│ Study the │ │ Play the │ │ View the │ │ Write what │
│ exemplar │ ──▶ │ song at │ ──▶ │ piano roll │ ──▶ │ you learned │
│ analysis │ │ any speed │ │ to verify │ │ in journal │
└──────────┘ └───────────┘ └────────────┘ └──────┬───────┘
│
▼
┌──────────────┐
│ Next session │
│ picks up here │
└──────────────┘歌曲图书馆
12种流派的120首歌曲,由真实的MIDI文件构建而成。每种流派都有一个深度注释的例子——有历史背景、逐条和声分析、关键时刻、教学目标和表演技巧(包括声乐指导)。这些示例可以作为模板:人工智能研究一个示例,然后注释其余示例。
| 类型 | 示例 | 关键 | 它教什么 |
|---|---|---|---|
| 蓝调 | 《颤栗已逝》(B.B.King) | B小调 | 小调蓝调形式、呼唤与回应,在节拍后演奏 |
| 古典曲 | Für Elise(贝多芬) | 小调 | 回旋曲形式,触法差异,踏板训练 |
| 电影 | 另一个夏天的童谣(Tiersen) | E小调124琶音纹理,动态建筑,没有和谐变化 | |
| 民谣 | 绿袖 | E小调 | 3/4华尔兹感觉,模态混合,文艺复兴时期的声乐风格 |
| 爵士 | 秋叶(Kosma) | G小调 | ii-V-I进行曲,引导音,八弦摇摆,无根发声 |
| 拉丁语 | 伊帕内玛女孩(Jobim) | F大调 | 波萨诺瓦节奏、色彩调制、声音克制 |
| 新时代 | 河流在你身上流淌(伊如玛) | 一个主要的 | I-V-vi-IV识别,流动的琶音,rubato |
| 流行 | 想象(列侬) | C大调 | 琶音伴奏、克制、真诚 |
| 拉格泰姆 | 艺人(乔普林) | C大调 | 奥姆-帕低音,切分音,多声部形式,节奏训练 |
| R&B | 迷信(Stevie Wonder) | Eb小调 | 16音符放克、打击乐键盘、鬼音符 |
| 摇滚 | 你的歌(埃尔顿·约翰) | Eb大调 | 钢琴民谣领唱、倒置、对话式演唱 |
| 灵魂 | 靠我(比尔·威瑟斯) | C大调 | 变调旋律、福音伴奏、呼唤与回应 |
歌曲进展 原始 (仅限MIDI)→ 注释的 → 准备 (完全可以用音乐语言演奏)。人工智能通过研究歌曲并编写注释来推广歌曲 annotate_song.
声音引擎
六个引擎,加上一个同时运行任意两个引擎的分层组合器:
| 发动机 | 类型 | 听起来像什么 |
|---|---|---|
| 振荡器钢琴 | 加性合成 | 具有锤击噪声、不和谐、48音复调、立体声成像的多谐钢琴。零依赖。 |
| 钢琴样本 | WAV播放 | 蝾螈大钢琴——480个样本,16个速度层,88个琴键。真正的东西。 |
| 声乐(示例) | 音高偏移样本 | 用滑音和连音模式保持元音音调。 |
| 声道 | 物理模型 | 粉红长号——通过44个单元数字波导的LF声门波形。四种预设:女高音、女高音、男高音、男低音。 |
| 人声合成 | 加法合成 | 15个Kokoro语音预设,具有共振峰整形、透气性和颤音。确定性(种子RNG)。 |
| 吉他 | 加性合成 | 物理建模弹拨弦——4个预设(钢制无畏、尼龙古典、爵士拱顶、12根弦),8个调音,17个可调参数。 |
| 分层 | Combinator | 封装两个引擎,并将每个MIDI事件分派给这两个引擎——钢琴+合成器、声乐+合成器等。 |
键盘声音
六种可调钢琴音色,每种音色可根据参数(亮度、衰减、琴槌硬度、失谐、立体声宽度等)进行调整:
| 声音 | 角色 |
|---|---|
| 音乐会大 | 丰富、饱满、古典 |
| 直立 | 温暖、亲密、民间 |
| 电钢琴 | 丝滑、爵士、Fender Rhodes风格 |
| Honky Tonk | 不整洁、拉格泰姆、沙龙 |
| 音乐盒 | 水晶般轻盈 |
| 明亮的大 | 切割,当代,流行 |
吉他声
四个吉他声音预设,带有物理建模的琴弦合成,每个预设有17个可调参数(亮度、身体共振、拨弦位置、琴弦阻尼等):
| 声音 | 角色 |
|---|---|
| 钢铁无畏舰 | 明亮、平衡、经典的声学 |
| 尼龙经典 | 温暖、柔软、圆润 |
| 爵士拱门 | 圆润、木质、干净 |
| 十二弦 | 闪烁,双音,合唱般 |
实践杂志
每次会话后,服务器都会捕获发生的事情——哪首歌、速度、测量次数、持续时间。人工智能添加了自己的反思:它注意到了什么,识别出了什么模式,接下来要尝试什么。
---
### 14:32 — Autumn Leaves
**jazz** | intermediate | G minor | 69 BPM × 0.7 | 32/32 measures | 45s
The ii-V-I in bars 5-8 (Cm7-F7-BbMaj7) is the same gravity as the V-i
in The Thrill Is Gone, just in major. Blues and jazz share more than the
genre labels suggest.
Next: try at full speed. Compare the Ipanema bridge modulation with this.
---每天一个降价文件,存储在 ~/.ai-jam-sessions/journal/。人类可读,仅可附加。下一节课,人工智能会阅读它的日记,并从它停止的地方继续。
安装
npm install -g ai-jam-sessions需要 Node.js 18+。没有MIDI驱动程序,没有虚拟端口,没有外部软件。
克劳德桌面/克劳德代码
{
"mcpServers": {
"ai_jam_sessions": {
"command": "npx",
"args": ["-y", "-p", "ai-jam-sessions", "ai-jam-sessions-mcp"]
}
}
}MCP工具
41个工具和3个提示模板,分为六类:
学习
| 工具 | 它做什么 |
|---|---|
list_songs | 按流派、难度或关键字浏览 |
song_info | 完整的音乐分析——结构、关键时刻、教学目标、风格技巧 |
registry_stats | 全库统计数据:歌曲总数、流派、难度 |
list_measures | 每个测量的注释、动态和教学注释 |
teaching_note | 深入探讨单一指标——指法、动力学、背景 |
suggest_song | 根据流派、难度和你玩过的游戏推荐 |
practice_setup | 歌曲的推荐速度、模式、语音设置和CLI命令 |
compare_songs | 跨体裁模式识别——关键关系、音高/音程相似性、共享形式、教学联系 |
annotation_progress | 跟踪整个库的注释质量——分数、成绩和改进建议 |
server_info | 服务器版本、库统计信息、引擎列表、活动会话 |
播放
| 工具 | 它做什么 |
|---|---|
play_song | 通过扬声器播放——库歌曲或原始.mid文件。任何发动机、速度、模式、测量范围。 |
stop_playback | 停下 |
pause_playback | 暂停或继续 |
set_speed | 改变播放速度(0.1×–4.0×) |
playback_status | 实时快照:当前测量值、节奏、速度、键盘声音、状态 |
view_piano_roll | 渲染为SVG(手绘色或音高级彩色彩虹) |
score_performance | 为MIDI演奏配乐——音高准确性、时间、完整性,并提供分级反馈 |
mute_hand | 练习时静音或取消静音左手/右手——一次隔离一只手 |
preview_teaching_cues | 播放前查看所有教学笔记和关键时刻 |
唱
| 工具 | 它做什么 |
|---|---|
sing_along | 可唱文本——记下名字、歌词、轮廓或音节。有或没有钢琴伴奏。 |
ai_jam_sessions | 生成果酱简报——和弦进行、旋律大纲和风格提示,以供重新解释 |
吉他
| 工具 | 它做什么 |
|---|---|
view_guitar_tab | 将交互式吉他曲谱渲染为HTML——点击编辑、播放光标、键盘快捷键 |
list_guitar_voices | 可用的吉他声音预设 |
list_guitar_tunings | 可用的吉他调音系统(标准、drop-D、open G、DADGAD等) |
tune_guitar | 调整任何吉他音色的任何参数。在会议期间持续存在。 |
get_guitar_config | 当前吉他音色配置与出厂默认值 |
reset_guitar | 出厂重置吉他音色 |
构建
| 工具 | 它做什么 |
|---|---|
add_song | 将新歌添加为JSON格式 |
import_midi | 导入包含元数据的.mid文件 |
annotate_song | 为一首原始歌曲编写音乐语言,并将其推广到准备就绪 |
save_practice_note | 带有自动捕获会话数据的日记条目 |
read_practice_journal | 加载最近的条目以获取上下文 |
list_keyboards | 可用键盘声音 |
tune_keyboard | 调整任何键盘语音的任何参数。在会议期间持续存在。 |
get_keyboard_config | 当前配置与出厂默认值 |
reset_keyboard | 键盘语音恢复出厂设置 |
score_annotation | 5个维度的分数注释质量——完整性、深度、特异性、教学价值、词汇 |
validate_song_entry | 在添加之前,根据模式验证歌曲JSON |
transpose_song | 用半音向上或向下转换歌曲——新的音调,新的音符 |
list_sections | 查看歌曲的结构部分(引言、韵文、合唱等) |
add_section | 为歌曲添加分段标记以进行结构导航 |
MCP提示
结构化教学工作流程的三个提示模板:
| 提示 | 它做什么 |
|---|---|
annotate_song | 引导注释工作流程——学习一个样本,为一首原始歌曲编写音乐语言 |
practice_plan | 根据类型、难度和目标制定结构化的练习计划 |
performance_review | 回顾已完成的会议——哪些进展顺利,下一步要关注什么 |
命令行界面
ai-jam-sessions list [--genre ] [--difficulty ]
ai-jam-sessions play [--speed ] [--mode ] [--engine
]
ai-jam-sessions sing [--with-piano] [--engine ]
ai-jam-sessions view [--measures ] [--out ]
ai-jam-sessions view-guitar [--measures ] [--tuning ]
ai-jam-sessions info
ai-jam-sessions tune [--param value ...] [--reset] [--show]
ai-jam-sessions tune-guitar [--param value ...] [--reset] [--show]
ai-jam-sessions keyboards
ai-jam-sessions guitars
ai-jam-sessions stats
ai-jam-sessions library
ai-jam-sessions ports
ai-jam-sessions help
ai-jam-sessions --version状态
v1.4.0。六个声音引擎,41个MCP工具,3个提示模板,12个流派的120首歌曲,带有深度注释的示例。歌曲换位、分段标记、单手静音/独奏,用于集中练习。交互式吉他谱编辑器。浏览器驾驶舱配有20个人声预设、10个乐器人声、7个调谐系统和一个面向LLM的API乐谱。两种颜色模式下的钢琴滚动可视化。坚持学习的练习日记。跨服务器重启的会话状态持久性。MIDI演奏伴随着评分、注释质量评估和跨流派模式识别。MIDI就在那里——库随着AI的学习而增长。
安全与隐私
触摸的数据: 歌曲库(JSON+MIDI),用户歌曲目录(~/.ai-jam-sessions/songs/)吉他调音配置、练习日记条目、本地音频输出设备。
未接触的数据: 没有云API,没有用户凭据,没有浏览数据,没有用户歌曲目录外的系统文件。未收集或发送遥测数据。
权限: MCP服务器仅使用stdio传输(无HTTP)。CLI访问本地文件系统和音频设备。看 安全.md 对于完整的政策。
许可证
麻省理工学院
