Tik-76.115 Individual Project: Guinea Pig
$Id: sgi.html,v 1.2 1996/04/21 12:30:46 hynde Exp $

Sound Player for Silicon Graphics

The Sound Player was primarily written for Linux with MSND but there's now a version for SGI as well. Even though the SGI version is not our primary target, it actually works better than the primary MSND version, probably because Silicon Graphics actually has built-in support for audio contrary to Linux. Porting the player for SGI was quite easy; it only took a couple of hours to modify the MSND audio code and I hadn't done any SGI audio programming before. It looks like the player is quite portable in practise, too.

The SGI player was developed and tested on SGI Indy and Indigo^2 workstations running IRIX 5.3.

Features

The Sound Player for Silicon Graphics has the following features:
Outputs:
16 bit analog MONO, STEREO or 4-channel output, 24-bit digital MONO or STEREO output.
Sampling rates:
48000, 44100 (default), 32000, 22050, 16000 or 11025 HKz.
Real time priority:
The player can use real time priorities if run as root. (We haven't been able to test this yet because we don't have access to a machine with root privileges)
The SGI player uses internally floating point numbers scaled to the 24-bit range. On output, these values are converted to 24-bit integers which is the native format of the Silicon Graphics Audio system.

The delays that are present in the MSND version are unnoticable in the SGI version. The maximum delay can also be adjusted by changing the size of the buffers the player uses.

Problems

Breaks in audio when swapping:
Another problem which affects other ports too is that there are breaks in audio output when machine has to swap; if the machine starts swapping or paging at critical times there will be breaks in audio output. Possible remedies we could use are: using negative nice values for player, real time priorities, locking pages into memory. Longer buffers can be used but they will increase the delay. This problem isn't too bad because it usually only occurs if the samples are very big or there are other users using the machine at the same time.

We don't have an access to a SGI machine with root privileges so we haven't been able to test the effects of using real time priorities yet.


· Sound player index · Document index · Guinea Pig ·