OS/2, eCS & ArcaOS - Technical > Hardware

USBAUDIO: now supports 24-bit and sample frequencies > 65535 Hz

<< < (6/7) > >>

Rich Walsh:
It looks like what I wrote in my last posting was wrong.

After a lot more experimentation, I found that the WaveAudio and AmpMix components do work together. Surprisingly, it's the AmpMix setting that controls which WaveAudio component will be used (i.e. its own). As Lars noted, changing the WaveAudio default has no effect.

Even more surprising, you can create a completely bogus WaveAudio device in MMPM2.INI, make it the _only_ WaveAudio device, and your sound will still work.

In MMPM2.INI, under [Drivers], I changed 'Waveaudio' to "Waveaudio=JOEBLOWAVE01". I then made a copy of the three [UNIAUDWAVE01] sections and changed all references in them from UNIAUD to JOEBLO. With no [defaultnames] entries, UniAud's AmpMix was in control and sound came from my built-in Intel HD audio. With [defaultnames] set to use UsbAudio's AmpMix, sound was routed through my USB audio dongle. Even after deleting both UniAud and UsbAudio's [*WAVE*] sections, it still worked so those specific entries clearly weren't needed.

Finally, I deleted the "Waveaudio=" line under [Drivers] and rebooted. PM wouldn't start. It appears that the system needs (or at least wants) some of the info in the WaveAudio sections, but entries you'd think were important, like "PDDNAME=JOEBLO1$" are ignored.

All this suggests that Crystal and/or IBM's analysis of the problem was incorrect. The system uses whichever WaveAudio device is associated with the AmpMix device currently in use. It also suggests that my mix-and-match idea probably won't work: to get the benefits of UsbAudio's WaveAudio enhancements, you'll need a USB audio adapter.

P.S. All of my tests were conducted using only the two audio drivers mentioned. Other sound drivers may behave differently.

Lars:
If mix and match do not work the solution is still very easy:

modify UNIAUD CARDINFO.DLL to also use a new VSD driver for its WaveAudio, Midi, Ampmix respectively.
This new VSD could be a straight copy of USBAUDIF.DLL (or a source code copy, recompiled to another name) renamed to something different like UNIAUDIF.DLL. This is still necessary as our new USBAUDIF.DLL will finally allow to use sample rates > 65535 Hz.

For the matter of not completely confusing the user, it would be helpful to repack the whole UNIAUD installation to also install the necessary SPI.INI update (even though the result will be identical to what USBAUDIO installation needs) and to modify my new USBUPDT.DLL installation DLL (which explicitely sets default WAVEAUDIO and AMPMIX device) by renaming it and to set the defaults to the UNIAUD driver instead of the USB driver in order to help the user so that he does not have to fumble with MMPM2.INI

This is close to no rework at all. As always all the code that I have written can be found in the Netlabs USB repository. I still need to tweak it a little (brush up) but we are close to completion.

Lars:
I now uploaded USB 10.221 to Hobbes. I changed the USBAUDIO installation to no longer install a Sequencer (MIDI) device as USBAUDIO.SYS does not support MIDI. But I changed the installation so that the Ampmixer will now get its own page in the Multimedia Setup Object. That allows to not only select default WAVEAUDIO but now also default AMPMIX device and consequently it should now be possible to force WAVE play/record via USB audio.

Eugene Tucker:
Thank you Lars. The driver(s) work fine on my machine.

David McKenna:
 Thanks Lars! This seems to work with regular MP3 and WAV files, but I can't play any 24 bit WAV files (by double-clicking on them). I get an error saying 'The device driver cannot be opened or the required hardware is missing (rc=5006)'. Files are 24bit, 48KHz, 2 channel and are properly recognized if I right click on it and choose 'Open as..' -> 'Wavefile Info'. Far as I can tell the USBWAV codec is installed (using listprocs). Is this a limitation of the OS/2 player? What do you or Wim use to play 24 bit files?

 Still can't switch back and forth from Uniaud to USBWav, probably because there is no AmpMix page for UniAud. Unchecking the 'Default Device' under the USB Ampmix page doesn't stick for some reason. Once checked, USB is all I get until I go into MMPM2.INI and remove it from the [defaultnames] section. Can the Ampmix page for UniAud be added manually by tweaking MMPM2.INI? I'll play around with that...

 One other thing that seems obvious in retrospect... I uninstalled the old USB audio stuff using this package before re-installing, but the USB sequencer stuff was not removed (because it doesn't install it!). Have to use the last package (USBDrv220) to do it right.

Regards,

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version