Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/qguangyao/MySound

A demo of playing notes written in Java
https://github.com/qguangyao/MySound

Last synced: 14 days ago
JSON representation

A demo of playing notes written in Java

Awesome Lists containing this project

README

        

# MySound

### 介绍

自定义乐谱解释器

### 安装教程

1. 下载源码到本地
2. 用IDEA打开,其他的(如eclipse)需要自己调试
3. 运行MyPlayer中的main方法即可
4. 不需要任何第三方库,装了java就可以玩

## 重要!!!

1. 不要过度研究当下版本,可以当玩具研究下.目前设计上还有很多缺陷,后续会大改
近期没时间,有时间会继续完善
2. 还有,java的就业方向以web开发为主,还在上学的小伙伴一定要研究好再选择,切
不可因一时好玩草率选择编程语言
3. 着急研究midi相关api的小伙伴可移步[Oracle官方demo]
4. 着急用音乐编程达到更好效果的小伙伴可以搜索关键字 JFugue, abc4j(太老了)这些项目
开源且成熟,能快速实现一个乐队(前提你懂乐理)
5. 着急编曲的小伙伴请搜索引擎自行搜索 打谱软件 会找到你想要的

[Oracle官方demo]:https://www.oracle.com/java/technologies/java-sound-demo.html

#### 使用说明

| 符号 | 示例 | 说明 |
|:----:|:---------|:-----------------------------------|
| 单纯数字 | 1 | 表示四分音符 |
| - | -3 | 表示八分音符 |
| -- | --3 | 表示十六分音符,后边依此类推 |
| \+ | 3\+ | 表示延长一个四分音符长度 |
| \+\+ | 3\+\+ | 表示延长二个四分音符长度,后边依此类推 |
| l | 3l | 表示低一个八度(l:low的简写) |
| ll | 3ll | 表示低二个八度,后边依此类推 |
| h | 3h | 表示高一个八度(h:high的简写) |
| hh | 3hh | 表示高二个八度,后边依此类推 |
| : | 3:2 | 表示同时按下3和2 |
| : | 1:2:3 | 表示同时按下1,2和3 |
| u | 3u | 升符号(up),表示升3 |
| b | 3b | 降符号(blow),表示降3 |
| . | 3. | 表示延长本音节原有长度的一半(3.的音长是3的1.5倍) |
| ^ | ^3 | 表示本音节符号不发音 |
| \> | 3\> | 顿音符号,表示本音符发音时长占音符时长的1/4 |
| < | 3<2 | 倚音符号,音节时长由后边的音符决定,前边音符发音占本音节时长的1/16 |

| 关键字 | 示例 | 说明 |
|:----------:|:----------:|:-------------------|
| major | major:c | 声明简谱是C调的,简谱中可变换多次 |
| PPQ | PPQ:3/4 | 声明简谱是4分音符为一拍,没小节3拍 |
| BPM | BPM:155 | 声明简谱每分钟155拍 |
| rightStart | rightStart | 右手轨道开始 |
| leftStart | leftStart | 左手轨道开始 |
| rightEnd | rightEnd | 右手轨道结束 |
| leftEnd | leftEnd | 左手轨道结束 |
| // | //注释 | 本行为注释内容 |

### 规则

1. 指令行每一行为一个指令,如生明major,PPQ等
2. 乐符为每一行一个小节,乐符之间以空格分开
3. 乐符录入前要先声明是左手还是右手rightStart,leftStart
4. 乐符左右手部分结束后需要声明结束
5. 左右手不可同时开启
6. 左右手声明结束后可以再次声明开始,从第一个节拍开始录,不会覆盖前边

---
#### 说明:

````
目前本项目以钢琴为,只实现了部分钢琴技法,主要是针对简谱,
后续会增加五线谱以及JFugue以及xmlmusic的解析,以上只是设想,
目前没空,有空还能想起来的话,再写吧
````