The OS/2 amplifier-mixer (ampmix) device is similar to a home stereo amplifier-mixer. Components are plugged into the amplifier-mixer so that audio signals can be transferred to a pair of attached speakers, headphones, or perhaps another device. A comparable example of connecting to another device is playing an old phonograph record, and recording the sound on a new DAT (Digital Audio Tape) deck. The ampmix is the center of all audio signals and provides input or output switching and sound shaping services such as volume, treble, or bass control.
The logical ampmix device in OS/2 supports both analog and digital devices. Other OS/2 multimedia logical devices may be connected to the ampmix device. Similar to the previous example, the CD audio logical device could provide an analog input to the ampmix device, which could then be recorded by the digital waveform audio device.
Both a logical ampmix device and the audio adapter performs all the functions surfaced by the ampmix device. Two important points are the speaker and amp stream connectors.
Although there is actually no visible speaker jack on the back of the audio card, it is a convenient fiction for an application to view the PC internal speaker as another set of speakers that might be plugged into the back of the audio card. Using the previously defined concept of a connector, an application can view all flows of information into and out of the ampmix device in a similar fashion. Selecting the internal speaker as opposed to the external speakers may require the ampmix device to issue a completely different set of instructions to the actual hardware device. The application, however, remains completely device independent.
The other features of the ampmix device are provided by either issuing commands to the hardware device, or emulating in software. One example of software emulation is the support of changing the volume over a period of time, or fade in/fade out. The audio card may only support setting the volume to a particular value, however the ampmix device can send a series of values to achieve the fade effect.