3

许多较旧的 BASIC 方言支持使用 PLAY 功能播放声音和音乐。作为参数传递的字符串具有描述注释、它们的持续时间等的特定语法。出于纯粹的学术目的,我正在寻找关于作为参数传递给 PLAY 函数的字符串的精确和最完整语法的文档。通过谷歌搜索,我发现了一些这样的例子:

PLAY "MSe8f#4f#8f#8g8a8b4.a4.g4.f#4.o0b8o1e8e8e4d8e2."

但没有文档。

4

1 回答 1

3

一个快速的谷歌搜索带来了:

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。
于 2013-08-27T09:05:44.047 回答