Atitit jfugue midi make tour attilx sumup

目录

1.1. Jyepu prob not support ,gazi nonge map trans支持简谱解决方案 1

1.2. Tone len problem??note 音符 音长 1

1.3. Jyepai spltor prob ,,mosi not need   jyepu hto d just for readd 节拍分隔符问题 1

1.4. 保存为mid文件 1

1.5. 分析mid文件为txt 4

1.1. Jyepu prob not support ,gazi nonge map trans支持简谱解决方案

1.2. Tone len problem??note 音符 音长

A5h   ,,must mid has 5.beir ingore

1.3. Jyepai spltor prob ,,mosi not need   jyepu hto d just for readd 节拍分隔符问题

1.4. 保存为mid文件

package midtool;

import java.io.File;

import java.io.IOException;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

import org.jfugue.midi.MidiFileManager;

import org.jfugue.pattern.Pattern;

import org.jfugue.player.Player;

import org.staccato.ReplacementMapPreprocessor;

import org.staccato.maps.SolfegeReplacementMap;

import com.attilax.collection.listBuilder;

import com.attilax.util.timestampUtil;

import com.google.common.base.Joiner;

import com.google.common.collect.Lists;

public class SolfegeReplacementMapDemo {

public static void main(String[] args) throws IOException {

Map rules = new HashMap() {{

put("1", "c");

put("2", "d");

put("3", "e");

put("4", "f");

put("5", "g");

put("6", "a");

put("7", "b"  );

put("H", "H"  );

}};

//ReplacementMapPreprocessor rmp = ReplacementMapPreprocessor.getInstance();

//rmp.setReplacementMap(rules).setRequireAngleBrackets(false);

//Player player = new Player();

//player.play(new Pattern("do re mi fa so la ti do")); // This will play "C D E F G A B"

// This next example brings back the brackets so durations can be added

//rmp.setRequireAngleBrackets(true);

//player.play(new Pattern("<Do>q <Re>q <Mi>h | <Mi>q <Fa>q <So>h | <So>q <Fa>q <Mi>h | <Mi>q <Re>q <Do>h"));

Pattern Pattern1 = new Pattern();

String s="1155665-  4433221-  5544332-    5544332-     1155665-    4433221-";//  5544332    5544332     1155665    4433221

listBuilder listBuilder = strService.$(s).replace("    aaa","\\|").toList().trimElement();

List li=processToneLen(listBuilder.liObj,rules);

//String s2=listBuilder.join(" ").build();

String joinSpaceAfted = Joiner.on(" ").join(li);

System.out.println(joinSpaceAfted);

Pattern1.add(joinSpaceAfted);

File file = new File( timestampUtil.join("c:\\0log\\atifirstmid@tmstmp@.mid").asTimeStamp_millsec_filenameencode() );

newMidiFileManager().savePatternToMidi(Pattern1, file);

System.out.println("--");

}

private static List processToneLen(List liObj, Map rules) {

List li=Lists.newArrayList();

String lasttone;

for (Object object : liObj) {

String tone=(String) object.toString().trim();

if(tone.trim().length()==0)

continue;

if(!tone.equals("-") )

{

String trueTone=(String) rules.get(tone);

li.add(trueTone);continue;

}

if(tone.equals("-") )

{

int indexlast = li.size()-1;

String li_lasttone=(String) li.get(indexlast);

String newtone=li_lasttone+"5H";

li.remove(indexlast);

li.add(newtone);

continue;

}

}

return li;

}

}

1.5. 分析mid文件为txt

Player player = new Player();

//两只老虎Pattern pattern1 = new Pattern("I[40] C5q D5q E5q C5q");

//跑得快Pattern pattern2 = new Pattern("E5q F5q G5h");

//一只没有眼睛Pattern pattern3 = new Pattern("G5i A5i G5i F5i E5q C5q");

//真奇怪Pattern pattern4 = new Pattern("C5q G4q C5h");

// Put all of the patters together to form the songPattern song = new Pattern();song.add(pattern1, 2);

// Adds 'pattern1' to 'song' twicesong.add(pattern2, 2); // Adds 'pattern2' to 'song' twicesong.add(pattern3, 2);

// Adds 'pattern3' to 'song' twicesong.add(pattern4, 2);

// Adds 'pattern4' to 'song' twice

// Play the song!player.play(song);

Atitit jfugue midi make tour attilx sumup 目录 1.1. Jyepu prob not support ,gazi nonge map trans支持简谱解决相关推荐

  1. SSM:web目录下有的jsp和图片不能显示,有的可以显示的解决方法

    QUESTION:SSM:web目录下有的jsp和图片不能显示,有的可以显示的解决方法 ANWSER: 在学习ssm框架时,遇到的bug是千奇百怪,遇魔杀魔的本领也越来越强.突然出现的jsp页面和图片 ...

  2. Windows 64 位 mysql 5.7以上版本包解压中没有data目录和my-default.ini和my.ini文件以及服务无法启动的解决办法以及修改初始密码的方法

    Windows 64 位 mysql 5.7以上版本包解压中没有data目录和my-default.ini和my.ini文件以及服务无法启动的解决办法以及修改初始密码的方法 参考文章: (1)Wind ...

  3. WORD/WPS打印目录或输出输出PDF时,目录显示“错误未定义标签”,且无法正常跳转的解决方法

    错误如图所示 解决方法: 1.找到对应目录想要要跳转的页面,并将光标定位到此处,点击插入书签 2.添加一个书签 3.找到要更改的目录 4.鼠标右击,点击 切换域代码 选项,并将引号中的内容,替换为你刚 ...

  4. word 目录里面添加分节符下一页出现空白页的解决方法

    解决方法: 不要"插入下一页分节符"! 在目录后一页的页首,插入分隔符--连续,打开"页眉和页脚工具条",光标置于页脚,点页眉页脚工具条上的"链接到前 ...

  5. unc 目录不受支持_windows unc途径不受支持的解决

    1.批处理命令实现服务器之间互联 解决办法:在"计算机"上点击右键,选择"映射网络驱动器",在弹出的对话框中设置"驱动器"名称,如" ...

  6. macunity日志目录_Mac升级10.13需谨慎,Unity不显示资源的解决办法

    原标题:Mac升级10.13需谨慎,Unity不显示资源的解决办法 前言: 上个月苹果开发者大会展示了ARkit,一批前沿开发者立马跟上尝鲜.Unity的ARkit插件马上随之而来.作者按捺不住激动的 ...

  7. 获取服务器信息目录失败是怎么回事,获取服务器列表失败...(是怎么回事)附解决方法...

    获取服务器列表失败...这种是什么错误,是怎么回事呢?我相信很多成人都遇到过这种错误,无论你是玩家还是开的GM,既然有问题,那么比如就会有解决的方法,今天我们就说说获取服务器列表失败...(是怎么回事 ...

  8. 域更改目录服务器状态 不可用,active directory域服务当前不可用怎么解决

    基本上每个在win7系统用过打印机的用户都会遇到过"active directory域服务当前不可用"这个问题,那到底是什么导致现在的问题诞生呢?那要怎么设置才可以恢复active ...

  9. Atitit s2018.5 s5 doc list on com pc.docx  v2

    Atitit s2018.5 s5  doc list on com pc.docx  Acc  112237553.docx Acc Acc  112237553.docx Acc baidu ne ...

  10. atitit 音频 项目 系列功能表 音乐 v3 t67.docx Atitit 音频 项目 系列功能表 1.音频 音乐 语言领域的功能表 听歌识曲功能 酷我功能。 铃声 功能。。 音频切割(按

    atitit 音频 项目 系列功能表 音乐 v3 t67.docx Atitit 音频 项目 系列功能表 音频 音乐 语言领域的功能表 听歌识曲功能 酷我功能. 铃声 功能.. 音频切割(按照副歌部分 ...

最新文章

  1. 控制~线性二次型最优控制
  2. android 之Dialog的多种Dialog对话框(以及反射在自定义对话框的运用)
  3. python getattr和getattribute_python中__getattr__和__getattribute__区别
  4. power bi函数_在Power BI中的行上使用聚合函数
  5. SharePoint学习札记[6] — WebPart之基础
  6. linux race window,java开发环境(QTrace)
  7. [HAOI2009]毛毛虫 dfs
  8. Node.js区块链开发pdf
  9. iPhone 不能读取plist文件!?
  10. VC++6.0快捷键
  11. 牛年大吉~ 包邮送一部新款华为手机!
  12. hping3安装使用
  13. Python笔记:第三方IP代理服务与爬虫IP代理
  14. 【编程规范】 后端API接口设计编写与文档编写参考
  15. 名词从句、定语从句、状语从句的位置及图示
  16. mongodb关机重启
  17. Maven基础——什么是Maven
  18. zookeeper 启动错误Error contacting service. It is probably not running
  19. 没有要使用本计算机 用户必须输入密码,要使用本计算机,用户必须输入用户名和密码选项不见了怎么办...
  20. 入门kpi的后台工具类

热门文章

  1. java缓冲流和普通流的区别_关于java:数据输入/输出流和缓冲的输入/输出流有什么区别?...
  2. java setmodal 不管用_java – 无法动态设置setVisibility()参数
  3. wordpress option.php,简单了解WordPress开发中update_option()函数的用法
  4. image.open()得到的图片是什么类型_复古门窗花格图片大全让精彩生活继续闪耀 「巴森」...
  5. 七、curator recipes之阻塞队列SimpleDistributedQueue
  6. webpack4.0版本中的js压缩问题
  7. Windows下配置安装Git(一)
  8. CISCO路由器DHCP 配置
  9. pycharm2017自建注册服务器
  10. 【数据蒋堂】索引的本质是排序