BASS_SAMPLE structure

Used with BASS_SampleGetInfo and BASS_SampleSetInfo to retrieve and set the default playback attributes of a sample.

typedef struct {
    DWORD freq;
    float volume;
    float pan;
    DWORD flags;
    DWORD length;
    DWORD max;
    DWORD origres;
    DWORD chans;
    DWORD mingap;
    DWORD mode3d;
    float mindist;
    float maxdist;
    DWORD iangle;
    DWORD oangle;
    float outvol;
    DWORD vam;
    DWORD priority;


freqDefault sample rate.
volumeDefault volume... 0 (silent) to 1 (full).
panDefault panning position... -1 (full left) to +1 (full right), 0 = centre.
flagsA combination of these flags.
BASS_SAMPLE_8BITS8-bit resolution. If neither this or the BASS_SAMPLE_FLOAT flags are present, then the sample is 16-bit.
BASS_SAMPLE_FLOAT32-bit floating-point.
BASS_SAMPLE_3DThe sample has 3D functionality enabled.
BASS_SAMPLE_MUTEMAXMute the sample when it is at (or beyond) its max distance (3D samples only).
BASS_SAMPLE_OVER_VOLOverride: the channel with the lowest volume is overridden.
BASS_SAMPLE_OVER_POSOverride: the longest playing channel is overridden.
BASS_SAMPLE_OVER_DISTOverride: the channel furthest away (from the listener) is overridden (3D samples only).
lengthThe length in bytes.
maxMaximum number of simultaneous playbacks.
origresThe original resolution (bits per sample)... 0 = undefined. If the original sample format is floating-point, then the BASS_ORIGRES_FLOAT flag will be set and the number of bits will be in the LOWORD.
chansNumber of channels... 1 = mono, 2 = stereo, etc.
mingapMinimum time gap in milliseconds between creating channels using BASS_SampleGetChannel. This can be used to prevent flanging effects caused by playing a sample multiple times very close to each other. The default setting, after loading/creating a sample, is 0 (disabled).
The following are the sample's default 3D attributes (if the sample is 3D).
mode3dThe 3D processing mode... one of these flags.
BASS_3DMODE_NORMALNormal 3D processing.
BASS_3DMODE_RELATIVEThe sample's 3D position (position/velocity/orientation) is relative to the listener. When the listener's position/velocity/orientation is changed with BASS_Set3DPosition, the sample's position relative to the listener does not change.
BASS_3DMODE_OFFTurn off 3D processing on the sample, the sound will be played in the centre.
mindistThe minimum distance. The sample's volume is at maximum when the listener is within this distance.
maxdistThe maximum distance. The sample's volume stops decreasing when the listener is beyond this distance.
iangleThe angle of the inside projection cone in degrees... 0 (no cone) to 360 (sphere).
oangleThe angle of the outside projection cone in degrees... 0 (no cone) to 360 (sphere).
outvolThe delta-volume outside the outer projection cone... 0 (silent) to 1 (full).


When a sample has 3D functionality, the iangle and oangle angles decide how wide the sound is projected around the orientation angle (as set via BASS_ChannelSet3DPosition). Within the inside angle the volume level is the level set in the volume member (or the BASS_ATTRIB_VOL attribute when the sample is playing). Outside the outer angle, the volume changes according to the outvol value. Between the inner and outer angles, the volume gradually changes between the inner and outer volume levels. If the inner and outer angles are 360 degrees, then the sound is transmitted equally in all directions.

See also

BASS_SampleCreate, BASS_SampleGetInfo, BASS_SampleLoad, BASS_SampleSetInfo