许多较旧的 BASIC 方言支持使用 PLAY 功能播放声音和音乐。作为参数传递的字符串具有描述注释、它们的持续时间等的特定语法。出于纯粹的学术目的,我正在寻找关于作为参数传递给 PLAY 函数的字符串的精确和最完整语法的文档。通过谷歌搜索,我发现了一些这样的例子:
PLAY "MSe8f#4f#8f#8g8a8b4.a4.g4.f#4.o0b8o1e8e8e4d8e2."
但没有文档。
许多较旧的 BASIC 方言支持使用 PLAY 功能播放声音和音乐。作为参数传递的字符串具有描述注释、它们的持续时间等的特定语法。出于纯粹的学术目的,我正在寻找关于作为参数传递给 PLAY 函数的字符串的精确和最完整语法的文档。通过谷歌搜索,我发现了一些这样的例子:
PLAY "MSe8f#4f#8f#8g8a8b4.a4.g4.f#4.o0b8o1e8e8e4d8e2."
但没有文档。
一个快速的谷歌搜索带来了:
http://en.wikibooks.org/wiki/QBasic/Appendix#PLAY
您需要练习 Google-Fu!
看起来也很标准的乐谱 - 点音符,升号等
为了使这个答案有意义,以防维基书爆炸:
在字符串表达式中忽略空格。还有一些代码可以设置持续时间、八度和速度。它们都是不区分大小写的。PLAY 执行命令或记录它们在字符串中出现的顺序。任何改变属性的指标都对该指标后面的注释有效。
- Ln 设置音符的持续时间(长度)。变量 n 并不表示实际的持续时间量,而是表示音符类型;L1 - 全音符,L2 - 二分音符,L4 - 四分音符等(L8,L16,L32,L64,...)。默认情况下,n = 4。对于三重奏和五重奏,分别使用 L3、L6、L12、... 和 L5、L10、L20、... 系列。还为注释提供了长度的简写符号。例如,
L4 CDE L8 FG L4 AB
可以缩短为L4 CDE F8G8 AB
. F 和 G 演奏八分音符,而其他演奏四分音符。- On 设置当前的八度。n 的有效值是 0 到 6。八度音阶以 C 开头,以 B 结尾。请记住,C- 等价于 B。
- < > 将当前八度音阶分别向下或向上更改一级。
- Nn 在七个八度范围内播放指定的音符。有效值是从 0 到 84。(0 是停顿。)不能与尖锐和平坦一起使用。也不能与速记符号一起使用。
- MN 代表音乐正常。音符持续时间是 Ln 指示的长度的 7/8。这是默认模式。
- ML 代表音乐连奏。音符持续时间是 Ln 指示的全长。
- MS 代表音乐断奏。音符持续时间是 Ln 指示的长度的 3/4。
- Pn 导致指定音符长度的静音(暂停)(与 Ln 相同)。
- Tn 设置每分钟“L4”的数量(速度)。有效值为 32 到 255。默认值为 T120。
- . 当放置在音符之后时,它会使音符的持续时间为设定持续时间的 3/2。这是如何获得“点”笔记。“L4 C#。” 将升 C 作为一个带点的四分音符。它也可以用于暂停。
- MB MF 代表音乐背景和音乐前景。MB 在音乐缓冲区中最多放置 32 个音符,并在执行其他语句时播放它们。非常适合游戏。MF 将 PLAY 模式切换回正常状态。默认为 MF。