It isn't possible to set a custom curve in a single BASS_ChannelSlideAttribute call, but you could implement one by breaking the curve down into multiple steps and using a BASS_SYNC_SLIDE sync to trigger each new step, ie. call BASS_ChannelSlideAttribute in the SYNCPROC (except at the end of the final step). Note the timing of the step changes won't be sample-precise, but should be good enough unless the fade-out is short. A BASS_FX_VOLUME effect and mixtime BASS_SYNC_POS syncs could be used instead for more precise timing. If you happen to be using a mixer then BASS_Mixer_ChannelSetEnvelope would be another option. The BASS_FX add-on also has a BASS_FX_BFX_VOLUME_ENV effect that can be used outside of a mixer.