The module gm_bass was originally made by AzuiSleet and got major edited by me with his permission.
Gm_bass2, as used in this addon, hooks into a third party sound engine called BASS by the un4seen organization and its plug-ins.
Using this module will make you able to stream various formats of sound and play them as 3d world sound.
Why did you edit it and what did you change?
My changes are:
- You can use gm_bass2 shared now! (This means it can also be used to get stream informations serverside while it is also used clientside.)
- Added AAC, FLAC, MOD support.
- Added support for the filesystem of GMod.
- Improved the GMod Window check, so you can also use it on a dedicated server.
- Warning: It's not compatible with the old gm_bass any more! Read the SVN Change logs or this thread for more infos.
- Renamed almost all functions, please read the documentation below. (old names are still there, but not forever)
- Made BASS always silent serverside.
- Updated the bass and plug-in libraries.
- Changed error outputs on loading errors.
- Changed sound fading.
Added:
- channel:IsValid(), channel:IsPaused() and channel:channel:IsStalled().
- string = BASS.DecodeErrorCode(number), gives out the description of an error code.
- table = BASS.Plugins, it's a table of the loaded plugins. The key is the name and the value is the version.
- two optional boolean arguments to BASS.StreamFile(), the 1st one is for 3d playing (false/nil = on) and the 2nd is for loop playing (true = on).
- a optional boolean argument to BASS.StreamFileURL(), it is for 3d playing (false/nil = on).
- a optional bool argument to channel:Play(), true makes the channel restart.
- all fft* function BASS supports
- Changed how are the channel:fft*() functions are working, it takes a table that gets changed now, instead of creating a new one each time.
- number = BASS.Version, that's number of the BASS version.
- number = channel:getfrequency(), that returns the sample rate in Hz.
- number = channel:getsample(), that returns the sample size in Bit.
- string = channel:gettype(), that returns the format as a string.
- number = channel:getvolume(), that returns the volume. (clientside)
- Added nil = channel:set3dfadedistance(number distance), sets the distance the sound begins to fade. (clientside)
- Added nil = channel:set3dcone(number innerangle, number outerangle, number outvolume)
- Sets the cone of the sound, in the inner angle the sound is played at max volume, out of the outerangle the sound is played at the given (outvolume) volume. (clientside)
Removed:
- BASS.SetPosition() serverside.
- channel:setvolume() serverside.
- channel:channel_set3dposition() serverside.
- the 2nd argument of BASS.StreamFile(), it was a number that set the time offset. It never worked and could cause crashes.
Documentation:
gm_bass_documentation.html
Downloads:
Windows Binarys (Source included)
Todo:
1. Put the extern modules (bass.dll, tags.dll, etc) elsewhere or in gm_bass2 to improve the installation to be easier.
2. Find someone who is able and willing to do Mac an Linux compiles. I can't do it my self, because I don't know, want or own Linux or MacOS.
These dlls go next to the hl2.exe, they are the BASS sound engine (I hate that these dlls are extern.)

Register
Events
Popular
More
Post #1




Winner x 10
Lua King x 3
Dumb x 1
Optimistic x 1
Lua Helper x 1
Disagree x 1
Agree x 3
Funny x 2

Informative x 1
Friendly x 1
Useful x 1
Late x 1