2、分别在主奏(.note)与伴奏(.accompaniments)中输入需要自动弹奏的音符
前言
上一次用python演奏了lemon,但是效果不是特别理想,因为断断续续的,给女朋友听了都没有听出来,所以重新去用java写一个,希望她开开心心,愿她还是那个初闯世间的少年,意气风发的模样,从前初识这世间,万般流连,也甘愿赴汤蹈火去走他一遍,这种字里行间的自信和神采总会给人热血澎湃的感觉,不禁想起自己曾经的年少轻狂,一腔热血。 微凉晨光里,再次见到你,笑得很甜蜜。希望她去勇敢的面对生活中的种种困难!
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)
建议输入整片谱子的最短的间隔,其余更长的的间隔可以利用延时加倍解决
写一个测试即可
package cn.jianwoo.test;
import cn.jianwoo.play.Animation;
import cn.jianwoo.play.AudioPlay;
import java.io.File;
/**
* @author kirito
* @Description
*/
public class Test1 {
public static void main(String[] args) {
String path =
new File("").getAbsolutePath() + File.separator + "src/main/resources/notes" + File.separator;
String notes =
" 7- 1 2 3 0 5- 5 3 0 0 0 0 0 0 0 0 \n" +
" 7- 1 2 3 0 5- 5 3 2 3 1 2 7- 1 5- 0 \n" +
" 7- 1 2 3 0 5- 5 3 0 0 0 0 0 0 0 0 \n" +
" 7- 1 2 3 0 5- 5 3 2 3 1 2 7- 1 5- 0 \n" +
" 7 1+ 2+ 3+ 0 5 5+ 3+ 0 0 0 0 0 0 0 0 \n" +
" 7 1+ 2+ 3+ 0 5 5+ 3+ 2+ 3+ 1+ 2+ 7 1+ 5 0 \n" +
" 7 1+ 2+ 3+ 0 5 5+ 3+ 0 0 0 0 0 0 0 0 \n" +
" 2 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 \n" +
" 2 0 0 1 2 0 0 1 2 0 3 0 5 0 3 0 \n" +
" 2 0 0 1 2 0 0 1 2 3 2 1 6- 0 0 0 \n" +
" 2 0 0 1 2 0 0 1 2 0 3 0 5 0 3 0 \n" +
" 2 0 0 3 2 0 1 2 2 0 0 0 0 0 0 0 \n" +
" 2 0 0 1 2 0 0 1 2 0 3 0 5 0 3 0 \n" +
" 2 0 0 3 2 0 1 0 6- 0 0 0 \n" +
" 3 2 1 2 1 0 0 0 \n" +
" 3 2 1 2 1 0 0 \n" +
" 5- 3 2 1 2 0 0 1 0 0 0 0 0 \n" +
" 1 0 2 0 3 0 1 0 6 0 5 6 0 0 0 \n" +
" 2 7 0 6 7 0 0 0 0 \n" +
" 7 0 6 7 0 0 3 0 1+ 2+ 1+ 7 6 0 0 \n" +
" 5 6 0 5 6 0 5 6 5 6 0 5 1 0 5 0 3 3 0 0 0 0 0 0 0 \n" +
" 1 0 2 0 3 0 1 0 6 0 5 6 0 0 0 \n" +
" 2 7 0 6 7 0 0 0 0 \n" +
" 7 0 6 7 0 0 3 0 1+ 2+ 1+ 7 6 0 0 \n" +
" 5 6 0 3+ 3+ 0 0 5 0 6 0 3+ 3+ 0 \n" +
" 5 0 6 6 0 3- 0 3- 0 3- 0 3- 0 0 0 \n" +
" 1+ 0 2+ 0 3+ 0 6+ 5+ 0 0 6+ 5+ 0 0 6+ 5+ 0 2+ 0 0 \n" +
" 3+ 0 6+ 5+ 0 0 6+ 5+ 0 0 6+ 5+ 0 3+ 0 0 \n" +
" 2+ 0 1+ 6 0 1+ 0 1+ 2+ 0 1+ 6 0 0 1+ 0 3+ 0 0 0 0 0 3+ 0 2+ 0 0 0 \n" +
" 1+ 0 2+ 0 3+ 0 6+ 5+ 0 0 6+ 5+ 0 0 6+ 5+ 0 0 \n" +
" 2+ 0 3+ 0 6+ 5+ 0 0 6+ 5+ 0 0 6+ 5+ 0 0 \n" +
" 3+ 0 2+ 0 1+ 6 0 0 3+ 0 2+ 0 1+ \n" +
" 6 0 1+ 0 0 1+ 0 0 0 0 0 0 0 0 0 0 0 \n" +
" 6 3+ 0 0 2+ 0 1+ 6 0 3+ 0 0 2+ 0 1+ \n" +
" 6 0 1+ 0 0 1+ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n" +
" 7 1+ 2+ 3+ 0 5 5+ 3+ 2+ 3+ 7 1+ 6 7 5 0 \n" +
" 7 1+ 2+ 3+ 0 5 5+ 3+ 0 0 0 0 0 0 0 0 \n" +
" 6+ 3+ 2+ 6 3 6 2+ 3+ 6+ 0 0 0 0 0 0 0 \n ";
String accompaniments =
" 4-- 0 1- 0 3- 0 0 0 5-- 0 7-- 0 2- 0 0 0 \n" +
" 3-- 0 7-- 0 2- 0 0 0 6-- 0 1- 0 3- 0 0 0 \n" +
" 4-- 0 1- 0 3- 0 0 0 5-- 0 7-- 0 2- 0 0 0 \n" +
" 3-- 0 7-- 0 2- 0 0 0 6-- 0 1- 0 3- 0 0 0 \n" +
" 4- 0 1- 0 3- 0 0 0 5-- 0 7-- 0 2- 0 0 0 \n" +
" 3-- 0 7-- 0 2- 0 0 0 6-- 0 1- 0 3- 0 0 0 \n" +
" 4-- 0 1- 0 3- 0 0 0 5-- 0 7-- 0 2- 0 0 0 \n" +
" 3- 0 0 0 0 0 0 0 1- 0 0 0 0 0 0 0 \n " +
"1-- 0 0 0 3- 0 0 0 3- 0 0 0 3- 0 0 0 \n" +
" 7-- 0 0 0 2- 0 0 0 2- 0 0 0 2- 0 0 0 \n" +
" 7-- 0 0 0 2- 0 0 0 2- 0 0 0 2- 0 0 0 4-- \n" +
" 0 0 0 4- 0 0 0 4- 0 0 0 4- 0 0 0 \n " +
" 2-- 0 0 0 2- 0 0 0 5-- 0 0 0 2- 0 0 0 6-- 0 0 0 3- 0 0 0 6-- 0 0 0 \n" +
" 0 0 0 0 4-- 0 0 0 \n" +
" 0 0 0 0 4- 0 0 \n" +
" 0 0 0 0 0 1-- 0 5-- 0 1- 0 3- 0 \n" +
" 1 0 0 0 1- 0 0 0 4-- 1- 4- 6- 1 0 4- \n" +
" 0 5-- 2- 5- 7- 2 0 5- 0 \n" +
" 3-- 7-- 3- 5- 7- 0 0 0 6-- 3- 6- 3- 1 0 0 \n" +
" 0 4-- 1- 4- 6- 1 0 4- 0 5-- 2- 5- 7- 2- 0 5- 0 1-- 5-- 1- 3- 5- 0 3- 0 \n" +
" 1 0 0 0 5- 0 0 0 4-- 1- 4- 1- 6- 0 1- \n" +
" 0 5-- 2- 5- 2- 7- 0 2- 0 \n" +
" 3-- 7-- 3- 5- 7- 0 3- 0 6-- 3- 6- 3- 1 0 3- \n" +
" 0 4-- 1- 4- 6- 3 0 4- 0 5-- 2- 5- 7- 2 0 \n" +
" 5- 0 6-- 0 6-- 0 6-- 0 6-- 0 6-- 0 0 0 \n" +
" 0 0 0 0 4-- 0 1- 0 4- 0 0 0 5-- 0 2- 0 5- 0 0 0 \n" +
" 3-- 0 7-- 0 3- 0 0 0 6-- 0 3- 0 6- 0 0 0 \n" +
" 4-- 0 1- 0 4- 0 0 0 5-- 0 2- 0 5- 0 0 0 \n" +
" 1- 0 5- 0 1 0 0 0 3- 0 7- 0 \n" +
" 3 0 0 0 4-- 0 1- 0 4- 0 0 0 5-- 0 2- 0 5- 0 0 \n" +
" 0 3-- 0 7-- 0 3- 0 0 0 6-- 0 3- 0 6- 0 \n" +
" 0 0 4-- 0 1- 0 4- 0 0 0 5-- 0 2- 0 5- 0 0 \n" +
" 0 1- 0 5- 0 1 0 5- 0 3- 0 0 0 \n" +
" 0 0 0 0 4-- 0 0 0 0 0 0 0 5-- 0 0 0 0 0 0 0 \n" +
" 4-- 0 1- 0 6- 0 1- 0 5-- 0 2- 0 5- 0 2- 0 \n" +
" 3-- 0 7-- 0 5- 0 7-- 0 6-- 0 3- 0 1 0 3- 0 \n" +
" 4-- 0 1- 0 6- 0 1- 0 5-- 0 2- 0 7- 0 2- 0 \n" +
" 6-- 0 3- 0 6- 0 3- 0 1 0 0 0 3- 0 0 0 \n ";
String note1 =
"" +
" 2 0 0 1 2 0 0 1 2 0 3 0 5 0 3 0 \n" +
" 2 0 0 1 2 0 0 1 2 3 2 1 5- 0 0 0 \n" +
" 2 0 0 1 2 0 0 1 2 0 3 0 5 0 3 0 \n" +
" 2 0 0 3 2 0 1 0 2 0 0 0 0 0 0 0 \n" +
" 2 0 0 1 2 0 0 1 2 0 3 0 5 0 3 0 \n" +
" 2 0 0 3 2 0 1 0 6- 0 0 0 3 2 1 2 \n" +
" 1 0 0 0 3 2 1 2 1 0 0 5- 3 2 1 2 \n" +
" 1 0 0 0 0 0 0 0 1 0 2 0 3 0 1 0 \n" +
" 6 0 5 6 0 0 0 1 7 0 6 7 0 0 0 0 \n" +
" 7 0 6 7 0 0 3 0 1+ 2+ 1+ 7 6 0 5 0 \n" +
" 6 0 5 6 0 5 6 5 6 0 5 2 0 5 0 0 \n" +
" 3 0 0 0 0 0 0 0 1 0 2 0 3 0 1 0 \n" +
" 6 0 5 6 0 0 0 1 7 0 6 7 0 0 0 0 \n" +
" 7 0 6 7 0 0 3 0 1+ 2+ 1+ 7 6 0 5 0 \n" +
" 6 0 3+ 3+ 0 0 5 0 6 0 3+ 3+ 0 5 0 6 \n" +
" 6 0 0 0 0 0 0 0 0 0 0 0 1+ 0 2+ 0 \n" +
" 3+ 0 6+ 5+ 0 0 6+ 5+ 0 0 6+ 5+ 0 0 2+ 3+ \n" +
" 0 0 6+ 5+ 0 0 6+ 5+ 0 0 6+ 5+ 0 3+ 0 0 \n" +
" 2+ 0 1+ 6 0 1+ 0 0 2+ 0 1+ 6 0 1+ 0 0 \n" +
" 3+ 0 0 0 0 4+ 3+ 0 3+ 2+ 0 0 1+ 0 2+ 0 \n" +
" 3+ 0 6+ 5+ 0 0 6+ 5+ 0 0 6+ 5+ 0 0 2+ 0 \n" +
" 3+ 0 6+ 5+ 0 0 6+ 5+ 0 0 6+ 5+ 0 3+ 0 0 \n" +
" 2+ 0 1+ 6 0 3+ 0 0 2+ 0 1+ 6 0 1+ 0 0 \n" +
" 1+ 0 0 0 0 0 0 0 0 0 0 0 6 3+ 0 0 \n" +
" 2+ 0 0 0 1+ 0 6 0 0 0 3+ 0 0 0 0 0 \n" +
" 2+ 0 0 0 1+ 0 6 0 0 0 1+ 0 0 0 0 0 \n" +
" 1+ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n" +
" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n";
String accompaniments1 =
" 1-- 0 0 0 3- 0 0 0 3- 0 0 0 3- 0 0 0 \n" +
" 7-- 0 0 0 2- 0 0 0 2- 0 0 0 2- 0 0 0 \n" +
" 7-- 0 0 0 2- 0 0 0 2- 0 0 0 2- 0 0 0 \n" +
" 4-- 0 0 0 4- 0 0 0 4- 0 0 0 4- 0 0 0 \n" +
" 2-- 0 0 0 2- 0 0 0 5-- 0 0 0 2- 0 0 0 \n" +
" 6-- 0 0 0 3- 0 0 0 6-- 0 0 0 0 0 0 0 \n" +
" 4-- 0 0 0 0 0 0 0 5-- 0 0 0 0 0 0 0 \n" +
" 1- 0 0 0 0 0 0 0 1- 0 0 0 0 0 0 0 \n" +
" 4-- 0 0 0 0 0 0 0 5-- 0 0 0 0 0 0 0 \n" +
" 3-- 0 0 0 0 0 0 0 6-- 0 0 0 0 0 0 0 \n" +
" 4-- 0 0 0 0 0 0 0 5-- 0 0 0 0 0 0 0 \n" +
" 1- 0 0 0 0 0 0 0 1- 0 0 0 0 0 0 0 \n" +
" 4-- 0 0 0 0 0 0 0 5-- 0 0 0 0 0 0 0 \n" +
" 3-- 0 0 0 0 0 0 0 6-- 0 0 0 0 0 0 0 \n" +
" 4-- 0 0 0 0 0 0 0 5-- 0 0 0 0 0 0 0 \n" +
" 6-- 0 0 0 3- 0 0 0 6- 0 0 0 0 0 0 0 \n" +
" 4-- 0 0 0 4- 0 0 0 5-- 0 0 0 5- 0 0 0 \n" +
" 3-- 0 0 0 3- 0 0 0 6-- 0 0 0 6- 0 0 0 \n" +
" 4-- 0 0 0 4- 0 0 0 5-- 0 0 0 5- 0 0 0 \n" +
" 1-- 0 0 0 1- 0 0 0 3-- 0 0 0 3- 0 0 0 \n" +
" 4-- 0 0 0 4- 0 0 0 5-- 0 0 0 5- 0 0 0 \n" +
" 3-- 0 0 0 3- 0 0 0 6-- 0 0 0 6- 0 0 0 \n" +
" 4-- 0 0 0 4- 0 0 0 5-- 0 0 0 5- 0 0 0 \n" +
" 6-- 0 0 0 3- 0 0 0 6-- 0 0 0 0 0 0 0 \n" +
" 4-- 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n" +
" 5-- 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n" +
" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n" +
" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ";
new AudioPlay(180).loadNotes(notes + note1).start();
new AudioPlay(180).loadNotes(accompaniments + accompaniments1).start();
new Animation(180).loadNotes(notes + note1).start();
}
}
最终的效果如下:
java演奏起风了