• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Correct way to implement enhanced USB subwoofer support?
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Correct way to implement enhanced USB subwoofer support?


  • Subject: Correct way to implement enhanced USB subwoofer support?
  • From: Robert Muchsel <email@hidden>
  • Date: Mon, 3 Jun 2002 22:11:40 -0500

Dear list members,
I hope this is the correct mailing list. I found some comments about AppleUSBAudio in the archives, but please forgive me if this should be on the kernel list.

Summary: I want to implement a separate bass volume control and some other enhancements for a USB subwoofer under OS X.

Looking at the AppleUSBAudio, I have some questions regarding the correct way to implement this without violating the overall philosophy of the system.

1) It seems the general idea is to present the hardware as-is. However, in the case of the subwoofer (iSub support in AppleUSBAudio and AppleOnboardAudio), the device is hidden from the user. It seems to me that one would need support of multiple simultaneous system output devices if one wanted to present the subwoofer device to the user in the system control panel (however, regular applications probably only support one output so some kind of system (de-/)multiplexer would be required which should probably be avoided -- on the other hand, CoreAudio could probably do a good job selecting which frequencies go where). Are there any plans to change the current behavior?

2) If the subwoofer is going to be hidden from the user, what is the proper way to set the bass volume? The iSub code just takes (master*60)/max. Assuming one wanted to make the "60" configurable (personally, I think 60 is too much for the iSub), is there a special bass level AudioControl (like the 'vlme' for volume, but I couldn't find one for bass in the driver sources) that would maybe even be picked up by the system control panel (an on/off toggle would be nice too)?

3) Could I access CoreAudio functionality from the driver to route low frequencies and some middle frequencies (using a soft declining curve) to the subwoofer, all high ones (and some lower frequencies using a declining curve) to the "other" speakers? I want to avoid one cut-off frequency below which everything goes to the subwoofer and above which everything is routed to to the "other" speakers. Ideally the function should be user-configurable and access functionality already provided by the system...

For starters, it seems easy enough adding a 'subV' (for subwoofer volume) IOAudioLevelControl and then using FindEntryByNameAndProperty() to query its value, however I don't know whether that's the right way to do it (and I would probably have to add my own control panel that sets this value).

Last but not least, much of the code would probably be from AppleUSBAudio. I've seen some patches posted on this list and (of course) I wonder whether there's more that would bring the code to the current 10.1.4/.5 level, so users wouldn't have to suffer from bugs that have already been corrected. Also, users would probably have to install a patched version of AppleUSBAudio if they wanted the subwoofer to work with any USB speaker system currently supported by AppleUSBAudio (oh dear, major support nightmare) - could a modified version be placed in /Library instead of /System/Library?

Thanks for your advice
Robert
_______________________________________________
coreaudio-api mailing list | email@hidden
Help/Unsubscribe/Archives: http://www.lists.apple.com/mailman/listinfo/coreaudio-api
Do not post admin requests to the list. They will be ignored.

  • Prev by Date: Re: 24bit to 32 float
  • Next by Date: Re: 24bit to 32 float
  • Previous by thread: Re: 24bit to 32 float
  • Next by thread: 10.1.5 changes
  • Index(es):
    • Date
    • Thread