BASS Changelog

What's new in BASS 2.4.17

Oct 12, 2022
  • "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_ATTRIB_VOLDSP_PRIORITY
  • 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)
  • Switch to dynamic library/framework (rather than static) on iOS
  • BASS_PluginLoad
  • Recording routing audio session options on iOS
  • BASS_IOS_SESSION_AIRPLAY/BTHFP/BTA2DP (BASS_CONFIG_IOS_SESSION flags)
  • Audio session deactivation when nothing is playing/recording on iOS
  • BASS_IOS_SESSION_DEACTIVATE (BASS_CONFIG_IOS_SESSION flag)
  • Interrupted status retrieval on iOS
  • BASS_IsStarted
  • Floating-point recording support below Android 5 (already supported above)
  • BASS_RecordStart
  • 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
  • MacOS version now uses "@rpath" instead of "@loader_path" install path
  • ARM builds are now included (instead of separate) on Linux
  • Non-FPU ARM architecture support dropped (Windows CE and "softfp" Linux)
  • SSE is required on x86 platforms (Windows 95 dropped)

New in BASS 2.4.16 (Jun 24, 2021)

  • 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)
  • Sample channel "newonly" option changed to a flag:
  • BASS_SAMCHAN_NEW (BASS_SampleGetChannel flag)
  • Sample playback streams:
  • BASS_SAMCHAN_STREAM (BASS_SampleGetChannel flag)
  • BASS_CTYPE_STREAM_SAMPLE
  • Speaker assignment support for samples:
  • BASS_SampleGetChannel
  • BASS_ChannelFlags
  • Overriding of default flags during sample channel creation:
  • BASS_SampleGetChannel
  • Same sample channel handle when max=1 is now optional:
  • BASS_CONFIG_SAMPLE_ONEHANDLE (BASS_SetConfig option)
  • 3D max distance muting can now be toggled:
  • BASS_SAMPLE_MUTEMAX (BASS_ChannelFlags flag)
  • Plugin disabling without affecting existing streams:
  • BASS_PluginEnable
  • 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 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
  • Support for custom file streaming with Android Media codecs:
  • BASS_StreamCreateFileUser
  • Switch to using native APIs for Android Media codecs (Android 5 or above required now):
  • BASS_StreamCreateFile/User/URL
  • BASS_TAG_AM_MIME value changed to fix conflict on Android:
  • BASS_TAG_AM_MIME (BASS_ChannelGetTags type)
  • Improved support for single active input recording devices on Linux:
  • BASS_RecordGetInputName
  • BASS_RecordGetInput
  • BASS_RecordSetInput
  • Automatic resumption of recordings after an interruption on iOS
  • 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
  • MacOS examples rewritten in Objective-C/Cocoa
  • "MP3-FREE" version removed (MP3 patents expired)
  • Armv5 (armeabi) architecture support dropped on Android

New in BASS 2.4.8 (Apr 12, 2012)

  • Support for Media Foundation codecs on Windows 7 and updated Vista
  • BASS_StreamCreateFile/User/URL
  • BASS_TAG_MF (BASS_ChannelGetTags type)
  • PLUGINS example updated
  • Built-in support for MP4 tags on Win32/OSX/iOS (for Media Foundation & CoreAudio AAC/ALAC codecs)
  • BASS_TAG_MP4 (BASS_ChannelGetTags type)
  • WAVE format chunk retrieval
  • BASS_TAG_WAVEFORMAT (BASS_ChannelGetTags type)
  • Adjustable sample channel limit
  • BASS_SampleSetInfo
  • Per-channel CPU usage monitoring
  • BASS_ATTRIB_CPU (BASS_ChannelGetAttribute option)
  • Pre-allocation of push stream queue space
  • BASS_StreamPutData
  • Support for AIFF files with the data chunk before the format info chunk
  • BASS_StreamCreateFile/User/URL
  • Ramping-in disabled for all but the XM format (and MODs in FT2 mode) in "normal" ramping mode
  • BASS_MUSIC_RAMP (BASS_MusicLoad flag)
  • RIFF "INFO" tag reading fix
  • BASS_TAG_RIFF_INFO (BASS_ChannelGetTags type)
  • OSX 10.7 compatibility fix
  • x86_64 architecture support on OSX
  • Delphi dynamic loading unit removed (now available as separate download)

New in BASS 2.4.7 (Apr 12, 2012)

  • Decode-to-position seeking
  • BASS_POS_DECODETO (BASS_ChannelSetPosition flag)
  • Support for RIFF "DISP" text tags
  • BASS_TAG_RIFF_DISP (BASS_ChannelGetTags type)
  • Support for APEv1 tags
  • BASS_TAG_APE (BASS_ChannelGetTags type)
  • BASS_TAG_APE_BINARY (BASS_ChannelGetTags type)
  • 16384 sample FFT
  • BASS_DATA_FFT16384 (BASS_ChannelGetData flag)
  • Support for AIFF files larger than 4GB
  • BASS_StreamCreateFile/User/Url
  • Acceptance of self-signed and invalid certificates
  • BASS_StreamCreateURL
  • Internet stream reading timeout
  • BASS_CONFIG_NET_READTIMEOUT
  • Support for removing a DSP within its DSPPROC
  • BASS_ChannelRemoveDSP
  • Buffer bypassing for lower latency output (not available on Windows)
  • BASS_ATTRIB_NOBUFFER (BASS_ChannelSetAttribute option)
  • SYNTH example added (OSX)
  • A "Default" device that follows default device changes on Windows 7
  • BASS_CONFIG_DEV_DEFAULT (BASS_SetConfig option)
  • Xcode examples project added for OSX
  • Documentation updated with platform-specific info for iOS/Linux/WinCE

New in BASS 2.4.6 (Apr 12, 2012)

  • Support for APEv2 tags, including binary
  • BASS_TAG_APE (BASS_ChannelGetTags type)
  • BASS_TAG_APE_BINARY (BASS_ChannelGetTags type)
  • Unicode/IDN URL support
  • BASS_StreamCreateURL
  • Decoding position retrieval
  • BASS_POS_DECODE (BASS_ChannelGetPosition flag)
  • Support for OGG 6/7.1 channel configs
  • BASS_StreamCreateFile/User/Url
  • Support for setting syncs within mixtime SYNCPROCs
  • BASS_ChannelSetSync
  • Support for setting additional DSP/FX within DSPPROCs
  • BASS_ChannelSetDSP/FX
  • DC bias removal in FFT processing
  • BASS_DATA_FFT_REMOVEDC (BASS_ChannelGetData flag)
  • Fix for incorrect (2x) return value when getting FFT data from a 16-bit channel
  • BASS_ChannelGetData
  • Fix for incorrect (STOPPED instead of PAUSED) channel status following BASS_Pause
  • BASS_ChannelIsActive

New in BASS 2.4.5 (Apr 12, 2012)

  • Support for little-endian AIFF files
  • BASS_StreamCreateFile/User/Url
  • BASS_SampleLoad
  • Support for 64-bit floating-point WAVE/AIFF files
  • BASS_StreamCreateFile/User/Url
  • BASS_SampleLoad
  • Input volume retrieval failure results in a reading of -1 instead of 1
  • BASS_RecordGetInput
  • RECTEST example updated
  • Input volume support on OSX
  • BASS_RecordSetInput
  • BASS_RecordGetInput
  • RECTEST example updated
  • Fix for deferred input settings on Vista
  • BASS_RecordSetInput
  • Windows MP3 codec given preference over other installed MP3 codecs (MP3-FREE version)
  • BASS_StreamCreateFile/User/Url
  • BASS_SampleLoad

New in BASS 2.4.4 (Apr 12, 2012)

  • RIFF/BWF "radio traffic" tag retrieval
  • BASS_TAG_RIFF_CART (BASS_ChannelGetTags type)
  • TAG_CART structure
  • Support for ID3v2 tags in RIFF/WAVE/AIFF files ("ID3 " chunk)
  • BASS_TAG_ID3V2 (BASS_ChannelGetTags type)
  • Pushed fractional samples are refused rather than discarded
  • BASS_StreamPutData
  • DX8 effect emulation on OSX
  • BASS_FX_DX8_CHORUS/DISTORTION/ECHO/FLANGER/PARAMEQ/REVERB (BASS_ChannelSetFX types)
  • FXTEST example added
  • UTF-16 support on OSX
  • BASS_UNICODE (BASS_StreamCreateFile/SampleLoad/MusicLoad/PluginLoad flag)

New in BASS 2.4.3 (Apr 12, 2012)

  • MOD order list retrieval
  • BASS_TAG_MUSIC_ORDERS (BASS_ChannelGetTags type)
  • Support for ID3v2 tags in RIFF/WAVE files ("id3 " chunk)
  • BASS_TAG_ID3V2 (BASS_ChannelGetTags type)
  • Improved position reporting precision on Vista
  • BASS_ChannelGetPosition
  • Length retrieval when streaming in blocks (BASS_STREAM_BLOCK)
  • BASS_ChannelGetLength
  • Support for CoreAudio codecs on OSX
  • BASS_StreamCreateFile/User
  • BASS_SampleLoad
  • BASS_TAG_CA_CODEC (BASS_ChannelGetTags type)
  • TAG_CA_CODEC structure
  • 3D algorithm option support on OSX
  • BASS_CONFIG_3DALGORITHM (BASS_SetConfig option)

New in BASS 2.4.2 (Apr 12, 2012)

  • RF64 support
  • BASS_StreamCreateFile/User
  • RIFF/BWF "Broadcast Audio Extension" tag retrieval
  • BASS_TAG_RIFF_BEXT (BASS_ChannelGetTags type)
  • TAG_BEXT structure
  • ID3v1 tag structure
  • TAG_ID3 structure
  • Multiple simultaneous recordings per device on Vista & OSX (as on XP)
  • BASS_RecordStart
  • DX8 effect parameter defaults updated/corrected in documentation

New in BASS 2.4 (Apr 12, 2012)

  • "Push" streaming
  • STREAMPROC_PUSH (BASS_StreamCreate "proc")
  • BASS_StreamPutData
  • LIVEFX and MULTI examples updated
  • "Push" buffered file streaming
  • STREAMFILE_BUFFERPUSH (BASS_StreamCreateFileUser system)
  • BASS_StreamPutFileData
  • STREAMFILEPROC replaced by table of callbacks for each file operation
  • BASS_FILEPROCS (FILECLOSEPROC/FILELENPROC/FILEREADPROC/FILESEEKPROC)
  • STREAMFILEPROC *removed*
  • 64-bit file positioning
  • BASS_SampleLoad
  • BASS_MusicLoad
  • BASS_StreamCreateFile
  • BASS_StreamGetFilePosition
  • File buffer level retrieval
  • BASS_FILEPOS_BUFFER (BASS_StreamGetFilePosition mode)
  • Sinc interpolated MOD music mixing
  • BASS_MUSIC_SINCINTER (BASS_MusicLoad flag)
  • MO3 2.4 support
  • BASS_MusicLoad
  • MOD orders positioning incorporated into channel functions
  • BASS_ChannelGetLength
  • BASS_ChannelSetPosition
  • BASS_ChannelGetPosition
  • BASS_MusicGetOrderPosition *removed*
  • BASS_MusicGetOrders *removed*
  • Channel attribute functions consolidated
  • BASS_ChannelSetAttribute
  • BASS_ChannelGetAttribute
  • BASS_ChannelSlideAttribute
  • BASS_ChannelIsSliding
  • BASS_ChannelSetAttributes *removed*
  • BASS_ChannelGetAttributes *removed*
  • BASS_ChannelSlideAttributes *removed*
  • BASS_ChannelSetEAXMix *removed*
  • BASS_ChannelGetEAXMix *removed*
  • BASS_MusicSetAttribute *removed*
  • BASS_MusicGetAttribute *removed*
  • Floating-point volume and panning
  • BASS_SetVolume
  • BASS_GetVolume
  • BASS_RecordSetInput
  • BASS_RecordGetInput
  • BASS_ATTRIB_PAN/VOL (BASS_ChannelGet/Set/SlideAttribute options)
  • BASS_ATTRIB_MUSIC_VOL_CHAN/INST (BASS_ChannelGet/Set/SlideAttribute options)
  • BASS_SAMPLE (volume/pan/outvol members)
  • BASS_CONFIG_MAXVOL *removed*
  • BASSTEST and RECTEST examples updated
  • Output device volume control on Vista (as on other OS)
  • BASS_SetVolume
  • BASS_GetVolume
  • Multiple update threads
  • BASS_CONFIG_UPDATETHREADS
  • BASSTEST example updated
  • Global volume range increased to 10000
  • BASS_CONFIG_GVOL_SAMPLE/STREAM/MUSIC (BASS_SetConfig options)
  • BASSTEST example updated
  • Setting and retrieving of a sample's data
  • BASS_SampleSetData
  • BASS_SampleGetData
  • BASS_SampleCreate
  • BASS_SampleCreateDone *removed*
  • Channel flag setting mask
  • BASS_ChannelFlags
  • BASS_ChannelSetFlags *removed*
  • SPEAKERS example updated
  • 256 sample FFT
  • BASS_DATA_FFT256 (BASS_ChannelGetData flag)
  • Channel locking to prevent access by other threads
  • BASS_ChannelLock
  • Manual channel buffer updating
  • BASS_ChannelUpdate
  • BASS_ChannelPreBuf *removed*
  • Configurable manual update length
  • BASS_Update
  • Extended device information retrieval and detection of new/removed devices
  • BASS_GetDeviceInfo
  • BASS_RecordGetDeviceInfo
  • BASS_DEVICEINFO structure
  • BASS_GetDeviceDescription *removed*
  • BASS_RecordGetDeviceDescription *removed*
  • BASS_INFO (driver member) *removed*
  • BASS_RECORDINFO (driver member) *removed*
  • MULTI example updated
  • Default device change tracking on Windows (as on OSX)
  • BASS_Init
  • BASS_RecordInit
  • Speaker detection from Windows control panel
  • BASS_DEVICE_CPSPEAKERS (BASS_Init flag)
  • Channel automatically stopped & resumed for DX8 effects
  • BASS_ChannelSetFX
  • BASS_ChannelRemoveFX
  • "double" precision position conversion
  • BASS_ChannelBytes2Seconds
  • BASS_ChannelSeconds2Bytes
  • Separate config functions for pointers
  • BASS_SetConfigPtr
  • BASS_GetConfigPtr
  • BASS_CONFIG_NET_AGENT/PROXY (BASS_SetConfigPtr options)
  • Configurable file format verification length
  • BASS_CONFIG_VERIFY (BASS_SetConfig option)
  • Stream filename retrieval
  • BASS_CHANNELINFO (file member)
  • Channel sample retrieval
  • BASS_CHANNELINFO (sample member)
  • META syncs no longer receive metadata in the "data" parameter
  • BASS_SYNC_META (BASS_ChannelSetSync type)
  • Separate sync for OGG logical bitstream changes (instead of BASS_SYNC_META)
  • BASS_SYNC_OGG_CHANGE (BASS_ChannelSetSync type)
  • NETRADIO example updated (C version)
  • Message syncing removed (use PostMessage instead)
  • BASS_SYNC_MESSAGE (BASS_ChannelSetSync flag) *removed*
  • Data retrieval from stopped/paused channels
  • BASS_ChannelGetData
  • Callback "user" parameters changed to pointers
  • BASS_StreamCreate / STREAMPROC
  • BASS_StreamCreateFileUser
  • BASS_StreamCreateURL / DOWNLOADPROC
  • BASS_RecordStart / RECORDPROC
  • BASS_ChannelSetDSP / DSPPROC
  • BASS_ChannelSetSync / SYNCPROC