NAME¶
SAMPLE - Stores sound data. Allegro game programming library.
SYNOPSIS¶
#include <allegro.h>
typedef struct SAMPLE
DESCRIPTION¶
int bits; - 8 or 16
int stereo; - sample type flag
int freq; - sample frequency
int priority; - 0-255
unsigned long len; - length (in samples)
unsigned long loop_start; - loop start position
unsigned long loop_end; - loop finish position
void *data; - raw sample data
A sample structure, which holds sound data, used by the digital sample routines.
You can consider all of these fields as read only except priority, loop_start
and loop_end, which you can change them for example after loading a sample
from disk.
The priority is a value from 0 to 255 (by default set to 128) and controls how
hardware voices on the sound card are allocated if you attempt to play more
than the driver can handle. This may be used to ensure that the less important
sounds are cut off while the important ones are preserved.
The variables loop_start and loop_end specify the loop position in sample units,
and are set by default to the start and end of the sample.
If you are creating your own samples on the fly, you might also want to modify
the raw data of the sample pointed by the data field. The sample data are
always in unsigned format. This means that if you are loading a PCM encoded
sound file with signed 16-bit samples, you would have to XOR every two bytes
(i.e. every sample value) with 0x8000 to change the signedness.
SEE ALSO¶
load_sample(3alleg4),
exsample(3alleg4)