Opened 18 years ago

Closed 18 years ago

#33 closed defect (fixed)

no MMOS2 or DART sound -- sound only through UniAud.dll API

Reported by: rlalla@… Owned by: vladest
Priority: normal Milestone:
Component: UNIAUD16 Version:
Severity: normal Keywords:
Cc:

Description

UniAud is only working through UniAud.dll API. When trying to use MMOS2 waveaudio or DART, I get error MCI 5134 (=device driver not found). Apparently UNIAUD16.SYS initialization does not complete properly. Log file ends with "OSS32_STREAM_WAVETABLE_MIDIOUT: TODO" string. Usually this message is produced in the middle of UNIAUD16 initialization. On another completely working system, UNIAUD16 initialization would create more message lines starting with "OSS32_MixSetVolume" and "OSS32_MixSetProperty" before MMOS2 starts.

Attachments (2)

alsa32.txt (2.7 KB ) - added by anonymous 18 years ago.
alsa32_2.txt (3.1 KB ) - added by Steve Wendt 18 years ago.

Download all attachments as: .zip

Change History (5)

by anonymous, 18 years ago

Attachment: alsa32.txt added

comment:1 by rlalla@…, 18 years ago

Is it possible to get read access to the UniAud16 source code? This would help to find out what answers/capabilities UniAud16 expects from UniAud32 to complete initialization.

comment:2 by Steve Wendt, 18 years ago

It seems that UniAud16 maintains a list of allowed audio device strings, and my audio device called "STAC92xx ..." is not among them. So I patched the strings contained in UniAud16.sys to include "STAC92xx". Now the UniAud32 log file goes a little bit further behind "...OSS32_STREAM_WAVETABLE_MIDIOUT: TODO" line. But there are more error messages to follow about "OSS32_MixSetVolume" and "OSS32_WaveSetHwParams".

  Unknown control 0
  OSS32_MixSetVolume failed: 4
  Unknown control 0
  OSS32_MixSetVolume failed: 4
  channels: 2, period size: 1408
  channels selected: 2
  OSS32_WaveSetHwParams (first pass) error -22
  bps: 16
  format: 2
  channels: 2
  sample rate: 22050

The issue with "OSS32_WaveSetHwParams" is, that UniAud32 "OSS32_QueryDevCaps" reported back to UniAud16 available sample rates between min.44100 and max.192000. So if UniAud16 is requesting rate 22050 from UniAud32 this call will fail. Wasn't there any sample rate conversion present in UniAud16?

The issue with "OSS32_MixSetVolume" is, that UniAud32 "OSS32_MixQueryCaps" reported back the CtrlCaps flag value =0x00102000 (no output volume control). Actually the STAC9221/HDA sound device has several playback volume controls ("front", "surround", "center", "lfe", "side"), but none of them contains one of the search strings "PCM" or "master" in its name. That is what OSS32_MixQueryCaps would be looking for.

by Steve Wendt, 18 years ago

Attachment: alsa32_2.txt added

comment:3 by vladest, 18 years ago

Resolution: fixed
Status: newclosed

fixed now

Note: See TracTickets for help on using tickets.