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