Работа со звуком



BEEP: <длительность_в_мс> <частота_гц>

Подает звуковой сигнал через встроенный динамик. Пользователь может задать длительность сигнала в миллисекундах и частоту в герцах.

Пример:

\ пищим пол секунды с частотой 500 гц
BEEP: 500 500

Можно использовать вариант слова BEEP с постфиксным расположением параметров, чтобы брать значения длительности и частоты звука прямо со стека:

<длительность_в_мс> <частота_гц> BEEP

Это позволяет делать любопытные звуковые эффекты и озвучивать ими разнообразные события.

Примеры:

10 1 DO 100 I 100 * BEEP LOOP
50 3000 DO 
30 I BEEP I 17 / NEGATE
+LOOP

MIXER+ ( % -- )

Постфиксное слово, которое увеличивает или уменьшает громкость звука (апплет Volume Control) на заданное количество процентов. Чтобы увеличить громкость звука задайте в качестве аргумента положительное значение, а чтобы уменьшить громкость - задайте отрицательное значение. Узнать текущее значение громкости вам поможет слово MIXER-VOLUME@.

Примеры:

\ увеличиваем значение громкости на 10%
10 MIXER+
\ уменьшаем значение громкости на 30%
-30 MIXER+

MIXER-DOWN ( % -- )
MIXER-UP ( % -- )

Постфиксные слова для уменьшения/увеличения громкости звука (апплет Volume Control) на указанное количество процентов. Узнать текущее значение громкости вам поможет слово MIXER-VOLUME@.

Примеры:

\ увеличиваем значение громкости на 10%
10 MIXER-UP
\ уменьшаем значение громкости на 30%
30 MIXER-DOWN

MIXER-MUTE
MIXER-UNMUTE

Постфиксные слова для включения/отключения (mute/unmute) звука (апплет Volume Control).


MIXER-STATE ( -- ? )

Постфиксное слово, которое возвращает флаг TRUE (-1) если звук сейчас включен (чекбокс Mute в апплете Volume Control не установлен) и флаг FALSE (0) если звук выключен (чекбокс Mute в апплете Volume Control установлен).

Пример:

\ включаем звук если он был выключен
\ и увеличиваем громкость на 50%
MIXER-STATE 0=
IF
    MIXER-UNMUTE
THEN
50 MIXER-UP

MIXER-VOLUME! ( % -- )

Постфиксное слово, которое устанавливает громкость (апплет Volume Control) соответственно полученному аргументу (в процентах).

Примеры:

\ установить значение громкости на уровне 10%
10 MIXER-VOLUME!
\ установить значение громкости на уровне 90%
90 MIXER-VOLUME!

MIXER-VOLUME@ ( -- % )

Постфиксное слово, которое кладет на стек текущее значение громкости (апплет Volume Control) в процентах.

Пример:

\ выводим текущее значение громкости на консоль:
MIXER-VOLUME@ . CR

PLAY-SOUND: "path_of_wav_file"

Воспроизводит wav-файл асинхронно: выполнение задачи не приостанавливается до окончания воспроизведения wav-файла.

Пример:

#( test_play_sound
NoActive
Action:
    PLAY-SOUND: "c:\my.wav"
)# 

PLAY-SOUNDW: "path_of_wav_file"

Воспроизводит wav-файл синхронно: выполнение задачи приостанавливается до окончания воспроизведения wav-файла.

Пример:

#( test_play_soundw
NoActive
Action:
    PLAY-SOUNDW: "c:\my.wav"
    \ ... следующая строка будет выполнена только
\ после окончания воспроизведения wav-файла

)#