Home   Archive   Permalink

Beep sound

Someone previously asked how to beep, and I answered with a relatively short piece of code that played a binary encoded wave file by inserting into the REBOL sound port. For very simple needs, this 1 liner works:
call/show "echo ^G"

posted by:   Nick       5-Sep-2012/20:55:01-7:00

Even better:
call/show/wait "echo ^G"

posted by:   Nick       5-Sep-2012/20:57:08-7:00

I used the above code to create the simplest 1-line REBOL timer/stopwatch (this one waits 3 seconds then beeps):
wait 3 call/show/wait "echo ^G"
For more elaborate waiting:
s: now/time until [now/time - s > 00:00:03] call/show/wait "echo ^G"

posted by:   Nick       5-Sep-2012/21:03:17-7:00

User configurable stop watch:
s: request-text/title "Seconds to wait:" wait to-integer s call/show/wait "echo ^G"

posted by:   Nick       5-Sep-2012/21:05:33-7:00

With a count-down:
s: to-integer request-text/title "Seconds to wait:" loop s [print s s: s - 1 wait 1] call/show/wait "echo ^G"

posted by:   Nick       5-Sep-2012/21:09:03-7:00

Shaved a few characters:
s: to-integer ask"Seconds: "loop s[print s s: s - 1 wait 1]call/show/wait"echo ^G"

posted by:   Nick       5-Sep-2012/21:15:33-7:00

I like this version more. It gets permission to run the "call" function first:
call""repeat s 3[print s wait 1]call"echo ^G"
call "" s: to-integer ask "Seconds: " repeat i s [print i wait 1] call "echo ^G"

posted by:   Nick       9-Sep-2012/11:21:42-7:00

Alarm beep goes off 5 times:
call "" s: to-integer ask "Seconds: " repeat i s [print i wait 1] loop 5 [call "echo ^G" wait 1]

posted by:   Nick       9-Sep-2012/11:25:08-7:00

Sound port solution playing a wav file only seems to work under windows and then only as it seems in REBOL SDK version. I'll state/ask this question also on AltMe later today.

posted by:   Arnold       11-Sep-2012/6:47:32-7:00

Sound port works fine in every version of REBOL/View I've tried. What OS and REBOL version are you using?

posted by:   Nick       13-Sep-2012/16:58:03-7:00