有时候,软件需要播放一些音乐,这时候该怎么办呢?使用复杂的winAPI?不,还有更简单的方法:
uses crt; const n=...; t=...; a:array[1..t]of longint=(...); b:array[1..t]of real=(...); sounds:array[-6..14]of longint=(...); var i:longint; begin for i:=1 to t do begin sound(sounds[a[i]]); delay(trunc(b*n)); nosound; end; end.
那么这段代码是什么意思呢?如下:
uses crt; const n=...; //每一拍的音长 t=...; //共有几个音符 a:array[1..t]of longint=(...); //音高(do就是1,下点就是减掉7,上点就是加上7) b:array[1..t]of real=(...); //音长(以简谱中没有下划线没有附点的为一拍) sounds:array[-6..14]of longint=(...); //音高hz var i:longint; begin for i:=1 to t do begin sound(sounds[a[i]]); //播放 delay(trunc(b*n)); //等待 nosound; //关闭上一次声音 end; end.
大家可以试试一些较短的乐曲来演奏,虽然效果不是很好,但是较为简单。