## 2.2.0 版本
1. 新增XML 文件中节奏(BPM)的设置
2. 新增伴奏音量比主奏略低的功能 (原播放 jar 包从 maven 依赖中移除,使用自己编译的扩展包[jlayer-extend-1.0.2.0-SNAPSHOT.jar],在 lib 目录下,以支持音量调整)
3. 新增生成 XML 的功能 (具体步骤见下面的教程)
4. 上传了一些歌曲的 xml 文件
5. 优化部分代码逻辑
6. 修复了一些已知问题
### 生成 XML 文件步骤
1. 在网上搜索有关歌曲的 midi 简谱,比如midishow网站(https://www.midishow.com/)
2. 使用 midi 编辑器打开midi 文件,比如 Logic Pro,Tune Flow(https://tuneflow.com/), Tune Flow在线也可以编辑,也有多个平台的客户端
3. 将 midi 文件删除伴奏轨道,只剩一个主奏轨道,如图(tuneFlow截图 1~2.png),然后导出 midi
4. 然后将主奏文件使用类(cn.jianwoo.genXml.GenStart)生成 xml 文件
5. 导出伴奏 xml 文件的方法同理
6. 导出后根据BPM,重置 xml 中的header.audio.midi.bpm节点
#### tuneFlow截图 1
![tuneFlow截图 1](tuneFlow截图 1.png)
#### tuneFlow截图 2
![tuneFlow截图 2](tuneFlow截图 2.png)
## 2.1.0 版本
1. 新增暂停/播放按钮
2. 新增进度条,可拖动
3. 新增左侧钢琴面板,点击时可弹奏
4. 新增主面板的音符可弹奏播放对应的键音
5. 优化指针动画算法
6. 修复了一些已知问题
#### 2.1.0 版本截图
![v2.1.0.png](v2.1.0.png)
## 2.0.0 版本
### 1、音符重构
主奏和伴奏支持 钢琴 88 键全音符,包括 低音区、中音区和高音区,之前的数字音符改为标准的字母音符,中央 C 音为 C5,等同于第一版的"1",
如下图:
<img src="piano.png">
从钢琴简谱最左边开始,依次为
`[A1,A#1,B1],[C2,C#2,D2,D#2,E2,F2,F#2,G2,G#2,A2,A#2,B2] ~`
`[C8,C#8,D8,D#8,E8,F8,F#8,G8,G#8,A8,A#8,B8],[C9]`
带#的是半音符,即黑键,比如do 和 re之间就有个黑键,通俗点说就是这个音比do的音高一点,比re的音低一点。具体的乐理知识还请各位百度吧。
在类`Convert.convert()`方法中可以将之前的类转换成字母音符,之前的 "0" 也转换成了标准的停顿音(R)。
#### 音符和其值对应图表
<img src="note.png">
### 2、解析方式重构
之前是通过字符串+空格分隔的方式进行解析的,边运行边解析,效率低下,这次是通过对象的方式进行解析,提升了运行效率,也解决了主奏和伴奏不同步的情况,并且支持通过 xml 或者 json 方式解析成 NodeBO 对象,
每个音符支持自定义时长,开始时间,并且支持同一音轨多个音符同时演奏的曲子。节点定义如下:<br>
`note<br>`
`--key<br>`
`--value<br>`
`--duration<br>`
`--length<br>`
`--startTime<br>`
`--endTime<br>`
`--multiple<br>`
`--time<br>`
`--multNote<br>`
`----key<br>`
`----value<br>`
`----length<br>`
具体的含义这个业务对象的实体类有注释说明。
### 3、动画重构
之前控制台的动画单一,我实在有点看不下去了,就开发了个 GUI 图形界面,一开始是通过AWT 开发的,运行起来有点卡,并且动画也不怎么好看,样式单一,后来又通过javaFx组件开发的(注意,这需要 **JDK 11**及以上版本才可以运行)。GUI 支持每个音符的动态显示,指针根据时间线指向具体的音符。
具体的 javaFx 包需要到 https://gluonhq.com/products/javafx/ 根据不同的操作系统环境下载具体的包,然后把包里的 lib 库添加到项目中。
#### 2.0.0 版本截图
![v2.0.0.png](v2.0.0.png)
## 1.0.0 版本
### 1、主奏与伴奏中支持输入的35个音符:
“1--” ~ “7--”, “1-” ~ “7-”, “1” ~ “7”, “1+” ~ “7+”, “1++” ~ “7++”
分别代表倍低音、低音、中音、高音、倍高音一共35个音符
### 2、分别在主奏(.note)与伴奏(.accompaniments)中输入需要自动弹奏的音符
2.1 每个音符之间用空格隔开(任意多个空格,推荐每个音符包括空格共占用4个占位符,以便主奏和伴奏音符对齐)
2.2 输入字符"0",则会使音长额外延长一倍;
2.3 输入除了上面35个音符以及“0”以外的任意字符不会对弹奏起任何作用;
2.4 如果需要换行填写,则需在上一行的末尾以及下一行的开头都加上空格;
### 3、音长里输入每两个音符之间的间隔时长,单位是毫秒(ms)
建议输入整片谱子的最短的间隔,其余更长的的间隔可以利用延时加倍解决
## 参考 / 鸣谢
本项目1.0.0 版本 参考自 [@fightingHawk2001](https://github.com/fightingHawk2001)
本项目只保留了根据音符播放音乐的功能。原作者的项目中含有带图形GUI 界面的钢琴演奏器,如有需要请跳转到原项目: https://github.com/fightingHawk2001/MyPiano。
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
java课程设计大作业,java、算法练手项目,适合初学java、数据结构的同学拿来学习研究,基于java、GUI开发的小游戏,程序都经过测试,可以直接运行,资源含程序运行所需的源码、资源文件等全部数据,有需要的可放心下载使用。 java课程设计大作业,java、算法练手项目,适合初学java、数据结构的同学拿来学习研究,基于java、GUI开发的小游戏,程序都经过测试,可以直接运行,资源含程序运行所需的源码、资源文件等全部数据,有需要的可放心下载使用。 java课程设计大作业,java、算法练手项目,适合初学java、数据结构的同学拿来学习研究,基于java、GUI开发的小游戏,程序都经过测试,可以直接运行,资源含程序运行所需的源码、资源文件等全部数据,有需要的可放心下载使用。
资源推荐
资源详情
资源评论
收起资源包目录
java单机小游戏.zip (209个子文件)
起风了_180.accompaniments 4KB
起风了_180.accompaniments 4KB
.gitignore 176B
game-factory.iml 7KB
maven_test.iml 7KB
codeFactory.iml 507B
GameFrame.java 14KB
Test1.java 13KB
Tetris.java 12KB
GamePanel.java 8KB
AudioPlay.java 8KB
MapFactory.java 5KB
Tetromino.java 5KB
Animation.java 3KB
AudioPlayTest.java 2KB
Cell.java 2KB
Data.java 2KB
Map.java 937B
Audio.java 887B
L.java 665B
J.java 665B
T.java 663B
S.java 652B
Z.java 652B
I.java 652B
RetroSnakeGame.java 626B
Sound.java 567B
O.java 505B
inputFiles.lst 2KB
createdFiles.lst 0B
README.md 5KB
nor.mid 9KB
l1.mp3 209KB
l1.mp3 209KB
l4.mp3 209KB
l2.mp3 209KB
ll7.mp3 209KB
m2.mp3 209KB
l4.mp3 209KB
ll7.mp3 209KB
l2.mp3 209KB
m2.mp3 209KB
ll2.mp3 209KB
ll2.mp3 209KB
l7.mp3 208KB
l7.mp3 208KB
ll4.mp3 208KB
l6.mp3 208KB
l6.mp3 208KB
ll4.mp3 208KB
l5.mp3 208KB
h1.mp3 208KB
m6.mp3 208KB
m1.mp3 208KB
l5.mp3 208KB
m6.mp3 208KB
h1.mp3 208KB
m1.mp3 208KB
ll3.mp3 208KB
ll6.mp3 208KB
ll5.mp3 208KB
ll3.mp3 208KB
ll5.mp3 208KB
ll6.mp3 208KB
ll1.mp3 208KB
ll1.mp3 208KB
m7.mp3 207KB
m7.mp3 207KB
l3.mp3 205KB
l3.mp3 205KB
m3.mp3 202KB
m3.mp3 202KB
m4.mp3 201KB
m5.mp3 201KB
m4.mp3 201KB
m5.mp3 201KB
h2.mp3 131KB
h2.mp3 131KB
h7.mp3 131KB
hh2.mp3 131KB
hh2.mp3 131KB
h7.mp3 131KB
h5.mp3 130KB
h5.mp3 130KB
h6.mp3 130KB
hh3.mp3 130KB
h3.mp3 130KB
hh1.mp3 130KB
hh4.mp3 130KB
hh7.mp3 130KB
hh6.mp3 130KB
h4.mp3 130KB
hh1.mp3 130KB
hh4.mp3 130KB
h3.mp3 130KB
h6.mp3 130KB
hh3.mp3 130KB
h4.mp3 130KB
hh6.mp3 130KB
hh7.mp3 130KB
共 209 条
- 1
- 2
- 3
资源评论
白话机器学习
- 粉丝: 9457
- 资源: 7681
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Scopus Document Download Manager 插件
- 49065784447654二&驴(推荐).apk
- 探索微软新VLM Phi-3 Vision模型:详细分析与代码示例
- 前端开发美信射频前端开发板开发资料美信射频前端开发板开发资料
- 【mysql开发】使用ssm框架+mysql开发,这是一个J2ee项目
- 图像处理MATLAB图像处理,matlab图像处理的基本程序
- 专题讲解:信噪比和噪声系数
- 【matlab仿真】MATLAB入门仿真材料 MATLAB入门仿真材料
- Buffer of Thoughts: Thought-Augmented Reasoning with Large Langu
- 易语言抢购源码,京东抢购助手源码+模块打包
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功