The idea is to have different audio modules, to join as I wish, for example:
From an ASIO input,
- Apply DSP/FX_1 and save to file.
- Apply DSP/FX_2 (to the same ASIO input) and stream it.
For this I need to duplicate the output of each module (here ASIO input) into all the next ones, so I can process it independently. How can I do it?
I tried to clone a stream using StreamCreatePush but it doesn't apply the DSP I set to it, any idea?
int clone = Bass.BASS_StreamCreatePush(44100, 1, BASSFlag.BASS_SAMPLE_FLOAT, IntPtr.Zero);
CloneProc = new DSPPROC(CloneDSP);
Bass.BASS_ChannelSetDSP(orig, CloneProc, new IntPtr(clone), 0);
Bass.BASS_ChannelSetDSP(clone, myDSP, IntPtr.Zero, 0); // myDSP is never applied!
private void CloneDSP(int handle, int channel, IntPtr buffer, int length, IntPtr user)
Bass.BASS_StreamPutData(user.ToInt32(), buffer, length);