Hello Eugene,

I am looking similar thing,

Do u have any luck or further information on your topic ?

I am also looking for a way to apply global audio effect to system wide 
audio out.

Let me know or reply here with further information.

Thanks in advance.
jrc

On Thursday, June 30, 2011 7:15:35 AM UTC+5:30, eugene wrote:
>
> Following up from a previous thread "AudioEffect integration" 
>
> Does anyone know the/a preferred way for an application to apply an 
> effect to the global output mix, and for the effect to remain applied 
> persistently (i.e. until removed). 
> On first thought I assume that the application that created the global 
> effect needs to remain alive. 
>
> In my testing I've noticed that when my Java app exits, the global 
> effect successfully continues to process audio playing on the device, 
> but I notice in the process list (in the Eclipse Devices tab) that my 
> application is still running. I understand this is not the Java 
> application, but the linux/C process that is still running. 
>
> If I manually [stop] this process, my global effect ceases (I can no 
> longer hear the effects of its processing). Therefore I assume that 
> this could also have occured if my process was killed by the system to 
> recover resources later on. 
>
> So my question is: Would I need to ensure my application continues to 
> run (e.g. using a background service) so that the effect (or the 
> process responsible for it) does not get cleaned up? 
>
>
>
>
> On Jan 22, 4:29 am, Eric Laurent <elaur...@android.com> wrote: 
> > Hi, 
> > 
> > There is no other documentation onaudioeffects framework than the 
> > java doc for APIs 
> > and the comments in EffectApi.h foreffectengine implementers. 
> > 
> > You are almost correct when saying that "effects are applied either 
> > per-track before mixing, or on the output mix". 
> > The exact statement would be that "INSERT effects are applied either 
> > perAUDIOSESSION before mixing, or on the output mix". 
> > With the exception ofaudiosession 0 which by convention refers to 
> > the output mix,  anaudiosession refers to either an AudioTrack or a 
> > group of 
> > AudioTracks. An inserteffectcreated on a particular session applies 
> > to all AudioTracks in that session. 
> > Now the AUXILIARY effects (currently only the Reverb when attached to 
> > output mix - session 0) are handled differently. An Auxiliaryeffect 
> > will process several inputs from AudioTracks (or MediaPlayers) and 
> > accumulate the result to the output mix. When the auxiliaryeffectis 
> > created, it will not process anything by default. An AudioTrack must 
> > be explicitly sent to the theeffectwith the attachAuxEffect 
> > method(). Then the amount of signal sent to theeffectis modified by 
> > the 
> > setAuxEffectSendLevel() method. This means that the AudioTrack has a 
> > WET path (going though theeffect) and a DRY path going directly to 
> > the output mix. So, yes, although instantiated on the session 0 
> > (output mix), auxiliary effects do not 
> > apply equally to all sources. 
> > 
> > The statement "sameeffectengine being used multiple times" means 
> > that INSIDE A GIVENAUDIOSESSION, the sameeffectengine is reused if 
> > 2 applications create 2 instances of a the sameeffecttype. 
> > 
> > There is no built-in mechanism in the framework to ensure that effects 
> > applied in different sessions do not conflict with each other. 
> > However, currenteffectlibrary implementation has an optimized 
> > processing when multiple effects are applied within the same session. 
> > It is up to to the implementor of platform specificeffectlibraries 
> > that would replace the default ones to add this type of optimizations. 
> > 
> > A similar reply applies to your last question. Theeffectengines are 
> > notified by theeffectframeworks ofaudiodevice changes. It is up to 
> > the implementor to alter the process according to the type of device 
> > or devices connected. 
> > For instance, current virtualizer implementation behaves differently 
> > whether headphones are connected or not. 
> > 
> > Hope this helps. 
> > 
> > Eric. 
> > 
> > > per-track before mixing, or on the output mix 
> > 
> > On Jan 20, 2:55 pm, eugene <eugene.ar...@dolby.com> wrote: 
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > > Hi 
> > > I'm looking to add some new AudioEffects into the framework and also 
> > > get a good understanding of the implementation architecture of the 
> > > AudioEffects framework. 
> > > I can't find any documentation about these. Is there any publicly 
> > > available that I've missed? 
> > 
> > > Specifically I'm not clear on how the Effects framework instantiates 
> > > effects when the sameeffectis applied to multiple tracks. Looking at 
> > > the AudioFlinger source code, it seems like effects are applied either 
> > > per-track before mixing, or on the output mix from the mixer. This all 
> > > makes sense, but the higher level APIs/Java API refers to: 
> > > * sameeffectengine being used multiple times 
> > > * CPU load limiting to allocate effects to particular users 
> > > * and some "connectMode" (EFFECT_INSERT or EFFECT_AUXILIARY), the 
> > > ultimate purpose/implementation of which I'm unsure. 
> > > In general, I'm not sure what this means for the implementation. 
> > > The documentation states that an EFFECT_AUXILIARYeffectmust be 
> > > created on the global output mix, but then implies that a media player 
> > > oraudiotrack will only be "fed into thiseffect" if they are 
> > > explicitly attached and a send-level is specified. How can aneffect 
> > > that is configured for session 0 (global output mix) end up not 
> > > applying to anaudiotrack from an application? Does it get mixed 
> > > seperately inAudioFlinger? 
> > 
> > > Also, is there a way to enforce that effects don't end up conflicting 
> > > with eachother? e.g. Bass enhancement applying on anAudioTrack and a 
> > > Bass enhancementeffecton the global output mix. 
> > 
> > > Finally, what doAudioEffectimplementations need to consider for the 
> > > case that the output device is transitioning from one to another (e.g. 
> > > speaker to bluetooth headset), or when 2 output devices are being used 
> > > at the same time (e.g. when ringtone plays it can play over speaker 
> > > and bluetooth headset simultaneously). 
> > 
> > > Thanks 
> > > Eugene

-- 
-- 
unsubscribe: android-porting+unsubscr...@googlegroups.com
website: http://groups.google.com/group/android-porting

--- 
You received this message because you are subscribed to the Google Groups 
"android-porting" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to android-porting+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to