跳转到内容

Futurebasic/语言/参考/声音频率

来自维基教科书,开放的书籍,开放的世界

SOUND <频率>

[编辑 | 编辑源代码]

SOUND 音高,持续时间 [,[音量][,异步]]

此语句播放给定音高、持续时间和音量的音调。

音高 以每秒循环次数表示。您指定的频率将转换为最接近的“MIDI 音符值”,该值确定实际演奏的音符。中音“C”对应于 261.625 的频率。

持续时间 以滴答表示,范围为 0 到 32,767。但是,工具箱声音命令需要 FB 将滴答转换为整数以表示半毫秒。这意味着您只能播放不超过 32.8 秒的音符。

音量 范围为 0 到 127。指定 0 将导致静音,而 127 将以“声音”控制面板中指定的最大音量播放声音。如果您省略此参数,它将被视为 127。

如果 异步_zTrue,则声音将异步播放。如果 异步_false,或者您省略了参数,则声音将同步播放。当您异步播放时,您的程序会立即开始执行下一条语句,同时声音在后台播放。当您同步播放时,程序中的下一条语句只有在声音播放完毕后才会执行。

如果您正在异步播放音符,并且在另一个声音仍在后台播放时执行了第二个 SOUND 语句,则新声音只有在第一个声音结束后才会开始播放。请注意,在某些机器上,这种技术会导致声音丢失。异步播放时,最好使用 SOUND% 函数来确定一个声音何时结束,然后再尝试播放下一个声音。

播放声音频率的一种方法是使用负数(从 -1 到 -127)来表示您希望播放的音符。下表显示了如何使用这些值。

图片在这里

使用 MIDI 表格作为指南,我们可以创建“小兔子乖乖”的版本,如下所示

<code><b>PRINT</b> "Pop! "; : <b>SOUND</b> -70, 45 ,,_false<br>
<b>PRINT</b> "Goes "; : <b>SOUND</b> -64, 30 ,,_false<br>
<b>PRINT</b> "the "; : <b>SOUND</b> -67, 15 ,,_false<br>
<b>PRINT</b> "wea"; : <b>SOUND</b> -66, 40 ,,_false<br>
<b>PRINT</b> "sel "; : <b>SOUND</b> -62, 45 ,,_false</code>

SOUND%; SOUND END; SOUND<snd>

华夏公益教科书