BASS.NET API for the Un4seen BASS Audio LibraryBassBASS_SetConfig Method (BASSConfig, Boolean)BASS.NET API for the Un4seen BASS Audio Library
Sets the value of a config option.

Namespace: Un4seen.Bass
Assembly: Bass.Net (in Bass.Net.dll) Version: 2.4.12.0
Syntax

[DllImportAttribute("bass.dll", CharSet = CharSet.Unicode)]
public static bool BASS_SetConfig(
	BASSConfig option,
	bool newvalue
)

Parameters

option
Type: Un4seen.BassBASSConfig
The option to set the value of... one of the following (BASSConfig).
newvalue
Type: SystemBoolean
The new option value (as a bool). See the option's documentation for details on the possible values.

Return Value

Type: Boolean
If successful, is returned, else is returned. Use BASS_ErrorGetCode to get the error code.
Remarks

Options:

BASS_CONFIG_CURVE_VOLVolume translation curve.

newvalue (bool): Volume curve... = linear, = logarithmic.

DirectSound uses logarithmic volume and panning curves, which can be awkward to work with. For example, with a logarithmic curve, the audible difference between 10000 and 9000, is not the same as between 9000 and 8000. With a linear "curve" the audible difference is spread equally across the whole range of values, so in the previous example the audible difference between 10000 and 9000, and between 9000 and 8000 would be identical.

When using the linear curve, the volume range is from 0% (silent) to 100% (full). When using the logarithmic curve, the volume range is from -100 dB (effectively silent) to 0 dB (full). For example, a volume level of 0.5 is 50% linear or -50 dB logarithmic.

The linear curve is used by default.

BASS_CONFIG_CURVE_PANPanning translation curve.

newvalue (bool): Panning curve... = linear, = logarithmic.

The panning curve affects panning in exactly the same way as the volume curve (BASS_CONFIG_CURVE_VOL) affects the volume.

The linear curve is used by default.

BASS_CONFIG_FLOATDSPPass 32-bit floating-point sample data to all DSP functions?

newvalue (bool): If , 32-bit floating-point sample data is passed to all DSPPROC callback functions.

Normally DSP functions receive sample data in whatever format the channel is using, ie. it can be 8, 16 or 32-bit. But using this config option, BASS will convert 8/16-bit sample data to 32-bit floating-point before passing it to DSP functions, and then convert it back after all the DSP functions are done. As well as simplifying the DSP code (no need for 8/16-bit processing), this also means that there is no degradation of quality as sample data passes through a chain of DSP.

This option also affects DX8 effects when using the "without FX flag" DX8 effect implementation. Note that floating-point FX processing requires DX9 or above.

BASS_CONFIG_MP3_CODECThe MP3 decoder to use.

newvalue (bool): The MP3 decoder to use... = BASS, = Windows.

Most Windows users will have an MP3 codec installed - it comes preinstalled with modern Windows (ME/2K/XP), and can be installed on older Windows, eg. with Windows Media Player. By default, BASS will use it's own built-in MP3 decoder, as it provides better performance, but the Windows codec can be used instead.

When using the Windows codec, BASS still does the file processing, so all the usual features are still supported, including streaming, tag reading, pre-scanning, gapless playback, etc...

If the Windows codec option is chosen, but an MP3 codec is not installed, then MP3 files/streams will not be playable and the stream/sample creation functions will produce a BASS_ERROR_CODEC error.

BASS_CONFIG_OGG_PRESCANPre-scan chained OGG files?

prescan (bool): If , chained OGG files are pre-scanned.

This option is enabled by default, and is equivalent to including the BASS_STREAM_PRESCAN flag in a BASS_StreamCreateFile(String, Int64, Int64, BASSFlag) call when opening an OGG file. It can be disabled if seeking and an accurate length reading are not required from chained OGG files, for faster stream creation.

BASS_CONFIG_NET_PASSIVEUse passive mode in FTP connections?

passive (bool): If , passive mode is used, otherwise normal/active mode is used.

Changes take effect from the next internet stream creation call. By default, passive mode is disabled.

BASS_CONFIG_PAUSE_NOPLAYPrevent channels being played when the output is paused?

newvalue (bool): If , channels can't be played while the output is paused.

When the output is paused using BASS_Pause, and this config option is enabled, channels can't be played until the output is resumed using BASS_Start. Attempts to play a channel will give a BASS_ERROR_START error.

BASS_CONFIG_DEV_DEFAULTInclude a 'Default' entry in the output device list?

default (bool): If , a 'Default' device will be included in the device list.

BASS does not usually include a 'Default' entry in its device list, as that would ultimately map to one of the other devices and be a duplicate entry. When the default device is requested in a BASS_Init(Int32, Int32, BASSInit, IntPtr, IntPtr) call (with device = -1), BASS will check the default device at that time, and initialize it. But Windows 7 has the ability to automatically switch the default output to the new default device whenever it changes, and in order for that to happen, the default device (rather than a specific device) needs to be used. That is where this option comes in.

When enabled, the 'Default' device will also become the default device to BASS_Init(Int32, Int32, BASSInit, IntPtr, IntPtr) (with device = -1). When the "Default" device is used, the BASS_SetVolume(Single) and BASS_GetVolume functions work a bit differently to usual; they deal with the "session" volume, which only affects the current process's output on the device, rather than the device's volume.

This option can only be set before BASS_GetDeviceInfo(Int32, BASS_DEVICEINFO) or BASS_Init(Int32, Int32, BASSInit, IntPtr, IntPtr) has been called.

This config option is only available on Windows. It is available on all Windows versions (not including CE), but only Windows 7 has the default output switching feature.

BASS_CONFIG_VISTA_SPEAKERSEnable speaker assignment with panning/balance control on Windows Vista and newer?

enable (bool): If , speaker assignment with panning/balance control is enabled on Windows Vista and newer.

Panning/balance control via the BASS_ATTRIB_PAN attribute is not available when speaker assignment is used on Windows due to the way that the speaker assignment needs to be implemented there. The situation is improved with Windows Vista, and speaker assignment can generally be done in a way that does permit panning/balance control to be used at the same time, but there may still be some drivers that it does not work properly with, so it is disabled by default and can be enabled via this config option. Changes only affect channels that are created afterwards, not any that already exist.

Platform-specific: This config option is only available on Windows. It is available on all Windows versions (not including CE), but only has effect on Windows Vista and newer. Speaker assignment with panning/balance control is always possible on other platforms, where BASS generates the final mix.

Other config options may be supported by Add-Ons, see the documentation.

ERROR CODEDescription
BASS_ERROR_ILLPARAMoption is invalid.

Examples

Setting the DSP processing to 32-bit float:
VB
Bass.BASS_SetConfig(BASSConfig.BASS_CONFIG_FLOATDSP, True)
Bass.BASS_SetConfig(BASSConfig.BASS_CONFIG_FLOATDSP, true);
See Also

Reference