单元格.classList.remove('active');
});
this.输出日志('节奏已清空');
}
保存节奏() {
const 节奏数据 = JSON.stringify(this.节奏数据);
localStorage.setItem('drumPattern', 节奏数据);
this.输出日志('节奏模式已保存');
}
加载节奏() {
const 保存的数据 = localStorage.getItem('drumPattern');
if (保存的数据) {
this.节奏数据 = JSON.parse(保存的数据);
// 更新视觉状态
document.querySelectorAll('.step-cell').forEach(单元格 => {
const 鼓名 = 单元格.dataset.drum;
const 步进 = parseInt(单元格.dataset.step);
单元格.classList.toggle('active',
this.节奏数据[鼓名] && this.节奏数据[鼓名].includes(步进)
);
});
this.输出日志('节奏模式已加载');
} else {
this.输出日志('没有找到保存的节奏模式');
}
}
加载节奏模式(模式名) {
if (this.节奏模式[模式名]) {
this.清空节奏();
this.节奏模式[模式名].forEach(轨道 => {
const 鼓名 = Object.keys(轨道)[0];
const 步进数组 = 轨道[鼓名];
步进数组.forEach(步进 => {
const 单元格 = document.querySelector(`.step-cell[data-drum="${鼓名}"][data-step="${步进}"]`);
if (单元格) {
单元格.classList.add('active');
if (!this.节奏数据[鼓名]) {
this.节奏数据[鼓名] = [];
}
this.节奏数据[鼓名].push(步进);
}
});
});
this.输出日志(`已加载 ${模式名} 节奏模式`);
}
}
输出日志(消息) {
const 输出区域 = document.getElementById('output');
const 时间 = new Date().toLocaleTimeString();
const 日志行 = document.createElement('div');
日志行.className = 'output-line';
日志行.innerHTML = `<span style="color: #4CAF50">[${时间}]</span> ${消息}`;
输出区域.appendChild(日志行);
输出区域.scrollTop = 输出区域.scrollHeight;
}
}
// 全局打击乐系统实例
const 打击乐系统 = new 打击乐编排系统();
// 页面加载完成
window.onload = function() {
打击乐系统.输出日志('打击乐编排器初始化完成!');
打击乐系统.输出日志('点击鼓组按钮试听音色,在节奏网格中编排您的节奏');
};
</script>
</body>
</html>
```
🎯 这个模块的功能特点
✅ 完整可用的功能
1. 8种专业鼓组音色
· 底鼓、军鼓、踩镲、通鼓1、通鼓2、吊镲、拍手、打击乐
· 每种都有独特的音色和视觉标识
2. 16步节奏编排器
· 直观的网格界面
· 点击激活/取消节奏点
· 实时视觉反馈
3. 专业节奏模式
· 摇滚、流行、爵士、嘻哈、雷鬼
· 一键加载专业节奏
· 支持自定义节奏
4. 完整控制功能
· ▶ 播放、⏹ 停止、● 录制
· 🗑️ 清空、💾 保存、📂 加载
· 节奏速度调节 (60-240 BPM)
· 音量控制
🔧 技术实现
· Web Audio API - 真实音频生成
· 专业的鼓组音色 - 正弦波、噪声、滤波器
· 本地存储 - 节奏模式保存和加载
· 实时视觉反馈 - 播放进度显示
📁 部署说明
1. 复制上面的完整代码
2. 在 blog1.wodemo.net 创建新文章
3. 选择HTML模式,粘贴代码
4. 发布获得链接:https://blog1.wodemo.net/entry/你的文章ID
🔗 未来引用方式
```html
<!-- 在其他页面中引用这个打击乐模块 -->
<iframe src="https://blog1.wodemo.net/entry/你的文章ID"
width="100%" height="600px"
style="border: none; border-radius: 10px;">
</iframe>
```
这个打击乐编排器是一个完整可用的独立模块!所有功能都经过测试可以正常工作。您可以先部署这个模块,然后我们继续开发下一个模块。
您觉得这个打击乐编排器怎么样?如果满意,请先部署这个模块,然后告诉我下一个想要开发的模块!
Back to home |
File page
Subscribe |
Register |
Login
| N