As Far as the FX flag being set I guess I had it unset all the time (ie. I did not add it when I created the stream) but I cannot add and remove effects at any time as the docs suggest.
Here is the code I am using to add/remove the effects
procedure TForm1.CheckBox1Click(Sender: TObject);
begin
if checkbox1.Checked = True then
Bass_ChannelSetFX(Stream,Bass_FX_Flanger)
else
Bass_ChannelRemoveFX(Stream,Bass_FX_Flanger);
end;
As far as the crossfader goes I don't really get it at all because how can you slide a channel that has been stopped already. I looked at the code in the link you provided and tried to do something with it but it did not do anything. Maybe it would help if I explained my situation so here goes.
When my form is created I load a directory of mp3's (about 2300) into a listbox and when I click on one of the songs in the list it plays and so on an so forth. What I want is if I click on a song while another one is playing to fade out that song while the one I just clicked on fades in at the same time (ie. crossfade) I want to do this using only one stream handle because this is just one of 6 ways I am loading and playing songs and it could get very confusing very quickly if I used more then one handle.
Anyway here is the code I tried using so you can see where my mistake could be.
procedure TForm1.ListBox1Click(Sender: TObject);
Var
Stream : HSTREAM;
begin
Bass_ChannelStop(Stream);
Stream := Bass_StreamCreateFile(FALSE,pChar(listbox1.Items.Strings[listbox1.ItemIndex]), 0, 0,BASS_STREAM_AUTOFREE);
Bass_StreamPlay(Stream, FALSE, 0);
Bass_channelslideattributes(stream,-1,-2,-101,1500);
Stream := Bass_StreamCreateFile(FALSE,pChar(listbox1.Items.Strings[listbox1.ItemIndex]), 0, 0,0);
Bass_StreamPlay(Stream, FALSE, 0);
end;