This is tough to troubleshoot since the problem is only happening on one computer and it's in my car. Things work fine on my desktop.
I'm using Bass/Bass.NET 2.4.8.1 and C#. I'm writing a small test program to play with pan/fade in my car which has a 4 speaker setup. I've got the following set up in code (I've removed debugging statements and error checking for clarity):
Bass.BASS_Init(2, 44100, BASSInit.BASS_DEVICE_DEFAULT, System.IntPtr.Zero);
BassMix.LoadMe();
float pan = 0f; // -1 is left, +1 is right
float fade = 0f; // -1 is rear, +1 is front
int s = Bass.BASS_StreamCreateFile("stereo.mp3", 0, 0, BASSFlag.BASS_STREAM_DECODE);
int sFront = BassMix.BASS_Split_StreamCreate(s, BASSFlag.BASS_SAMPLE_FLOAT | BASSFlag.BASS_STREAM_AUTOFREE | BASSFlag.BASS_SPEAKER_FRONT, null);
Bass.BASS_ChannelSetAttribute(sFront, BASSAttribute.BASS_ATTRIB_PAN, pan);
Bass.BASS_ChannelSetAttribute(sFront, BASSAttribute.BASS_ATTRIB_VOL, ((fade >= 0) ? 1f : (1f + fade)));
int sRear = BassMix.BASS_Split_StreamCreate(s, BASSFlag.BASS_SAMPLE_FLOAT | BASSFlag.BASS_STREAM_AUTOFREE | BASSFlag.BASS_SPLIT_SLAVE | BASSFlag.BASS_SPEAKER_REAR, null);
Bass.BASS_ChannelSetAttribute(sRear, BASSAttribute.BASS_ATTRIB_PAN, pan);
Bass.BASS_ChannelSetAttribute(sRear, BASSAttribute.BASS_ATTRIB_VOL, ((fade <= 0) ? 1f : (1f - fade)));
Bass.BASS_ChannelSetLink(sFront, sRear);
Bass.BASS_ChannelPlay(sFront, false);
This works as I expect on my desktop (albeit with 2 front speakers since I don't have 4 speakers at my desk) when I fiddle with the "pan" value. In my car, panning doesn't work, but fading does. There are no errors from Bass when it runs in the car and looking at the BASS_INFO stuff after init shows 4 speakers. The balance control in the Windows sound control panel works as expected.
Am I doing something wrong? Is there a better way to split/pan/fade a stream? If everything looks good, what else should I provide the reader to help figure this out?