直接告诉我你想做什么:
你: 记录键盘 → 启动交互式录制
你: 记录30秒键盘 → 录制30秒并保存
你: 播放简谱 → 播放最近的记录
你: 播放文件 xxx.txt → 播放指定文件
你: 转换文本 hello → 直接转换文本
你: 用100BPM播放 → 指定播放速度
# 交互式输入时长
python3 scripts/interactive_recorder.py
# 或直接指定时长
python3 scripts/interactive_recorder.py 30
节奏感知模式: 录制器会记录按键之间的时间间隔,自动转换为音符时值(基于BPM 120):
音符:时值,如 1:2(Do 2拍)、0:1.5(休止1.5拍)界面预览:
============================================================
🎹 键盘转简谱 - 交互式录制工具 (节奏感知)
============================================================
请输入录制时长(秒,默认60): 30
⏱️ 剩余: 28.3s | 音符: 15 | 最新: l→1
特点:
python3 scripts/timed_keyboard_recorder.py [时长秒] [输出文件]
python3 scripts/keyboard_to_jianpu.py
按ESC结束,Backspace删除
# 默认120BPM + 录制时的音色
python3 scripts/play.py jianpu_recording.txt
# 指定播放速度(BPM)
python3 scripts/play.py jianpu_recording.txt 90
# 指定音色
python3 scripts/play.py jianpu_recording.txt guitar
# BPM + 音色(顺序任意)
python3 scripts/play.py jianpu_recording.txt 90 violin
python3 scripts/play.py jianpu_recording.txt violin 90
速度参考: 慢板~60 | 行板~80 | 中板~120 | 快板~160 | 急板~200
特点:
内置经典曲目,可直接播放体验:
# 列出所有预设曲目
python3 scripts/generate_presets.py list
# 生成所有预设的recording文件
python3 scripts/generate_presets.py
# 生成指定曲目
python3 scripts/generate_presets.py conundrum
# 播放预设曲目
python3 scripts/play.py presets/preset_conundrum.txt violin 75
python3 scripts/play.py presets/preset_twilight.txt guitar 108
当前预设曲目:
| 曲目 | 作者 | 乐器 | BPM |
|---|---|---|---|
| ------ | ------ | ------ | ----- |
| (暂无预设,可通过 generate_presets.py 添加) | - | - | - |
# 交互式输入
python3 scripts/text_to_jianpu.py
# 直接转换
python3 scripts/text_to_jianpu.py "hello world"
| 字母 | 简谱 | 音高 | 说明 |
|---|---|---|---|
| ------ | ------ | ------ | ------ |
| l | 1 | Do | 中音Do |
| u | 2 | Re | 中音Re |
| i | 3 | Mi | 中音Mi |
| a | 4+ | Fa | 高音Fa |
| t | 5 | Sol | 中音Sol |
| n | 6 | La | 中音La |
| w | 7 | Si | 中音Si |
| 空格 | 0 | - | 休止符 |
l → 1 (中音Do,一拍)L → 1_ (中音Do,半拍)字母键 (a-z):
| 按键 | 简谱 | 按键 | 简谱 | 按键 | 简谱 |
|---|---|---|---|---|---|
| ------ | ------ | ------ | ------ | ------ | ------ |
| a | 4+ | j | 5+ | s | 3- |
| b | 1- | k | 1+ | t | 5 |
| c | 3+ | l | 1 | u | 2 |
| d | 4 | m | 2+ | v | 2 |
| e | 4 | n | 6 | w | 7 |
| f | 7- | o | 7+ | x | 7 |
| g | 5- | p | 2- | y | 4 |
| h | 6+ | q | 4- | z | 6 |
| i | 3 | r | 6- | 空格 | 0 |
数字键 (0-9):
| 按键 | 简谱 | 按键 | 简谱 | 按键 | 简谱 |
|---|---|---|---|---|---|
| ------ | ------ | ------ | ------ | ------ | ------ |
| 0 | 7+ | 4 | 1 | 8 | 4+ |
| 1 | 4- | 5 | 1 | 9 | 3- |
| 2 | 1- | 6 | 5- | ||
| 3 | 2 | 7 | 4- |
pip install pynput
pip install mido pygame
pip install pydub
# 如需导出MP3格式,还需安装ffmpeg:
# macOS: brew install ffmpeg
# Linux: sudo apt install ffmpeg
# 注: 无ffmpeg时会自动降级为WAV格式导出
简谱记录 - 2026-04-07 19:17:03
============================================================
录制时长: 20秒
原始输入: mmaspwnlNwome...
简谱输出:
2+ 2+ 4+ 3- 2- 7 6 1 1_ 6 6_ 7...
音符数量: 43
============================================================
pynput.keyboard 监听键盘mido 生成MIDI文件pygame.mixer 播放音频scripts/
├── interactive_recorder.py # 交互式录制(推荐)
├── timed_keyboard_recorder.py # 定时录制
├── keyboard_to_jianpu.py # 实时监听
├── jianpu_player.py # 简谱播放器
├── play.py # 快速播放脚本
├── generate_presets.py # 预设曲目生成器
└── text_to_jianpu.py # 文本转换
presets/ # 预设曲目recording文件
├── preset_conundrum.txt # Conundrum (小提琴)
└── preset_twilight.txt # 黄昏 (吉他)
1. 录制
你: 记录20秒键盘
我: [录制并保存文件]
2. 播放
你: 播放简谱
我: [播放音乐并生成MIDI]
3. 编辑
打开生成的MIDI文件进行编辑
Q: macOS提示权限错误?
A: 系统设置 → 隐私与安全性 → 辅助功能 → 添加终端/Python
Q: 播放没有声音?
A: 确保安装了音频库: pip install mido pygame
Q: 如何调整播放速度?
A: 指定BPM参数: python3 scripts/play.py file.txt 100
现在就开始你的音乐创作之旅!
你: 记录键盘
或者:
你: 转换文本 lllttt
共 1 个版本