//合成并输出音乐 //使用编程记谱法合成音乐: doc://library-guide/std/sys/midiOut.md //演奏起风了: file://~/example/Media/Audio/TheWind.aardio 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(" 两只老虎, 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); win.loopMessage();