使用编程记谱法合成音乐 | 演奏起风了 | 圈住小猫音效
//合成并输出音乐
//使用编程记谱法合成音乐: https://www.aardio.com/zh-cn/doc/library-guide/std/sys/midiOut.html
//演奏起风了: https://www.aardio.com/zh-cn/doc/example/Media/Audio/TheWind.html
//圈住小猫音效: https://www.aardio.com/zh-cn/doc/example/plus/draw/trap-the-cat.html
import win.util.lyric;
var lyric = win.util.lyric();
lyric.show();
//打开播放设备
import sys.midiOut;
var midiOut = sys.midiOut();
/*
可以在主线程里直接演奏音乐。
也可以将 midiOut 对象传入一个或多个独立线程,
要注意 close 函数会同时关闭所有线程的同一设备对象。
*/
thread.invoke( function(midiOut,lyric){
//指定字幕回显函数
midiOut.log = function(v) lyric.text = v;
//不同线程指定不同通道,就可以轻松实现多乐器同时合奏。
midiOut.channel = 1;
//切换乐器,默认设置当前通道(不要用参数@2指定其他通道)
midiOut.changeInstrument(12);
// midiOut.play 在工作线程同步启动,在界面线程使用延时器异步启动
midiOut.play("
两只老虎,
1__,2__,3__,1__
两只老虎,
1__,2__,3__,1__
跑得快,
3__,4__,5__,__
跑得快,
3__,4__,5__,__
一只没有耳朵
5_,6_,5_,4_,3__,1__
一只没有尾巴,
5_,6_,5_,4_,3__,1__
真奇怪
2__,'5__,1__,__
","C4"/* 1=C */,250/* ♩=120 */);
lyric.close();
},midiOut,lyric);
// 使用 midiOut.playAsync(notes,do,tempoMs) 则会自动创建工作线程播放音乐
win.loopMessage();
Markdown 格式