跳转到内容

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

来自维基教科书,自由的教科书

SOUND <frequency>

[编辑 | 编辑源代码]

SOUND pitch,duration [,[volume][,async]]

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

pitch 以每秒循环数表示频率。您指定的频率将转换为最接近的“MIDI 音符值”,这将确定实际播放的音符。中间“C”对应于 261.625 的频率。

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

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

如果 async_zTrue,声音将异步播放。如果 async_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>

华夏公益教科书