Author Topic: BASS_FX_BFX_ECHO4  (Read 221 times)

rv

  • Posts: 284
BASS_FX_BFX_ECHO4
« on: 8 May '19 - 14:55 »
Hello,

I am trying to create a DELAY effect that imitate the one I have on my Yamaha synth
I am using BASS_MIDI_StreamGetChannel to apply the DELAY on a bass midi channel

1) I have a button that remove the DELAY FX and set it again. I do :

     BASS_ChannelRemoveFX  to remove the FX
     BASS_StreamFree of the BASS_MIDI_StreamGetChannel handle  to remove the stream
     then again
     BASS_MIDI_StreamGetChannel(_midiStream, 0)
     BASS_ChannelSetFX

If I don't put a message box wait between BASS_StreamFree and BASS_MIDI_StreamGetChannel, then the new FX is not applied. Is it a bug?


2) the Yamaha delay has a very nice feature that allow to delay a bit more the left than the right channel. This sound so much better
How can I add this initial delay offset on Left side? The delay should stay at for example 1 second for the 2 sides, but just left delayed from right
Maybe I can use many FX together to do this? or Arthur can add a delay offset between even and odd channels


3) Is it possible that the dry fx channel is stereo, but then it enter the delay in mono ? (just to emulate the yamaha mono delay)


4) later will talk about the HIGH DAMP feature


Regards

Ian @ un4seen

  • Administrator
  • Posts: 21861
Re: BASS_FX_BFX_ECHO4
« Reply #1 on: 9 May '19 - 16:40 »
1) I have a button that remove the DELAY FX and set it again. I do :

     BASS_ChannelRemoveFX  to remove the FX
     BASS_StreamFree of the BASS_MIDI_StreamGetChannel handle  to remove the stream
     then again
     BASS_MIDI_StreamGetChannel(_midiStream, 0)
     BASS_ChannelSetFX

If I don't put a message box wait between BASS_StreamFree and BASS_MIDI_StreamGetChannel, then the new FX is not applied. Is it a bug?

Yes, BASS_MIDI_StreamGetChannel will be returning the freed handle in that case because it simply returns the existing handle whenever there is one. The freed handle won't be invalidated until the MIDI stream is next processed. Here's an update in which BASS_MIDI_StreamGetChannel will check the existing handle and return a new one if it is invalid:

   www.un4seen.com/stuff/bassmidi.zip

2) the Yamaha delay has a very nice feature that allow to delay a bit more the left than the right channel. This sound so much better
How can I add this initial delay offset on Left side? The delay should stay at for example 1 second for the 2 sides, but just left delayed from right
Maybe I can use many FX together to do this? or Arthur can add a delay offset between even and odd channels

Yes, I think you could achieve that by using two BASS_FX_BFX_ECHO4 effects with the "lChannel" parameters set accordingly (1 and 2).

3) Is it possible that the dry fx channel is stereo, but then it enter the delay in mono ? (just to emulate the yamaha mono delay)

You could perhaps use the BASS_FX_BFX_MIX effect with a higher "priority" than the BASS_FX_BFX_ECHO4 effect to downmix the data to mono before delaying it?

rv

  • Posts: 284
Re: BASS_FX_BFX_ECHO4
« Reply #2 on: 10 May '19 - 11:10 »
1) Great it works now

2) When using 2 delays, for example, the first set at 1000ms and the second at 1050ms
then with the feedbacks, it become :
1000>2000>3000>4000
1010>2020>3030>4040
I want the difference between left and right channel to be constant. So maybe I need an additional offset parameter to start the delay a bit before for example at 990 ms, but the delay period still is 1000ms
I think this can be done only if we change the DSP code

Or maybe, is it possible to SPLIT the DSP handle into 2 parallels streams, apply the FX on the 2 streams,   and delay one stream to play a bit later?

Ian @ un4seen

  • Administrator
  • Posts: 21861
Re: BASS_FX_BFX_ECHO4
« Reply #3 on: 10 May '19 - 17:37 »
Perhaps you can achieve what you want by enabling the first delay/echo effect (with feedback) on both channels, and then enabling the second effect (without feedback) on the channel you want delayed further (with "fDelay" set to the difference).