GSI: General sound interface; overview (0.8.x & 0.9.x)
- gsi_server (plays samples, music, cd's, sets mixer volumes etc for clients)
- libgsi (gsi_interface.c) [ client's interface to the server ]
- libgsif [ sample/song identifying, loading, conversion, saving ]
From GSI 0.9 on:
- libgsipcm [ hardware abstraction ]
- libgsimixer [ hardware abstraction ]
- libgsisynth [ hardware abstraction ]
- libgsicd [ hardware abstraction ]
- libgsicddb [ cd database functions: add entry, get entry etc.; not yet implemented ]
- gsifile (music & sample file information and format conversion)
- gsiplay (client to gsi_server; sends commands to play music, samples, cd's, and set the mixer)
- easy to use API
- NAS uses the NAS server with a GSI-NAS interface file, and for other underlying API's: GSI interface + gsi_server.
- applications can use the server at the same time through the use of sockets. But, the server will NOT hog the PCM/SYNTH device when not used by any program (thus removing the problems that all other servers have, i.e. when you want to run a program that doesn't know about the server, you can do so without killing the server).
- PCM: (not for NAS): the PCM device can be set at mono/stereo, 8/16 bits/8bit mulaw, any rate.
- PCM: sounds are converted from any speed/bytes/channels (linear or mulaw) to the PCM device's speed/bytes/channels.
- PCM: up to 256 simultaneous sounds playing per client.
- PCM: up to 256 slots (sounds) loaded per client at any one time
- PCM: overwriting/looping/killing of sounds
- PCM 2d/3d: (not for NAS) automatic moving of sounds (dx, dz, dy), or adjust position whenever wanted (for NAS, only volume changes, no stereo effects)
- PCM 3d: sound volume decreases with distance (z,x,y)
- PCM 2d/3d: (not for NAS) doppler on/off setting
- SYNTH: Music playing on ultra project, OSS (GUS/OPL2/OPL3/AWE32/EXT_MIDI, although external midi cannot be selected at this time).
- CD: cd playing/ejecting on linux and *BSD (tested on linux/OpenBSD)
- CD: For multi slot cd changers: cd changing on linux (ioctl's to do this on OpenBSD aren't available yet)
- set stereo base width (0-256, 0=mono, 256=maximal stereo effect)
- FILE: Supported sample file formats: .au, .aiff/aifc, .voc, .wav.
- FILE: Supported music file formats: MIDI, HMP, MUS.
© 1998,1999 WHS