# composer **Repository Path**: huang_maowei/composer ## Basic Information - **Project Name**: composer - **Description**: No description available - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-10-25 - **Last Updated**: 2025-10-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 数字简谱编辑器 一个基于Web技术的数字简谱编写软件,支持可视化编辑、实时播放和文件保存功能。采用传统的数字简谱记谱法(1-7数字表示音符)。 ## 功能特性 ### 基本功能 - ✅ **音符编辑**: 支持1-7音符输入,包含休止符(0) - ✅ **节拍控制**: 全音符、二分音符、四分音符、八分音符、十六分音符 - ✅ **调号设置**: C、D、E、F、G、A、B大调 - ✅ **拍号设置**: 2/4、3/4、4/4、3/8、6/8拍 - ✅ **音高调节**: 支持高低八度调节 - ✅ **可视化编辑**: 数字简谱界面,按小节布局,点击添加音符 ### 高级功能 - ✅ **实时播放**: 基于Web Audio API的音符播放 - ✅ **文件操作**: 保存为JSON格式,支持加载 - ✅ **撤销重做**: 完整的编辑历史管理 - ✅ **响应式设计**: 支持移动端和桌面端 ## 使用方法 ### 1. 基本操作 1. 点击简谱区域激活输入 2. 直接按数字键1-7输入音符,0输入休止符 3. 选择节拍类型(影响新输入的音符) 4. 设置调号和拍号 5. 使用左右箭头键移动光标位置 6. 按Delete键删除选中的音符 ### 1.2 光标编辑 - **光标显示**: 激活输入时显示闪烁光标 - **光标移动**: 使用左右箭头键或鼠标点击移动光标 - **插入音符**: 在光标位置插入新音符 - **精确编辑**: 可以在任意位置插入和删除音符 - **鼠标预览**: 鼠标悬停时显示预览光标位置 ### 1.1 键盘快捷键 - **数字键1-7**: 输入对应音符 - **数字键0**: 输入休止符 - **Backspace**: 撤销最后一个音符 - **Delete**: 删除选中的音符 - **空格键**: 播放/停止 - **左右箭头**: 移动光标位置 - **Shift**: 升高八度 - **Ctrl+Shift**: 降低八度 - **+/-键**: 调节节拍(+缩短,-增长) ### 1.3 鼠标操作 - **点击移动光标**: 点击简谱区域任意位置移动光标 - **悬停预览**: 鼠标悬停时显示预览光标位置 - **精确定位**: 可以在音符之间精确定位光标 - **视觉反馈**: 悬停时显示提示文字 ### 2. 音高调节 - 点击"高八度"或"低八度"按钮调节音高 - 按Shift键快速升高八度 - 按Ctrl+Shift键快速降低八度 - 当前音高显示在控制面板中 ### 2.1 节拍调节 - 点击节拍按钮选择节拍类型 - 按+键缩短节拍(十六分音符→八分音符→四分音符→二分音符→全音符) - 按-键增长节拍(全音符→二分音符→四分音符→八分音符→十六分音符) - 节拍变化时显示提示信息 ### 3. 播放功能 - 点击"播放"按钮或按空格键播放整个简谱 - 点击"停止"按钮停止播放 ### 4. 文件操作 - **保存**: 点击"保存"按钮,文件将保存为JSON格式 - **打开**: 点击"打开"按钮,选择之前保存的JSON文件 - **新建**: 点击"新建"按钮清空当前内容 ### 5. 编辑功能 - **撤销**: 撤销上一步操作 - **重做**: 重做被撤销的操作 - **清空**: 清空所有内容 - **光标移动**: 使用左右箭头键或鼠标点击移动光标 - **精确插入**: 在光标位置插入音符 - **删除**: 选中音符后按Delete键删除 - **鼠标预览**: 鼠标悬停时预览光标位置 - **节拍调节**: 使用+/-键快速调节节拍(+缩短,-增长) ## 技术实现 ### 前端技术 - **HTML5**: 语义化标签,数字简谱显示 - **CSS3**: 现代化UI设计,支持响应式布局,Flexbox布局 - **JavaScript ES6+**: 面向对象编程,模块化设计 - **Web Audio API**: 音频播放功能 ### 核心类设计 ```javascript class ScoreEditor { // 简谱编辑器主类 - 音符管理 - 画布绘制 - 音频播放 - 文件操作 - 历史管理 } ``` ### 数据结构 ```javascript // 音符对象 { id: timestamp, note: '1-7' | '0', octave: -2 to 2, rhythm: 'whole' | 'half' | 'quarter' | 'eighth' | 'sixteenth', x: canvasX, y: canvasY, timestamp: Date.now() } ``` ## 浏览器兼容性 - ✅ Chrome 60+ - ✅ Firefox 55+ - ✅ Safari 11+ - ✅ Edge 79+ ## 安装和运行 1. 下载所有文件到本地目录 2. 使用现代浏览器打开 `index.html` 3. 开始使用简谱编辑器 ## 文件结构 ``` composer/ ├── index.html # 主页面 ├── styles.css # 样式文件 ├── script.js # 核心功能 └── README.md # 说明文档 ``` ## 未来扩展 - [ ] 支持更多调号(小调、升降号) - [ ] 添加连音线、装饰音等符号 - [ ] 支持MIDI导出 - [ ] 添加简谱模板 - [ ] 支持多声部编辑 - [ ] 添加简谱打印功能 ## 许可证 MIT License - 详见 LICENSE 文件