As with every release, all functions/etc affected by a change are listed in the "History" section of the BASS.TXT file. To make upgrading existing code simple, some brief guidelines are also listed below.
BASS_GetDeviceDescription, BASS_RecordGetDeviceDescription
These functions have been superseded by the new BASS_GetDeviceInfo and BASS_RecordGetDeviceInfo functions, respectively.
BASS_INFO, BASS_RECORDINFO
The "driver" member has been moved to the new BASS_DEVICEINFO structure.
BASS_Init, BASS_RecordInit
The default device (-1) is no longer hardcoded to the first device on Windows (already the case on OSX).
BASS_ChannelGetAttributes, BASS_ChannelSetAttributes, BASS_ChannelSlideAttributes
These functions have been replaced by BASS_ChannelGetAttribute, BASS_ChannelSetAttribute and BASS_ChannelSlideAttribute, respectively.
BASS_ChannelIsSliding
An "attrib" parameter has been added to check if a specific attribute is sliding.
BASS_MusicGetAttribute, BASS_MusicSetAttribute
These functions have been incorporated into BASS_ChannelGetAttribute and BASS_ChannelSetAttribute. The channel and instrument volume settings are also now floating-point, with a range of 0 to 1. The attribute names have also changed slightly: the "MUSIC" and "ATTRIB" parts are swapped around.
BASS_ChannelGetLength, BASS_ChannelGetPosition, BASS_ChannelSetPosition
A "mode" parameter has been added to these 3 functions. Set that to BASS_POS_BYTE (or 0) to maintain the previous functionality.
BASS_MusicGetOrders, BASS_MusicGetOrderPosition, MAKEMUSICPOS
These functions (and macro) have been incorporated into BASS_ChannelGetLength, BASS_ChannelGetPosition and BASS_ChannelSetPosition, via the BASS_POS_MUSIC_ORDER "mode".
BASS_MusicLoad
The "offset" parameter is now 64-bit (QWORD).
BASS_SampleLoad
The "offset" parameter is now 64-bit (QWORD).
BASS_SampleCreate
This function now returns a sample handle. The sample's data can be set using the new BASS_SampleSetData function.
BASS_SampleCreateDone
This function is no longer required following the change to BASS_SampleCreate.
BASS_StreamCreateFile
The "offset" and "length" parameters are now 64-bit (QWORD).
BASS_StreamGetFilePosition
The return value is now 64-bit (QWORD).
BASS_GetVolume, BASS_SetVolume
The volume is now a floating-point value, with a range of 0 to 1.
BASS_CONFIG_MAXVOL
This config option has been removed, as it is no longer needed following the advent of floating-point volume settings.
BASS_CONFIG_GVOL_MUSIC, BASS_CONFIG_GVOL_SAMPLE, BASS_CONFIG_GVOL_STREAM
The global volume settings now have a range of 0 to 10000.
BASS_RecordGetInput, BASS_RecordSetInput
The volume has been separated from the flags and made a floating-point value, with a range of 0 to 1.
BASS_Update
A "length" parameter has been added.
BASS_ChannelPreBuf
This function has been superseded by BASS_ChannelUpdate. No parameter changes are required.
BASS_ChannelSetFlags
This function has been superseded by BASS_ChannelFlags. For the same functionality, set the "mask" parameter to -1.
BASS_ChannelSetSync
BASS_SYNC_META sync callbacks no longer receive the metadata in the "data" parameter. It can be retrieved via BASS_ChannelGetTags (BASS_TAG_META) instead. The BASS_SYNC_META sync is also no longer triggered by a new logical bitstream in a chained OGG stream; a dedicated BASS_SYNC_OGG_CHANGE sync has been added for that purpose. The BASS_SYNC_MESSAGE flag has been removed, and can be reproduced by using the PostMessage Win32 API function in a SYNCPROC.
BASS_ChannelBytes2Seconds
The return value is now 64-bit floating-point (double).
BASS_ChannelSeconds2Bytes
The "pos" parameter is now 64-bit floating-point (double).
BASS_SetConfig
This function now returns a boolean value, instead of the config's new setting. If needed, BASS_GetConfig can be used to get that.
BASS_CONFIG_NET_AGENT, BASS_CONFIG_NET_PROXY
Config options that deal with pointers, like these 2, are now handled by the new BASS_SetConfigPtr and BASS_GetConfigPtr functions.
BASS_CHANNELINFO
"sample" and "filename" members have been added.
DSPPROC, DOWNLOADPROC, RECORDPROC, STREAMPROC, SYNCPROC
All callback function "user" parameters are now pointers.
In case you're skipping a version, here are the previous upgrade guidelines.
BASS_GetVersion
The format of the return value has been changed, to include the minor revision.
BASS_StreamGetTags
This function is replaced by BASS_ChannelGetTags. No parameter changes are required.
BASS_MusicGetName
This function is replaced by BASS_ChannelGetTags and the BASS_TAG_MUSIC_NAME tag type.
BASS_PluginLoad
A "flags" parameter has been added.
BASS_CONFIG_NET_NOPROXY
This config option has been replaced by the more flexible BASS_CONFIG_NET_PROXY config option. The BASS_CONFIG_NET_NOPROXY behaviour can be reproduced by setting the new option to NULL.
BASS_CTYPE_STREAM_WAV
This "ctype" is now just a flag to indicate any type of WAVE file, and is no longer a channel type in itself. The LOWORD used with this flag indicates the specific codec (PCM, ADPCM, etc).
BASS_CHANNELINFO, BASS_INFO, BASS_RECORDINFO, BASS_SAMPLE
These four structures have new "plugin", "freq", "freq" and "mingap" members, respectively.
In case you're skipping another version, here are the previous upgrade guidelines.
BASS_StreamGetLength, BASS_MusicGetLength
These functions have been merged into BASS_ChannelGetLength, which gives the byte length of a channel. To get the number of orders in a MOD music, BASS_MusicGetOrders has been added. Also note that requesting the length when streaming in blocks will now result in a BASS_ERROR_NOTAVAIL error, instead of just 0.
BASS_ChannelGetPosition
This function now returns the position in bytes with MOD musics, as it does with other channels. BASS_MusicGetOrderPosition has been added to get the order/row position.
BASS_ChannelSetPosition
This function now sets the position in bytes with MOD musics by default. A MAKEMUSICPOS macro has been added for setting the position in orders/rows.
BASS_ChannelSetSync
The BASS_SYNC_POS sync parameter is now in bytes for MOD musics too. Use the BASS_SYNC_MUSICPOS sync for order/row positions.
BASS_ChannelPreBuf
A "length" parameter has been added, to specify how much data to pre-buffer.
BASS_SampleCreate
The number of channels is now specified in a separate parameter, rather than via the use of the BASS_SAMPLE_MONO flag. The sample length is also now specified in bytes rather than samples.
BASS_StreamCreateFile
WAV files are no longer automatically converted to the device initialization resolution (as specified in the BASS_Init call), eg. 8-bit WAV files will produce 8-bit streams.
BASS_StreamCreateURL
Shoutcast metadata is now requested automatically, so the BASS_STREAM_META flag has been removed.
BASS_INFO structure, BASS_RECORDINFO structure
The "size" member has been removed, so there's now no need to set that before calling BASS_GetInfo and BASS_RecordGetInfo.
BASS_SAMPLE structure
A "chans" member has been added.
STREAMFILEPROC callback
The BASS_FILE_QUERY action has been removed. The BASS_FILE_LEN action may be used more than once with unbuffered streams, not just at the start.
In case you're skipping another version, here are the previous upgrade guidelines.
BASS_StreamPlay
This function is replaced by BASS_ChannelPlay. The "flags" parameter is not carried forward to the new function, instead the flags can be changed at any time using BASS_ChannelSetFlags.
BASS_MusicPlay, BASS_MusicPlayEx
These functions are also replaced by BASS_ChannelPlay. The BASS_MusicPlayEx "pos" and "flags" parameters are not carried forward to the new function, instead they can be implemented via the BASS_ChannelSetPosition and BASS_ChannelSetFlags functions. The "reset" parameter is also not carried forward, the BASS_MUSIC_POSRESETEX flag replaces that.
BASS_SamplePlay, BASS_SamplePlayEx, BASS_SamplePlay3D, BASS_SamplePlay3DEx
These functions are replaced by a combination of BASS_SampleGetChannel and BASS_ChannelPlay. The BASS_ChannelSetAttributes and BASS_ChannelSet3DAttributes functions can be used to replace the functionality of the "Ex" versions.
BASS_ChannelResume
Another function replaced by BASS_ChannelPlay.
BASS_MusicSetAmplify, BASS_MusicSetPanSep, BASS_MusicSetPositionScaler, BASS_MusicSetVolume, BASS_MusicGetVolume
These functions are all replaced by BASS_MusicSetAttribute and BASS_MusicGetAttribute.
BASS_StreamPreBuf, BASS_MusicPreBuf
These functions are replaced by BASS_ChannelPreBuf.
BASS_RecordStart
The number of channels (mono/stereo) is now specified in a separate parameter, rather than via the use of the BASS_SAMPLE_MONO flag.
BASS_ChannelGetLevel
The level reading is now more precise, having a range of 0 to 32768, instead of the old 0 to 128.
BASS_ChannelSetFX
There is a new "priority" parameter.
BASS_CONFIG_FLOATDSP
Note that this config option can now affect FX too.