Skip to main content

Beeps, Bells and Sound with Anzio

Introduction

While "sounds" other than a keyboard beep are not really part of terminal emulation, they are a part of Windows and provide some unique opportunities. Currently Anzio supports sound from two standpoints, the common ""beep" or "bell" that may be issued from the host, and the ability to play a sound file located on the PC.

Anzio Lite and AnzioWin 12.4 or later

WIth version 12.4 or later, we added an additional feature in our Advanced Options to handle the common terminal beep (see the Edit:Advanced Options dialog and the General tab). With this you can specify either the pitch, the system sound or the PC Speaker as the source.

It is common for newer PCs to already have built in sound cards. But what if there are no speakers available. How do you redirect the sound? Here you can change the beep to use the PC Speaker and, even without speakers, it will attempt to use the motherboard's PC speaker, if one exists.

The host "bell"

There are several variables dealing with the host-issued "bell", so the fastest and best way to demonstrate these is with a structured Pseudo-code:

On receipt of a BELL character (07)       

If 32-bit version of Anzio            

   Do messagebeep(0)       

else       

if PITCH = 0            

   Do messagebeep(0)       

else            

   turn hardware sound on for 50 ms at PITCH.

PITCH is set with the PITCH command, at the Function prompt; for instance:


PITCH 440

Messagebeep(0) is a Windows call, which puts out a "system" beep. If you have a sound board, the Windows control panel lets you associate any WAV file with the system beep.

It's all kind of a mess, for historical reasons. Maybe it's time we took another look at it.

Playing a sound file

There is also a way that a host program (or shell script) can send Anzio a command to play a specific sound (WAV file). The command is

PLAYSOUND

and like any Anzio command, it can be sent from the host be prefixing it with hex 1C (octal 34) and postfixing it with hex 1D (octal 35). Thus the command at the UNIX shell level:

printf "\034playsound hello.wav\035"

In addition to the above, you can also instruct Anzio to "start" a particular sound file. By doing this, you let Windows decide the sound device to use to play the sound. As an example, you could set up a shell script at the host to play Windows canyon.mid file through the default MIDI player:

printf "\034winstart c:\\\\windows\\\\media\\\\canyon.mid\035"

Conclusion

We would be interested in hearing what you are trying to accomplish, and we might be able to offer some further assistance. Write us at rsi@anzio.com.

Copyright © 2020 Rasmussen Software, Inc. Legal Information & Privacy Policy
Send comments and suggestions to rsi@anzio.com