Thanks a lot Ian, I've put an abridged version of the code I'm using below. I hope it makes sense - shoud be enough to show my methodology. The program would mostly use four separate stereo hardware channels i.e. into four pairs of faders for radio-type use. However, it would be useful for the software channels to share hardware channels when there aren't enough (I also have a small USB soundcard), so the BASSmix option could solve some potential problems.
If BassAsio.BASS_ASIO_GetDevice = n OrElse BassAsio.BASS_ASIO_SetDevice(n) Then
Dim info As BASS_ASIO_INFO = BassAsio.BASS_ASIO_GetInfo()
If info IsNot Nothing Then
'assuming stereo
For i As Integer = 0 To info.outputs - 1 Step 2
Dim chaninfo As BASS_ASIO_CHANNELINFO = BassAsio.BASS_ASIO_ChannelGetInfo(False, i)
If chaninfo IsNot Nothing Then
CB2.Items.Add(chaninfo)
CB3.Items.Add(chaninfo)
End If
Next
End If
End If
Dim p As Integer = 0
For Each info As BASS_DEVICEINFO In Bass.BASS_GetDeviceInfos()
Bass.BASS_Init(p, 48000, BASSInit.BASS_DEVICE_DEFAULT, IntPtr.Zero)
BassAsio.BASS_ASIO_Init(p, BASSASIOInit.BASS_ASIO_THREAD)
p += 1
Next
Ldd_Trk01 = "D:\Temp\Deleme\4th July#Amy MacDonald.mp3"
If asioOut IsNot Nothing Then
asioOut.Dispose()
End If
If Ldd_Trk01.EndsWith("flac") Then
strm01 = BASS_FLAC_StreamCreateFile(Ldd_Trk01, 0, 0, BASSFlag.BASS_STREAM_DECODE Or BASSFlag.BASS_SAMPLE_FLOAT)
Else
strm01 = Bass.BASS_StreamCreateFile(Ldd_Trk01, 0, 0, BASSFlag.BASS_STREAM_DECODE Or BASSFlag.BASS_SAMPLE_FLOAT)
End If
If strm01 <> 0 Then
'set the asio handler
asioOut = New BassAsioHandler(asio_dev, asio_ch * 2, strm01)
End If
asioOut.Start(0, 0)