The following code was posted by Svante in thread:
http://www.un4seen.com/forum/?board=1;action=display;threadid=1948' ONLY FOR 32-BIT STEREO STREAMS!!!
' Call with 'Pointer Variable' = BASS_ChannelSetDSP('CHANNEL', AddressOf SBVocalCut, 0)
' Remove with BASS_ChannelRemoveDSP('CHANNEL', 'Pointer Variable')
Public Sub SBVocalCut32(ByVal handle As Long, ByVal channel As Long, ByVal buffer As Long, ByVal length As Long, ByVal user As Long)
Dim SBVocCut32Buf() As Single, SBVocCut32CSample As Long
Dim SBVocCut32DM As Single
ReDim SBVocCut32Buf(length / 2) As Single
Call CopyMemory(SBVocCut32Buf(0), ByVal buffer, length)
For SBVocCut32CSample = 0 To length / 2 - 1 Step 2
SBVocCut32DM = ((0 - SBVocCut32Buf(SBVocCut32CSample)) + SBVocCut32Buf(SBVocCut32CSample + 1)) / 2
SBVocCut32Buf(SBVocCut32CSample) = SBVocCut32DM
SBVocCut32Buf(SBVocCut32CSample + 1) = SBVocCut32DM
Next SBVocCut32CSample
Call CopyMemory(ByVal buffer, SBVocCut32Buf(0), length)
End Sub
It's for Visual Basic but should not be to difficult to translate to oher languages.