Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update Bass.dll to version 2.4.16 or newer (Update: 2.4.17 released October 2022) #1885

Open
Grocel opened this issue Jul 6, 2021 · 5 comments

Comments

@Grocel
Copy link

Grocel commented Jul 6, 2021

This year's update happens to be in the summer this time. But this one got some interesting stuff going on according to the changelog (irrelevant / uninteresting parts removed):

* DirectSound output mix is now generated by BASS (as with WASAPI output and
  on other platforms), losing support for DirectSound-specific features but
  gaining support for all BASS features
	BASS_DEVICE_DSOUND (BASS_Init flag)
* Length trimming
	BASS_POS_END (BASS_ChannelSetPosition mode)
	BASS_SYNC_END (BASS_ChannelSetSync type)
	CUSTLOOP example updated
* Custom loop start positions
	BASS_POS_LOOP (BASS_ChannelSetPosition mode)
	CUSTLOOP example updated
* Length extending
	BASS_ATTRIB_TAIL
	BASS_SYNC_END (BASS_ChannelSetSync type)
* Device reinitialization while retaining BASS channels and 3D settings
	BASS_DEVICE_REINIT (BASS_Init flag)
* Retrieval of a device's activity status
	BASS_IsStarted
* BASS_DEVICE_3D flag is no longer needed to enable 3D support
	BASS_Init
* The "Default" device is now enabled by default on Windows and macOS
	BASS_CONFIG_DEV_DEFAULT (BASS_SetConfig option)
* Default communications device indicator on Windows
	BASS_DEVICE_DEFAULTCOM (BASS_DEVICEINFO flag)
* 3D max distance muting can now be toggled
	BASS_SAMPLE_MUTEMAX (BASS_ChannelFlags flag)
* WASAPI recording on Windows (DirectSound is fallback/optional)
	BASS_CONFIG_REC_WASAPI (BASS_SetConfig option)
	BASS_RecordInit
* Minimum recording buffer reduced to 10ms
	BASS_CONFIG_REC_BUFFER (BASS_SetConfig option)
* Recording data/level retrieval without removing from buffer when not using a RECORDPROC
	BASS_DATA_NOREMOVE (BASS_ChannelGetData flag)
	BASS_LEVEL_NOREMOVE (BASS_ChannelGetLevelEx flag)
* Support for level measurements longer than 1s from decoding channels
	BASS_ChannelGetLevelEx
* Configurable restricted download rate
	BASS_CONFIG_NET_RESTRATE (BASS_SetConfig option)
* Thread-specific internet stream timeout options
	BASS_CONFIG_THREAD (BASS_SetConfig option)
	BASS_CONFIG_NET_TIMEOUT (BASS_SetConfig option)
	BASS_CONFIG_NET_READTIMEOUT (BASS_SetConfig option)
	BASS_StreamCreateURL
* Configured "User-Agent" header can be overridden in custom request headers
	BASS_StreamCreateURL
* Multiple IPs will be tried when available on Linux/Android (already on other platforms)
	BASS_StreamCreateURL
* BASS_STREAM_BLOCK applied automatically on files larger than 2GB
	BASS_StreamCreateURL/FileUser
* Redirected URL retrieval
	BASS_TAG_LOCATION (BASS_ChannelGetTags type)
* Shoutcast metadata is now optional
	BASS_CONFIG_NET_META (BASS_SetConfig option)
	BASS_TAG_META (BASS_ChannelGetTags type)
* Support for a 2nd ID3v2 tag block
	BASS_TAG_ID3V2_2 (BASS_ChannelGetTags type)
* OpenMPT channel name retrieval
	BASS_TAG_MUSIC_CHAN (BASS_ChannelGetTags type)
* Delayed OGG file scanning when prescanning is disabled/impossible
	BASS_ChannelGetLength
	BASS_ChannelSetPosition
	BASS_CONFIG_OGG_PRESCAN (BASS_SetConfig option)
* Faster seeking in large OGG files
	BASS_ChannelSetPosition
* Unified freeing function for all channel types
	BASS_ChannelFree
* User-defined attribute
	BASS_ATTRIB_USER (BASS_ChannelSetAttributeEx option)
* Push stream buffer size limiting
	BASS_ATTRIB_PUSH_LIMIT (BASS_ChannelSetAttribute option)
* Retrieval of a stream's available file data amount
	BASS_FILEPOS_AVAILABLE (BASS_StreamGetFilePosition mode)
* Error code for unsupported URL protocols
	BASS_ERROR_PROTOCOL (BASS_StreamCreateURL error code)
* BASS_ERROR_ALREADY error changed to success in some functions
	BASS_ChannelPause
	BASS_ChannelSetDevice
	BASS_ChannelSetLink
* Improved support for single active input recording devices on Linux
	BASS_RecordGetInputName
	BASS_RecordGetInput
	BASS_RecordSetInput
* Fix for Media Foundation AAC streaming with Windows 10 20H1
	BASS_StreamCreateURL
	BASS_StreamCreateFileUser
* Fix for freeze when freeing a stream after BASS_ChannelSetLink failed with BASS_ERROR_ALREADY on it
	BASS_ChannelSetLink
* "MP3-FREE" version removed (MP3 patents expired)

Apparently there is no mp3-free version from now on, because the mp3 patents expired in 2017. I hope that is not a problem. Other important changes might be the Windows 10 20H1 fix and the BASS_Init changes. I think that should be a fairly easy to Update as like as the other versions (#1549, #1266, #1071). My drop-in-test worked. I'm not sure if a version with the custom fixes is still needed, though.

@WasabiThumb
Copy link

Pretty please!

@Kefta
Copy link

Kefta commented Jun 10, 2023

BASS 2.4.17 was released in October (snipped stuff that didn't apply).

* "Default" recording device on Windows/macOS
	BASS_RecordInit
	BASS_RecordGetDeviceInfo
	BASS_CONFIG_REC_DEFAULT (BASS_SetConfig option)
* Recording continues after device format changes on Windows/macOS
	BASS_RecordStart
	BASS_SYNC_DEV_FORMAT (BASS_ChannelSetSync type)
* DSP volume control
	BASS_ATTRIB_VOLDSP (BASS_ChannelSetAttribute option)
	BASS_ATTRIB_VOLDSP_PRIORITY (BASS_ChannelSetAttribute option)
	RECTEST example updated
* Auto-reconnecting when a download stops before the end
	BASS_StreamCreateURL
* Internet streams use HTTP/1.1 instead of HTTP/1.0
	BASS_StreamCreateURL
* Download callback changing after stream creation
	BASS_ATTRIB_DOWNLOADPROC (BASS_ChannelSetAttributeEx option)
	NETRADIO example updated
* Thread-specific internet/buffered stream download buffer option
	BASS_CONFIG_THREAD (BASS_SetConfig option)
	BASS_CONFIG_NET_BUFFER (BASS_SetConfig option)
	BASS_StreamCreateURL/FileUser
* Internet stream creation never waits for pre-buffering
	BASS_CONFIG_NET_PREBUF_WAIT disabled
	BASS_StreamCreateURL/FileUser
* Stalled stream resumption buffer level defaults to prebuffer level
	BASS_ATTRIB_NET_RESUME (BASS_ChannelSetAttribute option)
* New simplified channel starting/playing function
	BASS_ChannelStart
* Channel remapping fix for various multi-channel source/output combinations
	BASS_ChannelStart/Play
* Support for using common add-on name instead of platform-specific filename in plugin loading
	BASS_PluginLoad
	NETRADIO example updated
* Library filename/path retrieval
	BASS_CONFIG_FILENAME (BASS_GetConfigPtr option)
	PLUGINS and WRITEWAV examples updated
* Device info is still available if reinitialization fails
	BASS_GetInfo
	BASS_DEVICE_REINIT (BASS_Init flag)
* Playback ramping-in/out can be disabled separately
	BASS_ATTRIB_NORAMP (BASS_ChannelSetAttribute option)
* Default playback ramping setting
	BASS_CONFIG_NORAMP (BASS_SetConfig option)
* Error code for when access is denied
	BASS_ERROR_DENIED
	BASS_StreamCreateURL
	BASS_RecordStart
* REAR2 speaker flags renamed/duplicated to SIDE
	BASS_SPEAKER_SIDE/SIDELEFT/SIDERIGHT (BASS_MusicLoad/BASS_StreamCreate/File/URL flags)
* Internet stream support for Linux systems without /etc/services file
	BASS_StreamCreateURL
* Fix for IPv6 addresses in URLs on Windows/Linux/Android
	BASS_StreamCreateURL
* Fix for getting volume changes made externally on Linux
	BASS_GetVolume
	BASS_RecordGetInput

@Grocel
Copy link
Author

Grocel commented Jun 11, 2023

@Kefta Much appreciated. Would love to see this this update patched into the game.

Those points definitely make the deal for me.

* Internet streams use HTTP/1.1 instead of HTTP/1.0
* Auto-reconnecting when a download stops before the end
* Error code for when access is denied
* Fix for IPv6 addresses in URLs on Windows/Linux/Android

Is it better to open up a new issue for this or can we just stick with this one?

@Grocel Grocel changed the title Update Bass.dll to version 2.4.16 Update Bass.dll to version 2.4.16 or newer (Update: 2.4.17 released last October) Jun 11, 2023
@Grocel Grocel changed the title Update Bass.dll to version 2.4.16 or newer (Update: 2.4.17 released last October) Update Bass.dll to version 2.4.16 or newer (Update: 2.4.17 released October 2022) Jun 11, 2023
@Exotic0015
Copy link

Exotic0015 commented Aug 9, 2023

I'd like to add that the current version of libbass.so included in the linux native build of Garry's Mod x86-64 does not work as of today, manually updating to the latest upstream version fixes the issue.

@Grocel
Copy link
Author

Grocel commented Dec 12, 2023

I will the leave feedback from Rubat on Discord here, for everyone wondering about the state of this issue. Apparently there are some issues on Un4seen's (the company behind BASS) side requiring additional developer contactings / extra debugging delaying Rubat from updating it.

Discord_2023-12-13_00-47-44

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants