Sets up a user DSP function on a stream, MOD music, or recording channel.

    DWORD handle,
    DSPPROC *proc,
    void *user,
    int priority


handleThe channel handle... a HSTREAM, HMUSIC, or HRECORD.
procThe callback function.
userUser instance data to pass to the callback function.
priorityThe priority of the new DSP, which determines its position in the DSP chain. DSPs with higher priority are called before those with lower.

Return value

If successful, then the new DSP's handle is returned, else 0 is returned. Use BASS_ErrorGetCode to get the error code.

Error codes

BASS_ERROR_HANDLEhandle is not a valid channel.


DSP functions can set and removed at any time, including mid-playback. Use BASS_ChannelRemoveDSP to remove a DSP function.

Multiple DSP functions may be used per channel, in which case the order that the functions are called is determined by their priorities. The priorities can be changed via BASS_FXSetPriority. Any DSPs that have the same priority are called in the order that they were given that priority.

DSP functions can be applied to MOD musics and streams, but not sample channels. If you want to apply DSP functions to a sample, BASS_SampleGetChannel can create a stream from a sample.

See also

BASS_ChannelLock, BASS_ChannelRemoveDSP, BASS_ChannelSetFX, BASS_FXSetPriority, BASS_CONFIG_FLOATDSP, DSPPROC callback