Wow, here is haloBASS(TM)! Replaces all Blitz sound commands with ones from BASS and allows you to add EAX effects.
1) Include the two files below.
2) Copy BASS.decls into your userlbs folder.
3) Add an UpdateSound() command in your game loop.
4) Before freeing any entity that might emit noise, use a FreeEntitySound() command.
5) Enable EAX with SetSoundEnvironment(EAX_ENVIRONMENT_GENERIC) or disable it with SetSoundEnvironment(-1)
haloBASS.bb:
Global BASSENABLED=True
Global BASSINITIALIZED
Global BASS_LISTENER
Type Active3dSound
Field sample
Field entity
Field channel
End Type
Function CreateListener(parent,rolloff_factor#=1.0,doppler_scale#=1.0,distance_scale#=1.0)
If Not BASSINITIALIZED InitSound()
If Not BASSINITIALIZED Return
BASS_Set3DFactors distance_scale,rolloff_factor,doppler_scale
If BASS_LISTENER FreeEntity BASS_LISTENER
BASS_LISTENER=CreatePivot()
EntityParent BASS_LISTENER,parent
PositionEntity BASS_LISTENER,0,0,0
Return BASS_LISTENER
End Function
Function InitSound(userdevice=0)
DebugLog "Initializing BASS..."
If Not BASS_Init(userdevice,44100,BASS_DEVICE_3D,0)
BASS_Stop()
BASS_Free()
DebugLog "BASS failed to initialize."
Return False
EndIf
DebugLog "Initializing digital output..."
If Not BASS_Start()
BASS_Stop()
BASS_Free()
DebugLog "Failed to initialize digital output."
Return False
EndIf
BASSINITIALIZED=True
Return True
End Function
Function SetSoundEnvironment(effect,volume#=0.2,decay#=10.0,dampening#=1.0)
If effect=-1
BASS_SetEAXParameters -1,0,0,0
Else
BASS_SetEAXParameters effect,volume,decay,dampening
EndIf
End Function
Function FreeEntitySound(entity)
For Active3dSound.Active3dSound=Each Active3dSound
If Active3dSound\entity=entity
Delete Active3dSound
EndIf
Next
End Function
Function UpdateSound()
If Not BASS_LISTENER Return
pos=CreateBank(12)
rot=CreateBank(12)
vel=CreateBank(12)
front=CreateBank(12)
top=CreateBank(12)
For Active3dSound.Active3dSound=Each Active3dSound
PokeFloat pos,0,EntityX(Active3dSound\entity,1)
PokeFloat pos,4,EntityY(Active3dSound\entity,1)
PokeFloat pos,8,EntityZ(Active3dSound\entity,1)
BASS_ChannelSet3DPosition Active3dSound\channel,pos,rot,vel
Next
PokeFloat pos,0,EntityX(BASS_LISTENER,1)
PokeFloat pos,4,EntityY(BASS_LISTENER,1)
PokeFloat pos,8,EntityZ(BASS_LISTENER,1)
TFormVector 0,0,1,BASS_LISTENER,0
PokeFloat front,0,TFormedX()
PokeFloat front,4,TFormedY()
PokeFloat front,8,TFormedZ()
TFormVector 0,1,0,BASS_LISTENER,0
PokeFloat top,0,TFormedX()
PokeFloat top,4,TFormedY()
PokeFloat top,8,TFormedZ()
BASS_Set3DPosition pos,vel,front,top
FreeBank pos
FreeBank rot
FreeBank vel
FreeBank front
FreeBank top
BASS_Apply3D()
End Function
Function LoadSound(file$)
If Not BASSINITIALIZED InitSound()
If Not BASSINITIALIZED Return
DebugLog "Loading sound "+Chr(34)+file+Chr(34)+"..."
noise=BASS_SampleLoad(0,file,0,0,3,0)
If Not noise
DebugLog "Failed to load sound "+Chr(34)+file+Chr(34)+"."
EndIf
Return noise
End Function
Function Load3DSound(file$)
If Not BASSINITIALIZED InitSound()
If Not BASSINITIALIZED Return
DebugLog "Loading sound "+Chr(34)+file+Chr(34)+"..."
noise=BASS_SampleLoad(0,file,0,0,3,BASS_SAMPLE_3D)
If Not noise
DebugLog "Failed to load sound "+Chr(34)+file+Chr(34)+"."
EndIf
Return noise
End Function
Function EmitSound(sound,entity)
pos=CreateBank(12)
rot=CreateBank(12)
vel=CreateBank(12)
channel=BASS_SamplePlay3D(sound,pos,rot,vel)
For Active3dSound.Active3dSound=Each Active3dSound
If Active3dSound\channel=channel
Delete Active3dSound
EndIf
Next
FreeBank pos
FreeBank rot
FreeBank vel
If channel
Active3dSound.Active3dSound=New Active3dSound
Active3dSound\sample=sound
Active3dSound\entity=entity
Active3dSound\channel=channel
EndIf
End Function
Function PlaySound(sound)
If Not BASSINITIALIZED Return
channel=BASS_SamplePlay(sound)
For Active3dSound.Active3dSound=Each Active3dSound
If Active3dSound\channel=channel
Delete Active3dSound
EndIf
Next
If sound Return channel
End Function
Function FreeSound(sound)
If Not BASSINITIALIZED Return
BASS_SampleFree(sound)
End Function
Const BASS_SAMPLE_FLAGS=8
Function LoopSound(sound)
If Not BASSINITIALIZED Return
bank=CreateBank(60)
BASS_SampleGetInfo(sound,bank)
flags=PeekShort(bank,12)
If Not (BASS_SAMPLE_LOOP And flags)
flags=flags+BASS_SAMPLE_LOOP
PokeShort bank,12,flags
BASS_SampleSetInfo sound,bank
EndIf
FreeBank bank
End Function
BASS_const.bb:
Const BASSTRUE = 1
Const BASSFALSE = 0
Const BASS_OK = 0
Const BASS_ERROR_MEM = 1
Const BASS_ERROR_FILEOPEN = 2
Const BASS_ERROR_DRIVER = 3
Const BASS_ERROR_BUFLOST = 4
Const BASS_ERROR_HANDLE = 5
Const BASS_ERROR_FORMAT = 6
Const BASS_ERROR_POSITION = 7
Const BASS_ERROR_INIT = 8
Const BASS_ERROR_START = 9
Const BASS_ERROR_INITCD = 10
Const BASS_ERROR_CDINIT = 11
Const BASS_ERROR_NOCD = 12
Const BASS_ERROR_CDTRACK = 13
Const BASS_ERROR_ALREADY = 14
Const BASS_ERROR_CDVOL = 15
Const BASS_ERROR_NOPAUSE = 16
Const BASS_ERROR_NOTAUDIO = 17
Const BASS_ERROR_NOCHAN = 18
Const BASS_ERROR_ILLTYPE = 19
Const BASS_ERROR_ILLPARAM = 20
Const BASS_ERROR_NO3D = 21
Const BASS_ERROR_NOEAX = 22
Const BASS_ERROR_DEVICE = 23
Const BASS_ERROR_NOPLAY = 24
Const BASS_ERROR_FREQ = 25
Const BASS_ERROR_NOTFILE = 27
Const BASS_ERROR_NOHW = 29
Const BASS_ERROR_EMPTY = 31
Const BASS_ERROR_NONET = 32
Const BASS_ERROR_CREATE = 33
Const BASS_ERROR_NOFX = 34
Const BASS_ERROR_PLAYING = 35
Const BASS_ERROR_NOTAVAIL = 37
Const BASS_ERROR_DECODE = 38
Const BASS_ERROR_DX = 39
Const BASS_ERROR_TIMEOUT = 40
Const BASS_ERROR_FILEFORM = 41
Const BASS_ERROR_SPEAKER = 42
Const BASS_ERROR_UNKNOWN = -1
Const BASS_DEVICE_8BITS = 1
Const BASS_DEVICE_MONO = 2
Const BASS_DEVICE_3D = 4
Const BASS_DEVICE_LEAVEVOL = 32
Const BASS_DEVICE_NOTHREAD = 128
Const BASS_DEVICE_LATENCY = 256
Const BASS_DEVICE_VOL1000 = 512
Const BASS_DEVICE_FLOATDSP = 1024
Const BASS_DEVICE_SPEAKERS = 2048
Const DSCAPS_CONTINUOUSRATE = 16
Const DSCAPS_EMULDRIVER = 32
Const DSCAPS_CERTIFIED = 64
Const DSCAPS_SECONDARYMONO = 256
Const DSCAPS_SECONDARYSTEREO = 512
Const DSCAPS_SECONDARY8BIT = 1024
Const DSCAPS_SECONDARY16BIT = 2048
Const DSCCAPS_EMULDRIVER = DSCAPS_EMULDRIVER
Const DSCCAPS_CERTIFIED = DSCAPS_CERTIFIED
Const WAVE_FORMAT_1M08 = $1
Const WAVE_FORMAT_1S08 = $2
Const WAVE_FORMAT_1M16 = $4
Const WAVE_FORMAT_1S16 = $8
Const WAVE_FORMAT_2M08 = $10
Const WAVE_FORMAT_2S08 = $20
Const WAVE_FORMAT_2M16 = $40
Const WAVE_FORMAT_2S16 = $80
Const WAVE_FORMAT_4M08 = $100
Const WAVE_FORMAT_4S08 = $200
Const WAVE_FORMAT_4M16 = $400
Const WAVE_FORMAT_4S16 = $800
Const BASS_MUSIC_RAMP = 1
Const BASS_MUSIC_RAMPS = 2
Const BASS_MUSIC_LOOP = 4
Const BASS_MUSIC_FT2MOD = 16
Const BASS_MUSIC_PT1MOD = 32
Const BASS_MUSIC_MONO = 64
Const BASS_MUSIC_3D = 128
Const BASS_MUSIC_POSRESET = 256
Const BASS_MUSIC_SURROUND = 512
Const BASS_MUSIC_SURROUND2 = 1024
Const BASS_MUSIC_STOPBACK = 2048
Const BASS_MUSIC_FX = 4096
Const BASS_MUSIC_CALCLEN = 8192
Const BASS_MUSIC_NONINTER = 16384
Const BASS_MUSIC_FLOAT = $10000
Const BASS_MUSIC_DECODE = $200000
Const BASS_MUSIC_NOSAMPLE = $400000
Const BASS_SAMPLE_8BITS = 1
Const BASS_SAMPLE_FLOAT = 256
Const BASS_SAMPLE_MONO = 2
Const BASS_SAMPLE_LOOP = 4
Const BASS_SAMPLE_3D = 8
Const BASS_SAMPLE_SOFTWARE = 16
Const BASS_SAMPLE_MUTEMAX = 32
Const BASS_SAMPLE_VAM = 64
Const BASS_SAMPLE_FX = 128
Const BASS_SAMPLE_OVER_VOL = 65536
Const BASS_SAMPLE_OVER_POS = 131072
Const BASS_SAMPLE_OVER_DIST = 196608
Const BASS_MP3_SETPOS = 131072
Const BASS_STREAM_AUTOFREE = 262144
Const BASS_STREAM_RESTRATE = 524288
Const BASS_STREAM_BLOCK = 1048576
Const BASS_STREAM_DECODE = $200000
Const BASS_STREAM_META = $400000
Const BASS_STREAM_FILEPROC = $800000
Const BASS_SPEAKER_FRONT = $1000000
Const BASS_SPEAKER_REAR = $2000000
Const BASS_SPEAKER_CENLFE = $3000000
Const BASS_SPEAKER_REAR2 = $4000000
Const BASS_SPEAKER_LEFT = $10000000
Const BASS_SPEAKER_RIGHT = $20000000
Const BASS_SPEAKER_FRONTLEFT = BASS_SPEAKER_FRONT Or BASS_SPEAKER_LEFT
Const BASS_SPEAKER_FRONTRIGHT = BASS_SPEAKER_FRONT Or BASS_SPEAKER_RIGHT
Const BASS_SPEAKER_REARLEFT = BASS_SPEAKER_REAR Or BASS_SPEAKER_LEFT
Const BASS_SPEAKER_REARRIGHT = BASS_SPEAKER_REAR Or BASS_SPEAKER_RIGHT
Const BASS_SPEAKER_CENTER = BASS_SPEAKER_CENLFE Or BASS_SPEAKER_LEFT
Const BASS_SPEAKER_LFE = BASS_SPEAKER_CENLFE Or BASS_SPEAKER_RIGHT
Const BASS_SPEAKER_REAR2LEFT = BASS_SPEAKER_REAR2 Or BASS_SPEAKER_LEFT
Const BASS_SPEAKER_REAR2RIGHT = BASS_SPEAKER_REAR2 Or BASS_SPEAKER_RIGHT
Const BASS_TAG_ID3 = 0
Const BASS_TAG_ID3V2 = 1
Const BASS_TAG_OGG = 2
Const BASS_TAG_HTTP = 3
Const BASS_TAG_ICY = 4
Const BASS_TAG_META = 5
Const BASS_3DMODE_NORMAL = 0
Const BASS_3DMODE_RELATIVE = 1
Const BASS_3DMODE_OFF = 2
Const EAX_ENVIRONMENT_GENERIC = 0
Const EAX_ENVIRONMENT_PADDEDCELL = 1
Const EAX_ENVIRONMENT_ROOM = 2
Const EAX_ENVIRONMENT_BATHROOM = 3
Const EAX_ENVIRONMENT_LIVINGROOM = 4
Const EAX_ENVIRONMENT_STONEROOM = 5
Const EAX_ENVIRONMENT_AUDITORIUM = 6
Const EAX_ENVIRONMENT_CONCERTHALL = 7
Const EAX_ENVIRONMENT_CAVE = 8
Const EAX_ENVIRONMENT_ARENA = 9
Const EAX_ENVIRONMENT_HANGAR = 10
Const EAX_ENVIRONMENT_CARPETEDHALLWAY = 11
Const EAX_ENVIRONMENT_HALLWAY = 12
Const EAX_ENVIRONMENT_STONECORRIDOR = 13
Const EAX_ENVIRONMENT_ALLEY = 14
Const EAX_ENVIRONMENT_FOREST = 15
Const EAX_ENVIRONMENT_CITY = 16
Const EAX_ENVIRONMENT_MOUNTAINS = 17
Const EAX_ENVIRONMENT_QUARRY = 18
Const EAX_ENVIRONMENT_PLAIN = 19
Const EAX_ENVIRONMENT_PARKINGLOT = 20
Const EAX_ENVIRONMENT_SEWERPIPE = 21
Const EAX_ENVIRONMENT_UNDERWATER = 22
Const EAX_ENVIRONMENT_DRUGGED = 23
Const EAX_ENVIRONMENT_DIZZY = 24
Const EAX_ENVIRONMENT_PSYCHOTIC = 25
Const EAX_ENVIRONMENT_COUNT = 26
Const EAX_PRESET_GENERIC = 1
Const EAX_PRESET_PADDEDCELL = 2
Const EAX_PRESET_ROOM = 3
Const EAX_PRESET_BATHROOM = 4
Const EAX_PRESET_LIVINGROOM = 5
Const EAX_PRESET_STONEROOM = 6
Const EAX_PRESET_AUDITORIUM = 7
Const EAX_PRESET_CONCERTHALL = 8
Const EAX_PRESET_CAVE = 9
Const EAX_PRESET_ARENA = 10
Const EAX_PRESET_HANGAR = 11
Const EAX_PRESET_CARPETEDHALLWAY = 12
Const EAX_PRESET_HALLWAY = 13
Const EAX_PRESET_STONECORRIDOR = 14
Const EAX_PRESET_ALLEY = 15
Const EAX_PRESET_FOREST = 16
Const EAX_PRESET_CITY = 17
Const EAX_PRESET_MOUNTAINS = 18
Const EAX_PRESET_QUARRY = 19
Const EAX_PRESET_PLAIN = 20
Const EAX_PRESET_PARKINGLOT = 21
Const EAX_PRESET_SEWERPIPE = 22
Const EAX_PRESET_UNDERWATER = 23
Const EAX_PRESET_DRUGGED = 24
Const EAX_PRESET_DIZZY = 25
Const EAX_PRESET_PSYCHOTIC = 26
Const BASS_SYNC_POS = 0
Const BASS_SYNC_MUSICPOS = 0
Const BASS_SYNC_MUSICINST = 1
Const BASS_SYNC_END = 2
Const BASS_SYNC_MUSICFX = 3
Const BASS_SYNC_META = 4
Const BASS_SYNC_SLIDE = 5
Const BASS_SYNC_MESSAGE = $20000000
Const BASS_SYNC_MIXTIME = $40000000
Const BASS_SYNC_ONETIME = $80000000
Const CDCHANNEL = 0
Const RECORDCHAN = 1
Const BASS_ACTIVE_STOPPED = 0
Const BASS_ACTIVE_PLAYING = 1
Const BASS_ACTIVE_STALLED = 2
Const BASS_ACTIVE_PAUSED = 3
Const BASS_SLIDE_FREQ = 1
Const BASS_SLIDE_VOL = 2
Const BASS_SLIDE_PAN = 4
Const BASS_CDID_IDENTITY = 0
Const BASS_CDID_UPC = 1
Const BASS_CDID_CDDB = 2
Const BASS_CDID_CDDB2 = 3
Const BASS_DATA_AVAILABLE= 0
Const BASS_DATA_FFT512 = $80000000
Const BASS_DATA_FFT1024 = $80000001
Const BASS_DATA_FFT2048 = $80000002
Const BASS_DATA_FFT512S = $80000010
Const BASS_DATA_FFT1024S = $80000011
Const BASS_DATA_FFT2048S = $80000012
Const BASS_DATA_FFT_NOWINDOW = $20
Const BASS_INPUT_OFF = $10000
Const BASS_INPUT_ON = $20000
Const BASS_INPUT_LEVEL = $40000
Const BASS_INPUT_TYPE_MASK = $ff000000
Const BASS_INPUT_TYPE_UNDEF = $00000000
Const BASS_INPUT_TYPE_DIGITAL = $01000000
Const BASS_INPUT_TYPE_LINE = $02000000
Const BASS_INPUT_TYPE_MIC = $03000000
Const BASS_INPUT_TYPE_SYNTH = $04000000
Const BASS_INPUT_TYPE_CD = $05000000
Const BASS_INPUT_TYPE_PHONE = $06000000
Const BASS_INPUT_TYPE_SPEAKER = $07000000
Const BASS_INPUT_TYPE_WAVE = $08000000
Const BASS_INPUT_TYPE_AUX = $09000000
Const BASS_INPUT_TYPE_ANALOG = $0a000000
Const BASS_NET_TIMEOUT = 0
Const BASS_NET_BUFFER = 1
Const BASS_FILEPOS_DECODE = 0
Const BASS_FILEPOS_DOWNLOAD = 1
Const BASS_FILEPOS_END = 2
Const BASS_FILE_CLOSE = 0
Const BASS_FILE_READ = 1
Const BASS_FILE_QUERY = 2
Const BASS_FILE_LEN = 3
Const BASS_OBJECT_DS = 1
Const BASS_OBJECT_DS3DL = 2
Const BASS_VAM_HARDWARE = 1
Const BASS_VAM_SOFTWARE = 2
Const BASS_VAM_TERM_TIME = 4
Const BASS_VAM_TERM_DIST = 8
Const BASS_VAM_TERM_PRIO = 16
Const BASS_3DALG_DEFAULT = 0
Const BASS_3DALG_OFF = 1
Const BASS_3DALG_FULL = 2
Const BASS_3DALG_LIGHT = 3
Const BASS_FX_CHORUS = 0
Const BASS_FX_COMPRESSOR = 1
Const BASS_FX_DISTORTION = 2
Const BASS_FX_ECHO = 3
Const BASS_FX_FLANGER = 4
Const BASS_FX_GARGLE = 5
Const BASS_FX_I3DL2REVERB = 6
Const BASS_FX_PARAMEQ = 7
Const BASS_FX_REVERB = 8
Const BASS_FX_PHASE_NEG_180 = 0
Const BASS_FX_PHASE_NEG_90 = 1
Const BASS_FX_PHASE_ZERO = 2
Const BASS_FX_PHASE_90 = 3
Const BASS_FX_PHASE_180 = 4
BASS.decls:
.lib "dlls\bass.dll"
BASS_ErrorGetCode%() : "BASS_ErrorGetCode"
BASS_Free() : "BASS_Free"
BASS_GetCPU#() : "BASS_GetCPU"
BASS_GetDeviceDescriptionInt%(devnum) : "BASS_GetDeviceDescription"
BASS_GetDSoundObject(object) : "BASS_GetDSoundObject"
BASS_GetGlobalVolumes(musvol*,samvol*,strvol*) : "BASS_GetGlobalVolumes"
BASS_GetInfo(info*) : "BASS_GetInfo"
BASS_GetVersion%() : "BASS_GetVersion"
BASS_GetVolume%() : "BASS_GetVolume"
BASS_Init%(device,freq,flags,win) : "BASS_Init"
BASS_Pause%() : "BASS_Pause"
BASS_SetBufferLength#(length#) : "BASS_SetBufferLength"
BASS_SetCLSID(clsid*) : "BASS_SetCLSID"
BASS_SetGlobalVolumes(musvol,samvol,strvol) : "BASS_SetGlobalVolumes"
BASS_SetLogCurves(volume,pan) : "BASS_SetLogCurves"
BASS_SetNetConfig%(option,value) : "BASS_SetNetConfig"
BASS_SetVolume%(volume) : "BASS_SetVolume"
BASS_Start%() : "BASS_Start"
BASS_Stop%() : "BASS_Stop"
BASS_Update%() : "BASS_Update"
BASS_Apply3D%() : "BASS_Apply3D"
BASS_Get3DFactors%(distf*,rollf*,doppf*) : "BASS_Get3DFactors"
BASS_Get3DPosition%(pos*,vel*,front*,top*) : "BASS_Get3DPosition"
BASS_GetEAXParameters%(env*,vol*,decay*,damp*) : "BASS_GetEAXParameters"
BASS_Set3DAlgorithm(algo) : "BASS_Set3DAlgorithm"
BASS_Set3DFactors%(distf#,rollf#,doppf#) : "BASS_Set3DFactors"
BASS_Set3DPosition%(pos*,vel*,front*,top*) : "BASS_Set3DPosition"
BASS_SetEAXParameters%(env,vol#,decay#,damp#) : "BASS_SetEAXParameters"
BASS_CDDoor%(open) : "BASS_CDDoor"
BASS_CDFree() : "BASS_CDFree"
BASS_CDGetID$(id) : "BASS_CDGetID"
BASS_CDGetTrackLength%(track) : "BASS_CDGetTrackLength"
BASS_CDGetTracks%() : "BASS_CDGetTracks"
BASS_CDInDrive%() : "BASS_CDInDrive"
BASS_CDInit%(drive$,flags) : "BASS_CDInit"
BASS_CDPlay%(track,loop,wait) : "BASS_CDPlay"
BASS_SampleCreate%(length,freg,max,flags) : "BASS_SampleCreate"
BASS_SampleCreateDone%() : "BASS_SampleCreateDone"
BASS_SampleFree(handle) : "BASS_SampleFree"
BASS_SampleGetInfo%(handle,info*) : "BASS_SampleGetInfo"
BASS_SampleLoad%(mem,file$,offset,length,max,flags) : "BASS_SampleLoad"
BASS_SamplePlay%(handle) : "BASS_SamplePlay"
BASS_SamplePlay3D%(handle,pos*,orient*,vel*) : "BASS_SamplePlay3D"
BASS_SamplePlay3DEx%(handle,pos*,orient*,vel*,start,freg,volume,loop) : "BASS_SamplePlay3DEx"
BASS_SamplePlayEx%(handle,start,freg,volume,pan,loop) : "BASS_SamplePlayEx"
BASS_SampleSetInfo%(handle,info*) : "BASS_SampleSetInfo"
BASS_SampleStop%(handle) : "BASS_SampleStop"
BASS_StreamCreate%(freg,flags,proc*,user) : "BASS_StreamCreate"
BASS_StreamCreateFile%(mem,file$,offset,length,flags) : "BASS_StreamCreateFile"
BASS_StreamCreateURL%(url$,offset,flags,save$) : "BASS_StreamCreateURL"
BASS_StreamFree(handle) : "BASS_StreamFree"
BASS_StreamGetFilePosition%(handle,mode) : "BASS_StreamGetFilePosition"
BASS_StreamGetLength%(handle) : "BASS_StreamGetLength"
BASS_StreamGetTagsInt%(handle,tags) : "BASS_StreamGetTags"
BASS_StreamPlay%(handle,flush,flags) : "BASS_StreamPlay"
BASS_StreamPreBuf%(handle) : "BASS_StreamPreBuf"
BASS_MusicFree(handle) : "BASS_MusicFree"
BASS_MusicGetChannelVol%(handle,channel) : "BASS_MusicGetChannelVol"
BASS_MusicGetLength%(handle,playlen) : "BASS_MusicGetLength"
BASS_MusicGetName$(handle) : "BASS_MusicGetName"
BASS_MusicLoad%(mem,file$,offset,length,flags) : "BASS_MusicLoad"
BASS_MusicPlay%(handle) : "BASS_MusicPlay"
BASS_MusicPlayEx%(handle,pos,flags,reset) : "BASS_MusicPlayEx"
BASS_MusicPreBuf%(handle) : "BASS_MusicPreBuf"
BASS_MusicSetAmplify%(handle,amp) : "BASS_MusicSetAmplify"
BASS_MusicSetChannelVol%(handle,channel,volume) : "BASS_MusicSetChannelVol"
BASS_MusicSetPanSep%(handle,pan) : "BASS_MusicSetPanSep"
BASS_MusicSetPositionScaler%(handle,scale) : "BASS_MusicSetPositionScaler"
BASS_RecordFree() : "BASS_RecordFree"
BASS_RecordGetDeviceDescriptionInt%(devnum) : "BASS_RecordGetDeviceDescription"
BASS_RecordGetInfo(info*) : "BASS_RecordGetInfo"
BASS_RecordGetInput%(input) : "BASS_RecordGetInput"
BASS_RecordGetInputNameInt%(input) : "BASS_RecordGetInputName"
BASS_RecordInit%(device) : "BASS_RecordInit"
BASS_RecordSetInput%(input,setting) : "BASS_RecordSetInput"
BASS_RecordStart%(freg,flags,proc*,user) : "BASS_RecordStart"
BASS_ChannelBytes2Seconds#(handle,pos) : "BASS_ChannelBytes2Seconds"
BASS_ChannelGet3DAttributes%(handle,mode*,min*,max*,iangle*,oangle*,outvol*) : "BASS_ChannelGet3DAttributes"
BASS_ChannelGet3DPosition%(pos*,orient*,vel*) : "BASS_ChannelGet3DPosition"
BASS_ChannelGetAttributes%(handle,freq*,volume*,pan*) : "BASS_ChannelGetAttributes"
BASS_ChannelGetData%(handle,buffer*,length) : "BASS_ChannelGetData"
BASS_ChannelGetEAXMix%(handle,mix*) : "BASS_ChannelGetEAXMix"
BASS_ChannelGetFlags%(handle) : "BASS_ChannelGetFlags"
BASS_ChannelGetLevel%(handle) : "BASS_ChannelGetLevel"
BASS_ChannelGetPosition%(handle) : "BASS_ChannelGetPosition"
BASS_ChannelIsActive%(handle) : "BASS_ChannelIsActive"
BASS_ChannelIsSliding%(handle) : "BASS_ChannelIsSliding"
BASS_ChannelPause%(handle) : "BASS_ChannelPause"
BASS_ChannelRemoveDSP%(handle,dsp) : "BASS_ChannelRemoveDSP"
BASS_ChannelRemoveFX%(handle,fx) : "BASS_ChannelRemoveFX"
BASS_ChannelRemoveLink%(handle,cahn) : "BASS_ChannelRemoveLink"
BASS_ChannelRemoveSync%(handle,sync) : "BASS_ChannelRemoveSync"
BASS_ChannelResume%(handle) : "BASS_ChannelResume"
BASS_ChannelSeconds2Bytes%(handle,pos#) : "BASS_ChannelSeconds2Bytes"
BASS_ChannelSet3DAttributes%(handle,mode,min#,max#,iangle,oangle,outvol) : "BASS_ChannelSet3DAttributes"
BASS_ChannelSet3DPosition%(handle,pos*,orient*,vel*) : "BASS_ChannelSet3DPosition"
BASS_ChannelSetAttributes%(handle,freg,volume,pan) : "BASS_ChannelSetAttributes"
BASS_ChannelSetDSP%(handle,proc*,user) : "BASS_ChannelSetDSP"
BASS_ChannelSetEAXMix%(handle,mix#) : "BASS_ChannelSetEAXMix"
BASS_ChannelSetFX%(handle,type) : "BASS_ChannelSetFX"
BASS_ChannelSetLink%(handle,chan) : "BASS_ChannelSetLink"
BASS_ChannelSetPosition%(handle,pos) : "BASS_ChannelSetPosition"
BASS_ChannelSetSync%(handle,type,param,proc*,user) : "BASS_ChannelSetSync"
BASS_ChannelSlideAttributes%(handle,freg,volume,pan,time) : "BASS_ChannelSlideAttributes"
BASS_ChannelStop%(handle) : "BASS_ChannelStop"
BASS_FXGetParameters%(handle,par*) : "BASS_FXGetParameters"
BASS_FXSetParameters%(handle,par*) : "BASS_FXSetParameters"
;.lib "User32.dll"
;GetActiveWindow%() : "GetActiveWindow"
.lib "Kernel32.dll"
RtlMoveMemory1%(Destination*,Source,Length) : "RtlMoveMemory"
;RtlMoveMemory2%(Destination,Source*,Length) : "RtlMoveMemory"
|