Futurebasic/语言/参考/声音频率
外观
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>