• 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
Re: Surround info please
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Surround info please


  • Subject: Re: Surround info please
  • From: "Dave Hoskins" <email@hidden>
  • Date: Mon, 26 Jun 2006 19:58:44 +0100

Hello, I've created my own subclass of the output element, and AUBase's CreateElement now creates my own output element. And the base element duly calls my GetChannelLayoutTags etc. But I'm at a block again, with no examples to draw from.

1. Is there any information I can find that explains more on filling out these functions? Do I simply return internal method variables? ( I've read the comments in the Scope header about NULL input vars etc)
2. If I want to handle different outputs/inputs like Stereo/Quad and 5 channel, can they be all on one element? If so why will I ever need more than one element?


It's a shame that the developers' sample code couldn't include the 'shell' of Apples Reverb or Pitch shift, just to give us newbies a greater nudge in the right direction, anway thanks for your patience, not sure why I've hit a brick wall here.

Dave Hoskins
www.quikquak.com


----- Original Message ----- From: "Dave Hoskins" <email@hidden>
To: <email@hidden>
Sent: Thursday, June 22, 2006 7:19 PM
Subject: Re: Surround info please



Thanks for the quick reply, so I subclass AUIOElement, then typedef the original to mine, and fill out the virtuals: GetChannelLayoutTags, GetAudioChennelLayout, SetAudioChannelLayout.
Seems a bit elaborate to me if I'm correct about the above. A simple function call to set specs would have done surely? Anyway thanks again for your help, I expect I'll be back though...
Dave H






On 22/06/2006, at 9:55 AM, Dave Hoskins wrote:

Hmm, O.K. thanks for the pointers Bill. Auval is showing that I needed to fix some things. I've noticed that Apple's AUReverb shows a list of named channel configs like 'Mono/Stereo' etc, I guess it gets these from the each element layout, but how do I code that specifcally? I've looked through a dozen projects on the net, and none of them go near this area.

The channel layouts are handled on the IOElements - have a look in AUScopeElement in the AUPublic dir... The idea is you subclass this and provide your own element type. The element type is where the format for input or output is kept too.


Also I find it a little confusing that it appears to set up only 2 stereo in and outs at the begining of the output of auval for Apples plugs even though they later say the can have 5. And it's a little weird that Apples reverb doesn't show in DP's 5.1 busses, but their pitch shift plugin does - it has a '(5.1)' next to it's name.

We don't generally provide support for .1 channels in our AUs. The LFE is normally handled differently (as sometimes the centre channel is as well) - so our AUs support 5.0 for example. If the bus is 5.1 (that is, 6 channels), then it probably has a mismatch in the channel counts.


Bill

A more literal help would be great, some source code would be fantastic! Unfortunately, flying half way around the world to a conference is not practical for me at the moment. Can anyone help please, I really need to get on with coding the actual DSP bits! ; )

Cheers,
Dave Hoskins
www.quikquak.com


On 20/06/2006, at 6:41 AM, Dave Hoskins wrote:

Hello all, I've been looking through this list for channel layout usage and examples. But all I've found is a couple of hints, and people saying there's examples in source code that I can't find, like the matrix reverb stuff.
Yes - if you run this AU in auval you'll see it has surround capabilities - and auval is testing the different configs, and the channel layouts that it reports.

I've created a reverb plug-in that can switch between 2/4/5 channels.
ok - so make sure that as the client changes your format to ensure that the ACL reflects the number of channels. We expect that the AU's ACL always reflects the number of channels of a bus correctly - and the AU itself has to play some role in maintaining this consistency (and checking it as well). How a format is set doesn't change of course - the ACL just provides meta information about a format - the role of each channel.

I've got as far as setting the number of channels, but functions like 'CreateElements' don't even show in the API references.
Because they aren't an API - its a part of the AU SDK and all the source is there. There's also some reference documents in / Developer/ Examples/CoreAudio/Documentation

And looking for anything using SetAudioChannelLayout turns up blank!
auval will do this

We're also going to be covering surround AU topics at this year's WWDC in some depth - if you can come to the conference I think you'll find the session useful (and we'll also be running a lab for more focussed Q & A time with developers)

Bill

Can anyone help please? I'll need a little more than 'just over- ride some functions' answers thanks. : )
Again I don't know why there are no examples of multi-channel audio units.


Thanks in advance,
Cheers, Dave Hoskins
www.quikquak.com

_______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
40apple.com


This email sent to email@hidden

--
mailto:email@hidden
tel: +1 408 974 4056
_____________________________________________________________________ ___ __
"Much human ingenuity has gone into finding the ultimate Before.
The current state of knowledge can be summarized thus:
In the beginning, there was nothing, which exploded" - Terry Pratchett
_____________________________________________________________________ ___ __





--
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.0.394 / Virus Database: 268.9.1/369 - Release Date: 19/06/2006




_______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden

--
mailto:email@hidden
tel: +1 408 974 4056
________________________________________________________________________ __
"Much human ingenuity has gone into finding the ultimate Before.
The current state of knowledge can be summarized thus:
In the beginning, there was nothing, which exploded" - Terry Pratchett
________________________________________________________________________ __





-- No virus found in this incoming message. Checked by AVG Free Edition. Version: 7.0.394 / Virus Database: 268.9.2/372 - Release Date: 21/06/2006




_______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden



--
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.0.394 / Virus Database: 268.9.2/372 - Release Date: 21/06/2006



_______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden


References: 
 >Surround info please (From: "Dave Hoskins" <email@hidden>)
 >Re: Surround info please (From: William Stewart <email@hidden>)
 >Re: Surround info please (From: "Dave Hoskins" <email@hidden>)
 >Re: Surround info please (From: William Stewart <email@hidden>)
 >Re: Surround info please (From: "Dave Hoskins" <email@hidden>)

  • Prev by Date: Re: Audio Units support for host applications
  • Next by Date: render inNumberFrames vs. pre/postRender inNumberFrames
  • Previous by thread: Re: Surround info please
  • Next by thread: Re: Don't exchange pointers, was Re: Objective-C++/C++ with CocoaUI Issue...
  • Index(es):
    • Date
    • Thread