谁能帮我解释一下Qbasic中命令Play的具体用法?
格式:PLAY[命令字符串]
说明:【命令串】是音乐语言中的单字符命令,用来表示音符的音高、长短、快慢和演奏方式。
乐谱中的音符CDEFGAB(相当于1=C时的简单符号1234567)在BASIC中仍然是这七个字母,“#”(或“+”)和“-”符号分别代表乐谱中的升半音(#)和降半音(B),以及字符“.”代表延伸。
1,o命令
功能:用于设置要演奏的音符的八度,即音阶。
格式:开
注意:命令中n的值是0-6。比如让电脑在播放完音阶3的CD后,再播放一个高八度C,也就是音阶4中C的调,可以通过PLAY“o 3c do 4c”来实现。普通中音是指音阶3中的音符。
2、l命令
功能;用于设定要播放的每个音符的长度(也称为音符的持续时间)。
格式:Ln
注:n的值为1-64,L1表示全音符,L2表示半音符,L4表示四分音符,L8表示八分音符...
音符的持续时间也可以直接写在音符后面,无需l命令。比如L8A相当于A8,C4E4D4A4相当于L4CEDA,而L4CDEFC2AB2是指后面没有数字的四分音符按照数字指定的音值演奏,后面有数字的G2和B2按照数字指定的音值演奏。显然,使用L命令更加简洁方便。
3、p命令
功能:表示休止符的长度。
格式:Pn
注意:n的值是1-64,P1表示全休。P2的意思是半休息,P4的意思是四休息...
4、t命令
功能;用于设定演奏的速度。
格式:Tn
注:n为每分钟弹奏的四分音符数,取值32-255,默认值为T120。
注意:除了T命令之外,您还可以使用以下三个命令来控制性能速度:
(1)MN(音乐标准):它使每个音符以L设定的音值的7/8播放,使两个音符之间有短暂的停顿。
(2)ML(音乐连奏);演奏时,两个音符之间不会有停顿,每个音符都会演奏l指定的音长。
(3)Ms(音乐断奏):将每个音符变短,以L给定音值的3/4弹奏,以延长音符间的停顿。
另外,QB播放音乐有两种方式:前景音乐和背景音乐。由MF和MB决定。当MF出现在“命令字符串”中时,意味着音乐被插入到前景中。也就是QB在PLAY语句执行完之前不能继续执行程序,在播放音乐的同时不能做别的事情。当MB出现时,表示在后台播放音乐。QB可以在缓冲区中保存多达32个音符或休止符,然后继续执行下面的程序,而不需要等待所有这些音符都播放完。这样MB就可以让QB在玩的时候做一些其他的事情,比如计算,画图等等。
现在,在理解PLAY语句用法的基础上,我们编写了一个简单的程序来播放《友谊地久天长》的片段,其对应的标注如下:
我们把这段音乐分成四个部分,每个部分用一根弦来代表。为了在两个部分之间做短暂的停顿,每一部分的结尾都会播放MN。音乐中,连接线与ML连贯播放。
A$="O2MNG O3C。C 16CE D . C 16DE C . C 16EG mna 4。”
b $ = " A G . e 16EC D . C 16DE C . o2a 16AG o3m NC 4。"
C$= "一个MLG。E16EC D.C16MNDA MLGE16EG MNA4。”
D$="O4C O3G。e 16EC D . C 16DE C . o2a 16AG o3c 4。”
玩“T60 L8”+A $+B $+C $+D $。
结束
为了清晰起见,节目中每一段的音乐代码都用空格隔开,这样代码和乐谱的对应关系一目了然。