回 帖 发 新 帖 刷新版面

主题:让计算机演奏乐曲(一)

让计算机演奏乐曲(一)

教学内容: QB唱名与音高。
教学目标: 1、了解QBASIC的演奏原理。
2、学会音名的表示和音高的控制。
教学过程:
一、QB的演奏原理。
音乐是由各种音符组合演奏而成的,一个音主要由两个方面决定:即音高和音长。
在五线谱中,音高由音符所在位置决定,音长由音符的形状决定;在简谱中音长和音高均由各种符号表示;在QB乐谱中,音高一般由一个字母决定,音长由一个数字决定。一个字母和一个数字构成了一个完整的音符。
QB就是靠识别这些音符来进行演奏乐曲的。
二、QB乐谱基础。
1、音高:
我们用C、D、E、F、G、A、B来表示Do,Re,Mi,Fa,Sol,La,Si;休止用P表示。
演示演奏一下音阶。PLAY“CDEFGAB”
学生操作。
现在我们演奏的是中音,如果要降低或升高一个音阶,我们可以在第一个音前加>或<。
演示:PLAY“>CDEFGAB”
   PLAY“<CDEFGAB”
如果前面是低音,“>”就是中音;
如果前面是中音,“>”就是高音;
如果前面是中音,“<”就是低音;
如果前面是高音,“<”就是中音。
演示:演奏1 2 3 1 2 3 1 2 3
   PLAY“CDE<CDE>>CDE”

回复列表 (共6个回复)

沙发

让计算机演奏乐曲(二)

教学内容: QB音长与其他。
教学目标: 1、掌握音长表示方法。
2、了解升降半音的表示方法。
教学过程:
一、复习。
上一节课,我们学习了音名,音名用什么表示?怎样转换音阶?
我们知道,一首歌的音符长短不一,这就须音长来表示音乐的节奏。
在QB中怎样表示音长呢?
二、新授。
1、音长
一个音的长短表示方法是在音名后加一个数字。
它的规则是全音符用1表示,二分音符用2表示,四分音符用4表示,八分音符用8表示,十六分音符用6表示。
通常我们说这个音发几拍,其实拍数和音长之间有这个关系:音长=4÷拍数,音长越大,音发得越短。
学生处理P135例子。
通常音长为4可省略。
2、附点
在有些乐曲中,有附点音符,在QB中通常采用同样方法表示,在音长后加“.”表示,比如3拍的Do,我们可以用C2.表示。
注意:附点音符改写时,先不看附点把该音符改写,再加附点,而不直接采用“音长=4÷拍数”计算。
练习编写:|5 3 . 1 | 2 - - |
3、升降半音
在音名后加“+”、“—”表示把该音升、降半音。

板凳

PLAY还有一种东西,不知是什么用的
PLAY "X"+VARPTR$(STR1$)

3 楼

这个问题我之前也看到过,搞不明白是什么回事.
好像不是 PLAY ,而是 DRAW 吧

4 楼

PLAY也有

5 楼

'东方红
M$ = "L4CL8C4L2D"
PLAY "C3T120"
PLAY "L4G L8GA L2D X" + VARPTR$(M$)
PLAY "L4GG L8A>C<AG X" + VARPTR$(M$)
PLAY "L4GDCL8<BA L4G<GD L8ED L4C L8<BA>DEDC"
PLAY "DC<BA L2G"
END

6 楼

5 Cls
10 LOCATE 12, 25: Print "ba lei wu qu xi xiao tian e"
20 PLAY "T100"
30 a$ = "O0A8O1E8"
35 PLAY a$ + a$ + a$ + a$
40 For i = 1 To 2
45 If i = 2 Or b = 1 Then GoTo 55
50 PLAY "P8O3C8C8C8": b = 0: GoTo 60
55 PLAY "O2A8O3C8C8C8"
60 PLAY "C8.O2B32O3C32D8C8 "
65 PLAY "O2B8O3D8D8D8D8.C32D32E8D8"
70 PLAY "C8E8A8G#8E8O2B8O3E16D16C16O2B16"
80 PLAY "O2A8O3E8A8G#8O3E8O2B8O3E16D16C16O2B16"
90 Next
100 If b = 1 Then GoTo 230
110 For i = 1 To 2: a = 0
120 PLAY "O2A8O3E8E8E8"
125 PLAY "E8E8A16G16F16E16 "
130 PLAY "D8E4F4C#4D8D8D8D8D8D8D8G16F16E16D16"
140 If a = 1 Then GoTo 180
150 PLAY "C8G8B16A16G16F16E8B8O4D16C16O3B16A16"
160 PLAY "O3G8E8E8E8"
170 a = 1: GoTo 125
180 PLAY "O3C8O2A8B16O3C16D16D#16E8O2E8F16F#16G16G#16"
190 Next
220 b = 1: GoTo 40
230 For i = 1 To 2
240 PLAY "O2A8O3E8D8E16D16C8E8D8E16D16"
250 PLAY "C8E4D4C4O2B8"
260 Next
270 PLAY "O2A8O3G#8A4"
280 End

我来回复

您尚未登录,请登录后再回复。点此登录或注册