I'm using the CVS source of Dec 22nd 2008, built with MinGW/MSYS on WinXP Prof. Linuxsampler and Fantasia-0.8a-cvs6.jar work fine with one ASIO device, but when there is more than one ASIO device on the computer and the second device is selected in the Audio device creation in Fantasia, the first device is incorrectly loaded and cannot be accessed. The device order is alphabetical. For example, on my laptop I have Jackdmp with the Jack ASIO device driver and the ASIO4ALL v2.9 driver. When selecting ASIO4ALL, everything works fine. When selecting Jack ASIO, the linuxsampler console reports that ASIO4ALL has been loaded, but the ASIO4ALL configuration interface is not activated. The same error happens when attempting to use the KX-ASIO drivers when either ASIO4ALL or Jack ASIO are installed. Here is the linuxsampler console output showing the confusion: Init ASIO Jack Before ASIOGetChannels() Before ASIOGetBufferSize() ASIO_OpenAndQueryDeviceInfo: InputChannels = 4 ASIO_OpenAndQueryDeviceInfo: OutputChannels = 4 ASIOCanSampleRate: possible sample rate = 44100 channelInfos[0].type (sampleformat) = 18 channelInfos[1].type (sampleformat) = 18 channelInfos[2].type (sampleformat) = 18 channelInfos[3].type (sampleformat) = 18 ASIO_OpenAndQueryDeviceInfo: driver opened. AudioOutputDeviceAsio::ParameterSampleRate::PossibilitiesAsInt ASIO_OpenAndQueryDeviceInfo driverName='JackRouter' current='JackRouter' asioDriver ALREADY OPENED, DOING NOTHING ! AudioOutputDeviceAsio::ParameterSampleRate::PossibilitiesAsInt samplerate[0]=441 00 AudioOutputDeviceAsio::AudioOutputDeviceAsio constructor ASIO_OpenAndQueryDeviceInfo driverName='JackRouter' current='JackRouter' Before ASIO_loadAsioDriver('JackRouter') ASIO_loadAsioDriver: trying to load 'JackRouter' Stop ASIO Jack Stop ASIO Jack Destructor no message buffer overruns Constructor Before ASIOInit() Init ASIO Jack Before ASIOGetChannels() Before ASIOGetBufferSize() ASIO_OpenAndQueryDeviceInfo: InputChannels = 4 ASIO_OpenAndQueryDeviceInfo: OutputChannels = 4 ASIOCanSampleRate: possible sample rate = 44100 channelInfos[0].type (sampleformat) = 18 channelInfos[1].type (sampleformat) = 18 channelInfos[2].type (sampleformat) = 18 channelInfos[3].type (sampleformat) = 18 ASIO_OpenAndQueryDeviceInfo: driver opened. AudioOutputDeviceAsio::AudioOutputDeviceAsio: after ASIO_OpenAndQueryDeviceInfo AudioOutputDeviceAsio::AudioOutputDeviceAsio: after ASIOSetSampleRate AudioOutputDeviceAsio::AudioOutputDeviceAsio: after ASIOOutputReady asioMessages selector=7 value=0 AudioOutputDeviceAsio::AudioOutputDeviceAsio: after ASIOCreateBuffers AudioOutputDeviceAsio::Play() ! Start ASIO Jack AudioOutputDeviceAsio::SampleRate value=44100 AudioOutputDeviceAsio::ParameterCard::PossibilitiesAsString: getAsioDriverNames: ASIO driver list already loaded, doing returning cached list . AudioOutputDeviceAsio::ParameterCard::DefaultAsString='ASIO4ALL v2' AudioOutputDeviceAsio::ParameterCard::PossibilitiesAsString: getAsioDriverNames: ASIO driver list already loaded, doing returning cached list . AudioOutputDeviceAsio::ParameterCard::DefaultAsString='ASIO4ALL v2' AudioOutputDeviceAsio::ParameterCard::PossibilitiesAsString: getAsioDriverNames: ASIO driver list already loaded, doing returning cached list . AudioOutputDeviceAsio::ParameterCard::DefaultAsString='ASIO4ALL v2' AudioOutputDeviceAsio::ParameterCard::PossibilitiesAsString: getAsioDriverNames: ASIO driver list already loaded, doing returning cached list . AudioOutputDeviceAsio::ParameterCard::DefaultAsString='ASIO4ALL v2' AudioOutputDeviceAsio::ParameterChannels::DefaultAsInt ASIO_OpenAndQueryDeviceInfo driverName='ASIO4ALL v2' current='JackRouter' driverName != currentAsioDriverName , new asio driver specified, opening device .... different asioDriver ALREADY OPENED, closing old one ! Stop ASIO Jack Stop ASIO Jack Destructor no message buffer overruns Before ASIO_loadAsioDriver('ASIO4ALL v2') ASIO_loadAsioDriver: trying to load 'ASIO4ALL v2' Before ASIOInit() Before ASIOGetChannels() Before ASIOGetBufferSize() ASIO_OpenAndQueryDeviceInfo: InputChannels = 2 ASIO_OpenAndQueryDeviceInfo: OutputChannels = 8 ASIOCanSampleRate: possible sample rate = 8000 ASIOCanSampleRate: possible sample rate = 9600 ASIOCanSampleRate: possible sample rate = 11025 ASIOCanSampleRate: possible sample rate = 12000 ASIOCanSampleRate: possible sample rate = 16000 ASIOCanSampleRate: possible sample rate = 22050 ASIOCanSampleRate: possible sample rate = 24000 ASIOCanSampleRate: possible sample rate = 32000 ASIOCanSampleRate: possible sample rate = 44100 ASIOCanSampleRate: possible sample rate = 48000 ASIOCanSampleRate: possible sample rate = 88200 ASIOCanSampleRate: possible sample rate = 96000 channelInfos[0].type (sampleformat) = 18 channelInfos[1].type (sampleformat) = 18 channelInfos[2].type (sampleformat) = 18 channelInfos[3].type (sampleformat) = 18 channelInfos[4].type (sampleformat) = 18 channelInfos[5].type (sampleformat) = 18 channelInfos[6].type (sampleformat) = 18 channelInfos[7].type (sampleformat) = 18 ASIO_OpenAndQueryDeviceInfo: driver opened. AudioOutputDeviceAsio::ParameterChannels::DefaultAsInt returning 8 AudioOutputDeviceAsio::ParameterFragmentSize::DefaultAsInt! AudioOutputDeviceAsio::ParameterFragmentSize::DefaultAsInt returning optional<in t>::nothing (no CARD parameter supplied AudioOutputDeviceAsio::ParameterCard::PossibilitiesAsString: getAsioDriverNames: ASIO driver list already loaded, doing returning cached list . AudioOutputDeviceAsio::ParameterCard::DefaultAsString='ASIO4ALL v2' AudioOutputDeviceAsio::ParameterCard::PossibilitiesAsString: getAsioDriverNames: ASIO driver list already loaded, doing returning cached list . AudioOutputDeviceAsio::ParameterCard::DefaultAsString='ASIO4ALL v2' AudioOutputDeviceAsio::ParameterFragmentSize::DefaultAsInt! ASIO_OpenAndQueryDeviceInfo driverName='ASIO4ALL v2' current='ASIO4ALL v2' asioDriver ALREADY OPENED, DOING NOTHING ! AudioOutputDeviceAsio::ParameterFragmentSize::DefaultAsInt returning 512 AudioOutputDeviceAsio::ParameterCard::PossibilitiesAsString: getAsioDriverNames: ASIO driver list already loaded, doing returning cached list . AudioOutputDeviceAsio::ParameterCard::DefaultAsString='ASIO4ALL v2' AudioOutputDeviceAsio::ParameterCard::PossibilitiesAsString: getAsioDriverNames: ASIO driver list already loaded, doing returning cached list . AudioOutputDeviceAsio::ParameterCard::DefaultAsString='ASIO4ALL v2' ASIO_OpenAndQueryDeviceInfo driverName='ASIO4ALL v2' current='ASIO4ALL v2' asioDriver ALREADY OPENED, DOING NOTHING ! AudioOutputDeviceAsio::ParameterCard::PossibilitiesAsString: getAsioDriverNames: ASIO driver list already loaded, doing returning cached list . AudioOutputDeviceAsio::ParameterCard::DefaultAsString='ASIO4ALL v2' AudioOutputDeviceAsio::ParameterCard::PossibilitiesAsString: getAsioDriverNames: ASIO driver list already loaded, doing returning cached list . AudioOutputDeviceAsio::ParameterCard::PossibilitiesAsString: getAsioDriverNames: ASIO driver list already loaded, doing returning cached list . AudioOutputDeviceAsio::ParameterCard::DefaultAsString='ASIO4ALL v2' AudioOutputDeviceAsio::ParameterCard::PossibilitiesAsString: getAsioDriverNames: ASIO driver list already loaded, doing returning cached list . AudioOutputDeviceAsio::ParameterCard::DefaultAsString='ASIO4ALL v2' AudioOutputDeviceAsio::ParameterCard::PossibilitiesAsString: getAsioDriverNames: ASIO driver list already loaded, doing returning cached list . AudioOutputDeviceAsio::ParameterCard::DefaultAsString='ASIO4ALL v2' AudioOutputDeviceAsio::ParameterCard::PossibilitiesAsString: getAsioDriverNames: ASIO driver list already loaded, doing returning cached list . AudioOutputDeviceAsio::ParameterCard::DefaultAsString='ASIO4ALL v2' AudioOutputDeviceAsio::ParameterChannels::DefaultAsInt ASIO_OpenAndQueryDeviceInfo driverName='ASIO4ALL v2' current='ASIO4ALL v2' asioDriver ALREADY OPENED, DOING NOTHING ! AudioOutputDeviceAsio::ParameterChannels::DefaultAsInt returning 8 AudioOutputDeviceAsio::ParameterFragmentSize::DefaultAsInt! AudioOutputDeviceAsio::ParameterFragmentSize::DefaultAsInt returning optional<in t>::nothing (no CARD parameter supplied AudioOutputDeviceAsio::ParameterCard::PossibilitiesAsString: getAsioDriverNames: ASIO driver list already loaded, doing returning cached list . AudioOutputDeviceAsio::ParameterCard::DefaultAsString='ASIO4ALL v2' AudioOutputDeviceAsio::ParameterCard::PossibilitiesAsString: getAsioDriverNames: ASIO driver list already loaded, doing returning cached list . AudioOutputDeviceAsio::ParameterCard::DefaultAsString='ASIO4ALL v2' AudioOutputDeviceAsio::ParameterFragmentSize::DefaultAsInt! ASIO_OpenAndQueryDeviceInfo driverName='ASIO4ALL v2' current='ASIO4ALL v2' asioDriver ALREADY OPENED, DOING NOTHING ! AudioOutputDeviceAsio::ParameterFragmentSize::DefaultAsInt returning 512 AudioOutputDeviceAsio::ParameterCard::PossibilitiesAsString: getAsioDriverNames: ASIO driver list already loaded, doing returning cached list . AudioOutputDeviceAsio::ParameterCard::DefaultAsString='ASIO4ALL v2' AudioOutputDeviceAsio::ParameterCard::PossibilitiesAsString: getAsioDriverNames: ASIO driver list already loaded, doing returning cached list . AudioOutputDeviceAsio::ParameterCard::DefaultAsString='ASIO4ALL v2' ASIO_OpenAndQueryDeviceInfo driverName='ASIO4ALL v2' current='ASIO4ALL v2' asioDriver ALREADY OPENED, DOING NOTHING ! AudioOutputDeviceAsio::ParameterChannels::DefaultAsInt AudioOutputDeviceAsio::ParameterChannels::DefaultAsInt returning optional<int>:: nothing (CARD parameter not supplied) AudioOutputDeviceAsio::ParameterChannels::RangeMinAsInt! AudioOutputDeviceAsio::ParameterChannels::RangeMinAsInt returning optional<int>: :nothing (CARD parameter not supplied) AudioOutputDeviceAsio::ParameterChannels::RangeMaxAsInt! AudioOutputDeviceAsio::ParameterChannels::RangeMaxAsInt returning optional<int>: :nothing (CARD parameter not supplied) AudioOutputDeviceAsio::ParameterCard::PossibilitiesAsString: getAsioDriverNames: ASIO driver list already loaded, doing returning cached list . AudioOutputDeviceAsio::ParameterCard::DefaultAsString='ASIO4ALL v2' AudioOutputDeviceAsio::ParameterCard::PossibilitiesAsString: getAsioDriverNames: ASIO driver list already loaded, doing returning cached list . AudioOutputDeviceAsio::ParameterCard::DefaultAsString='ASIO4ALL v2' AudioOutputDeviceAsio::ParameterCard::PossibilitiesAsString: getAsioDriverNames: ASIO driver list already loaded, doing returning cached list . AudioOutputDeviceAsio::ParameterCard::DefaultAsString='ASIO4ALL v2' AudioOutputDeviceAsio::ParameterCard::PossibilitiesAsString: getAsioDriverNames: ASIO driver list already loaded, doing returning cached list . AudioOutputDeviceAsio::ParameterCard::DefaultAsString='ASIO4ALL v2' AudioOutputDeviceAsio::ParameterChannels::DefaultAsInt ASIO_OpenAndQueryDeviceInfo driverName='ASIO4ALL v2' current='ASIO4ALL v2' asioDriver ALREADY OPENED, DOING NOTHING ! AudioOutputDeviceAsio::ParameterChannels::DefaultAsInt returning 8 AudioOutputDeviceAsio::ParameterFragmentSize::DefaultAsInt! AudioOutputDeviceAsio::ParameterFragmentSize::DefaultAsInt returning optional<in t>::nothing (no CARD parameter supplied AudioOutputDeviceAsio::ParameterCard::PossibilitiesAsString: getAsioDriverNames: ASIO driver list already loaded, doing returning cached list . AudioOutputDeviceAsio::ParameterCard::DefaultAsString='ASIO4ALL v2' AudioOutputDeviceAsio::ParameterCard::PossibilitiesAsString: getAsioDriverNames: ASIO driver list already loaded, doing returning cached list . AudioOutputDeviceAsio::ParameterCard::DefaultAsString='ASIO4ALL v2' AudioOutputDeviceAsio::ParameterFragmentSize::DefaultAsInt! ASIO_OpenAndQueryDeviceInfo driverName='ASIO4ALL v2' current='ASIO4ALL v2' asioDriver ALREADY OPENED, DOING NOTHING ! AudioOutputDeviceAsio::ParameterFragmentSize::DefaultAsInt returning 512 AudioOutputDeviceAsio::ParameterCard::PossibilitiesAsString: getAsioDriverNames: ASIO driver list already loaded, doing returning cached list . AudioOutputDeviceAsio::ParameterCard::DefaultAsString='ASIO4ALL v2' AudioOutputDeviceAsio::ParameterCard::PossibilitiesAsString: getAsioDriverNames: ASIO driver list already loaded, doing returning cached list . AudioOutputDeviceAsio::ParameterCard::DefaultAsString='ASIO4ALL v2' ASIO_OpenAndQueryDeviceInfo driverName='ASIO4ALL v2' current='ASIO4ALL v2' asioDriver ALREADY OPENED, DOING NOTHING ! AudioOutputDeviceAsio::ParameterFragmentSize::DefaultAsInt! AudioOutputDeviceAsio::ParameterFragmentSize::DefaultAsInt returning optional<in t>::nothing (no CARD parameter supplied AudioOutputDeviceAsio::ParameterFragmentSize::RangeMinAsInt! AudioOutputDeviceAsio::ParameterFragmentSize::RangeMinAsInt returning optional<i nt>::nothing (no CARD parameter supplied AudioOutputDeviceAsio::ParameterFragmentSize::RangeMaxAsInt! AudioOutputDeviceAsio::ParameterFragmentSize::RangeMaxAsInt returning optional<i nt>::nothing (no CARD parameter supplied AudioOutputDeviceAsio::ParameterFragmentSize::PossibilitiesAsInt! AudioOutputDeviceAsio::ParameterCard::PossibilitiesAsString: getAsioDriverNames: ASIO driver list already loaded, doing returning cached list . AudioOutputDeviceAsio::ParameterCard::DefaultAsString='ASIO4ALL v2' AudioOutputDeviceAsio::ParameterCard::PossibilitiesAsString: getAsioDriverNames: ASIO driver list already loaded, doing returning cached list . AudioOutputDeviceAsio::ParameterCard::DefaultAsString='ASIO4ALL v2' AudioOutputDeviceAsio::ParameterCard::PossibilitiesAsString: getAsioDriverNames: ASIO driver list already loaded, doing returning cached list . AudioOutputDeviceAsio::ParameterCard::DefaultAsString='ASIO4ALL v2' AudioOutputDeviceAsio::ParameterCard::PossibilitiesAsString: getAsioDriverNames: ASIO driver list already loaded, doing returning cached list . AudioOutputDeviceAsio::ParameterCard::DefaultAsString='ASIO4ALL v2' AudioOutputDeviceAsio::ParameterChannels::DefaultAsInt ASIO_OpenAndQueryDeviceInfo driverName='ASIO4ALL v2' current='ASIO4ALL v2' asioDriver ALREADY OPENED, DOING NOTHING ! AudioOutputDeviceAsio::ParameterChannels::DefaultAsInt returning 8 AudioOutputDeviceAsio::ParameterFragmentSize::DefaultAsInt! AudioOutputDeviceAsio::ParameterFragmentSize::DefaultAsInt returning optional<in t>::nothing (no CARD parameter supplied AudioOutputDeviceAsio::ParameterCard::PossibilitiesAsString: getAsioDriverNames: ASIO driver list already loaded, doing returning cached list . AudioOutputDeviceAsio::ParameterCard::DefaultAsString='ASIO4ALL v2' AudioOutputDeviceAsio::ParameterCard::PossibilitiesAsString: getAsioDriverNames: ASIO driver list already loaded, doing returning cached list . AudioOutputDeviceAsio::ParameterCard::DefaultAsString='ASIO4ALL v2' AudioOutputDeviceAsio::ParameterFragmentSize::DefaultAsInt! ASIO_OpenAndQueryDeviceInfo driverName='ASIO4ALL v2' current='ASIO4ALL v2' asioDriver ALREADY OPENED, DOING NOTHING ! AudioOutputDeviceAsio::ParameterFragmentSize::DefaultAsInt returning 512 AudioOutputDeviceAsio::ParameterCard::PossibilitiesAsString: getAsioDriverNames: ASIO driver list already loaded, doing returning cached list . AudioOutputDeviceAsio::ParameterCard::DefaultAsString='ASIO4ALL v2' AudioOutputDeviceAsio::ParameterCard::PossibilitiesAsString: getAsioDriverNames: ASIO driver list already loaded, doing returning cached list . AudioOutputDeviceAsio::ParameterCard::DefaultAsString='ASIO4ALL v2' ASIO_OpenAndQueryDeviceInfo driverName='ASIO4ALL v2' current='ASIO4ALL v2' asioDriver ALREADY OPENED, DOING NOTHING ! AudioOutputDeviceAsio::ParameterSampleRate::DefaultAsInt returning optional<int> ::nothing (parameter CARD not supplied) AudioOutputDeviceAsio::ParameterSampleRate::PossibilitiesAsInt AudioOutputDeviceAsio::ParameterSampleRate::PossibilitiesAsInt returning empty v ector (parameter CARD not supplied) AudioOutputDeviceAsio::SampleRate value=44100 AudioOutputDeviceAsio::SampleRate value=44100 Starting disk thread...OK Scheduling 'C:\TPO-Ranks\ConcertFlute-Mono-Wurli-JoeHardy.gig' (Index=0) to be l oaded in background (if not loaded yet). Loading gig file 'C:\TPO-Ranks\ConcertFlute-Mono-Wurli-JoeHardy.gig'...OK Loading gig instrument ('C:\TPO-Ranks\ConcertFlute-Mono-Wurli-JoeHardy.gig',0).. .OK Caching initial samples...OK
I've built a fresh linuxsampler using the most recent SVN version (10thFeb 2009) and still have the issue. Tried it on a number of computers and have the same problem on all of them. This ia a 'show stopper' when trying to use linuxsampler on a computer with Adobe audio products and the 'Adobe Default Windows Sound' loads in linuxsampler (it is the 1st alphabetically) so the ASIO interface of the soundcard or of ASIO4ALL is not accessable.
Created attachment 50 [details] disable windows memory locking This patch, which actually is included in the old installer version of LS, solved some serious problems I had with the ASIO driver
Created attachment 51 [details] update of the asio device This patch was also included in the old installer version of LS. Graham, It would be great if you could try these patches to see if any of them solves your problem. The second one didn't make any difference for me, the first one was enough to solve the problems I had. But my problems wasn't the same as the one you had. (I only have one ASIO device). The first problem I had was that playing a midi file in Media Player crashed the whole machine with a BSOD in the graphics driver. The second problem was that ASIO often failed to initialize, so there was no sound, and the computer had to be rebooted to make the ASIO device working again.
> This patch was also included in the old installer version of LS. > > Graham, It would be great if you could try these patches to see if any of them > solves your problem. Hi, I have applied the patches and built from the latest CVS code and have the second ASIO device working in Fantasia. I want to do a little more testing but so far this is looking like the bug is resolved. Any idea why these patches needed to be re-applied - or were they not included in the CVS version even though they were included in the old installer version? Thanks! GrahamG
(In reply to comment #4) > Any idea why these patches needed to be re-applied - or were they not > included in the CVS version even though they were included in the old > installer version? They were included in the old installer, but never got committed to CVS. I don't know why for sure, but I guess it was just a mistake, that Benno simply forgot to commit them.
(In reply to comment #5) > They were included in the old installer, but never got committed to CVS. I don't > know why for sure, but I guess it was just a mistake, that Benno simply forgot > to commit them. Ok, I don't know how to commit, so could you commit these patches and then see if can get a few more testers trying it out - then set this bug to resolved so that the next release can begin.
OK. I've committed Benno's fixes now. As they already are included in the installer, I think one can say that they are tested, so I close this bug.
Closing this bug now, since it's fixed in the latest Windows release (2009-08-03).