当前位置:首页 > 生活知识

生活知识

[8d歌怎么做]谁能告诉我怎样用QBASIC编歌的秘诀

分类:生活知识 2022-05-19
导读: [8d歌怎么做]谁能告诉我怎样用QBASIC编歌的秘诀--[8d歌怎么做]谁能告诉我怎样用QBASIC编歌的秘诀 问题:要用QBASIC编的具体方法,并试编一个“东方红”的程序。Qbasic音乐编程2006-4-11 17:04:37QB中提供了专门的演奏音乐的语句PLAY和通用的发声语句SOUND,不过由于那会儿多...
[8d歌怎么做]谁能告诉我怎样用QBASIC编歌的秘诀

[8d歌怎么做]谁能告诉我怎样用QBASIC编歌的秘诀

问题:要用QBASIC编的具体方法,并试编一个“东方红”的程序。Qbasic音乐编程2006-4-11

17:04:37QB中提供了专门的演奏音乐的语句PLAY和通用的发声语句SOUND,不过由于那会儿多媒体并不像如今这般流行,所以所谓的音乐也仅仅相称于手机中的单音铃声。

对于听惯了低音炮、立体声、混响的我们,偶然自娱自乐还是挺不错的:)下面先介绍PLAY语句功能:演奏由给定的字符串所表示的音乐

格式:PLAY[命令字符串]说明:[命令字符串]是一种音乐语言单个字符命令组成,用以表示音符的音高、音长、速度及演奏方式等。

乐谱中的音符CDEFGAB(当1=C时相称于简符1234567)在BASIC中仍旧是这7个字母,“#”(或“+”)号与“-”号分别表示乐谱中的升半音(#)和降半音(b),字符“.”代表延长前面音符的一半时长(用来表示附点音符),其他字符命今如下:

1、O命令功能:用来设置要演奏的音符所在的八度,即音阶。格式:On说明:命令中n的取值为0-6。比如.使计算机在演奏完音阶3的CD之后,再演奏一个高八度的C,即音阶4中的c调,可以用PLAY

“O3CDO4C”来实现。普通中音是指音阶3中的音符。2、L命令功能;用来设置要演奏的每个音符的长度(亦称音符的时值)。

格式:Ln说明:n的取值1-64,L1表示以全音符,L2表示半音符,L4表示四分音符,L8表示八分音符……

一个音符的时值也可以直接写在该音符后面,而不用L命令。如L8A与A8等效,C4E4D4A4等效于L4CEDA,而L4CDEFC2AB2则表示音符后面不带数字的按L设定的四分音符演奏,后面带数字的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$="O2MNGO3C.C16CED.C16DEC.C16EGMNA4."

B$="AG.E16ECD.C16DEC.O2A16AGO3MNC4."C$="AMLG.E16EC

D.C16MNDAMLG.E16EGMNA4."D$="O4CO3G.E16ECD.C16DEC.O2A16AG

O3C4."PLAY"T60L8"+A$+B$+C$+D$END为清楚起见,程序中各小节的音乐编码之间以空格分开,这样编码与乐谱之间的对应关系一目了然。

Qbasic音乐编程之play语句2006-4-1117:06:42PLAY里有用的字母只有:TOL

MSMNMLT代表速度,"t140"表示140拍/分钟,但是假如你写"t120",那就和没写一样,因为t120是默认值

O代表音高,"o2"表示中音,"o3"表示高音,但是假如你写"o4",那就和没写一样,理由同上ML表示演奏ML以后的音的100%长度

MN表示演奏MN以后的音的87.5%长度,是默认值MS表示演奏MS以后的音的75%长度举例子PLAY

"t140mno3e8e8e8c8o2g4g4o3e8e8e8c8e2g8g8e8c8o2g8g8g4a8b8o3c8e8d2"

t140说的是,一分钟140拍mn说的是,每个音都演奏87.5%长度,空12.5%o3说的是音高,假如你想升一个8音度,可以改成o4

e8代表8分音符的咪,e2代表2分音符假如你想听一个符点2分音符,则要变成e2.,这和音乐里是一样的

下面要把上面的那条语句做一点变动,可以使你更好的理解各个字母的含义首先变成PLAY"t140mno3e8e8e8c8o2g4g4o3t160e8e8e8c8e2t180g8g8e8c8o2g8g8g4a8b8o3c8e8d2"

感觉如何?basic提供的速度的范围是32-255然后变成PLAY"t140mso3e8e8e8c8o2g4g4o3mne8e8e8c8e2mlg8g8e8c8o2g8g8g4a8b8o3c8e8d2"

这就是mn,ms,ml的区别另外,对于程序中的那一堆8,你是否感觉到很烦人呢?PLAY"t140mno3e8e8e8c8o2g4g4o3e8e8e8c8e2g8g8e8c8o2g8g8g4a8b8o3c8e8d2"

那么,我把它变成PLAY"t140mnl8o3eeeco2g4g4o3eeece2ggeco2ggg4abo3ced2"

和原来是一样的,这就是L的用法。L的默认值是4也就是说,原程序可以变成PLAY"t140mno3e8e8e8c8o2ggo3e8e8e8c8e2g8g8e8c8o2g8g8ga8b8o3c8e8d2"

叙述一下mnmsml的用法,以及每个音的长度等问题,使得乐曲听起来更加圆润首先说一下P的用法。P代表休止,如P4代表空一拍,P8代表空半拍等等

但要注重,P不受L的限制,P后面必须要跟一个数。例如你想空半拍,写成L8P,是不对的,只能写成P8还拿上一部分的例子

PLAY"t140mno3e8e8e8c8o2g4g4o3e8e8e8c8e2g8g8e8c8o2g8g8g4a8b8o3c8e8d2"

相信我写成Play"t140o3l8eeecl4o2ggo3l8eeece2ggeco2ggg4abo3ced2"你也能看的懂,和原来一样的

听了之后,发现有些声音太长了,有些声音不够圆滑于是将其改为:PLAY"t140o3l8eeeco2g4g4o3l8eeece4.p8ggeco2ggg4mlabo3cmned4.p8"

另外有时看曲谱上是顿音记号,可是在听或演奏时,发现用ms还是太长了,那么就应该把o3msc8(举例)改成o3mlc16p16

下面说音长的问题,重点就是每个小节或每个音该有多少,就要写多少,绝对不能多一点少一点比如前缀音:PLAY

"t160mlo3f32mne8f8"我本意是在e8前加一个f32的前缀,结果这一拍多了个32分音符,那么一定要改成:

PLAY"t160mlo3f32e16e64p64mnf8"好像有点吹毛求疵,但即使你听不出来差别,拿给一个耳朵好的人,他听着就会很不爽

CZARDAS舞曲PLAY"t85p8l8o1mlao2c32o1b-16b-32mna"PLAY"o2mla2mnaffgmlf64g64f16f32mne"

PLAY"mlb-2mnb-o1b-mlb-mnamlo2c+mneggmlfmnc+"PLAY"mlemndmld64e64d64p64msl16c+de"

PLAY"mnf8mlo1a8"PLAY"l8o1mlo2c32o1b-16b-32mna"PLAY

"o2mla2mnaffgmlf64g64f16f32mne"PLAY"mlb-2mnb-o1b-mlb-mnamlo2dmnc+mlg4.mnemlemnd"

PLAY"mld64e64d16d32c+mnd4p4"PLAY"t85l24mlo2c4cegb-o3cmneg16.mlf32mne16.d32mlc8mno2b-8"

PLAY"mlb-8mna8mla64b-64a32a8mng+16a4p4"PLAY"mlo1a4ao2c+egamno3c+e8c+8mla8mno2a8mlo3e8mnd8"

PLAY"mll16d64e64d32c+dmnef4f4"PLAY"mlf4o2b-4t78l36b-p36o3efed+efel12gfmne"

PLAY"mle8mno2a8mla4mna8l16mlg+mnab-at70mlo3c16.mnt75o2b-32"

PLAY"t78mll16o2b-64o3c64o2b-32aa64b-64a32mng"PLAY"mlg64a64g32ff64g64f32mne"

PLAY"t76mla4.mnt74e8mlt71e8mnd8mlt67d64e64d32d16mnc+8d4p4"

PLAY"t85l24mlo2c4cegb-o3cmneg16.mlf32mne16.d32mlc8mno2b-8"

PLAY"mlb-8mna8mla64b-64a32a8mng+16a4p4"PLAY"mlo1a4ao2c+egamno3c+e8c+8mla8mno2a8mlo3e8mnd8"

PLAY"mll16d64e64d32c+dmnef4f4"PLAY"mlf4o2b-4t78l36b-p36o3efed+efel12gfmne"

PLAY"mle8mno2a8mla4mna8l16mlg+mnab-at70mlo3c16.mnt75o2b-32"

PLAY"t78mll16o2b-64o3c64o2b-32aa64b-64a32mng"PLAY"mlg64a64g32ff64g64f32mne"

PLAY"t76mla4.mnt74e8mlt71e8mnd8mlt67d64e64d32d16mnc+8d4p4"

PLAY"t170o3msl8do4dp8o3b-p8ap8femnd4msc+mld4mndp8"

PLAY"l16defedefedefedefdmnf8e4msd+8mle4mne8p8"PLAY

"gab-agab-agab-agb-agfgagfgagfgagfagf"PLAY"o2abo3c+defgab-agfedc+emne8d4msc+8"

PLAY"mnd4p4"PLAY"t170o3msl8do4dp8o3b-p8ap8femnd4msc+mld4mndp8"

PLAY"l16defedefedefedefdmnf8e4msd+8mle4mne8p8"PLAY

"gab-agab-agab-agb-agfgagfgagfgagfagf"PLAY"o2abo3c+defgab-agfedc+emne8d4msc+8"

PLAY"mnd4p4"PLAY"t170mll16o3c64d64c64mso2bo3cegb-ge"

PLAY"mll16o3c64d64c64mso2bo3cegb-ge"PLAY"o2b-ab-o3cdefgmla4mna8p8"

PLAY"mlo2b-64a32msg+ao3c+egec+"PLAY"mlo2b-64a32msg+ao3c+egec+"

PLAY"mlo2b-64a32msg+abo3c+dedmlf4mnf8p8"PLAY"msb-agab-agab-agab-agb-agfgagfgagfgagfa"

PLAY"mno2abo3c+defgab-agfedc+emse8mnd4msc+8mnd4p4"

PLAY"t170mll16o3c64d64c64mso2bo3cegb-ge"PLAY"mll16o3c64d64c64mso2bo3cegb-ge"

PLAY"o2b-ab-o3cdefgmla4mna8p8"PLAY"mlo2b-64a32msg+ao3c+egec+"

PLAY"mlo2b-64a32msg+ao3c+egec+"PLAY"mlo2b-64a32msg+abo3c+dedmlf4mnf8p8"

PLAY"msb-agab-agab-agab-agb-agfgagfgagfgagfa"PLAY"mno2abo3c+defgab-agfedc+emse8mnd4msc+8mnd4p4"

PLAY"t105mno4l16d4o3a8.a16mlb8mna8mlg8mnf+8"PLAY"mlf+8mne8t210mle32f+32e64e64e64p64t105mnd+egb2"

PLAY"l8mlb.mnc+16mlc+mno4emle.mno3g16gmsgmlgmnf+"PLAY

"t210mlf+32g32f+64f+64f+64t105mne16d16e16f+2"PLAY"mno4l16d4o3a8.a16mlb8mna8mlg8mnf+8"

PLAY"mlf+8mne8t210mle32f+32e64e64e64p64t100mnd+egb2"

PLAY"l8o4mld.mno3a16aamlbmnaac+mlemndmld64e64d32d32d64p64msc+mnd4p4"

PLAY"t95o5mnl8d4o4a.a16mlbmnamlgmnf+mlf+mnemlemngb2"

PLAY"b.msa16mnaamlo5c+mno4bmlamngmlgmnf+mlf+mnff+2"

PLAY"o5mnl8d4o4a.a16mlbmnamlgmnf+mlf+mnemlemngb2"PLAY

"o5d4o4a.msa16mlt92bmnamlt90amnc+mlt86emndmldmnc+d2"

PLAY"t170mll16o3c64d64c64mso2bo3cegb-ge"PLAY"mll16o3c64d64c64mso2bo3cegb-ge"

PLAY"o2b-ab-o3cdefgmla4mna8p8"PLAY"mlo2b-64a32msg+ao3c+egec+"

PLAY"mlo2b-64a32msg+ao3c+egec+"PLAY"mlo2b-64a32msg+abo3c+dedmlf4mnf8p8"

PLAY"msb-agab-agab-agab-agb-agfgagfgagfgagfa"PLAY"o2abo3c+defgab-ag+ag+abo4c+mnd8p8p4p2"

PLAY"t170o3mnd8o4d4o3b4a4f+8mse8mnd4msc+8mld4mnd8p8"

PLAY"l16msdef+edef+edef+edef+dmnf+8e4msd+8mle4mne8p8"

PLAY"msgabagabagabagbagf+gagf+gagf+gagf+gaf+"PLAY"ef+g+f+ef+g+f+mnef+gf+ef+g+e"

PLAY"a8a4a4a4o2a8"PLAY"t170o3mnd8o4d4o3b4a4f+8mse8mnd4msc+8mld4mnd8p8"

PLAY"l16msdef+edef+edef+edef+dmnf+8e4msd+8mle4mne8p8"

PLAY"l16gabagabagabagbagf+gagf+gagf+gagf+gaf+ed+ef+gf+ga"

PLAY"mlbmnag+ag+abo4c+o4d4p4o3t160a4p4o2d2"使用PLAY语句每个音符从中间隔开一个空格,它们对应的简谱是1

234567CDEFGAB音调用OnO3低音区O4中音区O5高音区也可以用+-控制音调用Pn代表休止符副点用.表示用CDEFGAB

感谢欣赏生活知识,更多生活知识请持续关注我们。

本文地址:https://www.wenxue58.com/zhishi/99805.html