WAI
Status Update
Comments
gk...@android.com <gk...@android.com> #2
The deprecation is intentional, unfortunately there are too many problems with supporting global effects.
fr...@gmail.com <fr...@gmail.com> #3
There are indeed issues dealing with who gets to control audio effects, and conflicts with effects being already applied on a session different than 0. Yet it remains meaningful to allow something similar. Are you working on an alternative? I can help.
cr...@gmail.com <cr...@gmail.com> #4
Does anyone have some detailed information about these issues? Some discussions or announcements? I can't find anything but this small enhancement request.
For my project, I want to filter (apply a equalizer) to music played by any music player app with another app. This can either be done by knowing the audio session ID of the MediaPlayer of the player app (not quite possible) or get apply the effect to session 0. I guess, all equalizer apps you can find on the market do the later thing. Are there workarounds?
For my project, I want to filter (apply a equalizer) to music played by any music player app with another app. This can either be done by knowing the audio session ID of the MediaPlayer of the player app (not quite possible) or get apply the effect to session 0. I guess, all equalizer apps you can find on the market do the later thing. Are there workarounds?
tm...@gmail.com <tm...@gmail.com> #5
I came across this issue while searching for a way to query for existing session IDs. If a "global" session ID of 0 isn't allowed, then it should be allowable to introspect existing session IDs, e.g. to find the music stream and then apply the desired effect.
st...@gmail.com <st...@gmail.com> #6
try use mMediaPlayer.setAudioSessionId(BIND_ABOVE_CLIENT);
lv...@gmail.com <lv...@gmail.com> #7
I am looking for the same thing, I mean, for a way to Query currently active session IDs.
Is this solved?
Is this solved?
pa...@gmail.com <pa...@gmail.com> #8
Im trying to perform an auto-correction EQ which will want to act on the final mix output to correct for different room sounds.
I very much need to use audio Session 0 as I want my modifications to act on the mixed output stream. With this now deprecated Im really struggling as to how I can get access to this. It seems the only way to do this at the moment is to use root and work with asla directly. This alienates a large portion of the market and I would very much appreciate the re-introduction of a mechanism to apply effects/dsp/vst style plugins to the mixed output stream
I very much need to use audio Session 0 as I want my modifications to act on the mixed output stream. With this now deprecated Im really struggling as to how I can get access to this. It seems the only way to do this at the moment is to use root and work with asla directly. This alienates a large portion of the market and I would very much appreciate the re-introduction of a mechanism to apply effects/dsp/vst style plugins to the mixed output stream
ca...@hdsoundlab.com <ca...@hdsoundlab.com> #9
Given that sessionId= 0 is deprecated, could Google PLEASE add example code on developer.android.com regarding "how to inherit the current system wide audioEffect settings". It is a very logic thing for any media app X to inherit a global EQ setting created by a third app Y that specializes on EQ. One could say that this is a very basic feature that must be provided by the API of AudioEffect.
It could be as simple as a method Equalizer.inherit()
Since this is not available, people spend days and days trying to guess how to achieve this. It IS possible, because e.g. Tidal and Spotify, as well as some built-in media players of this or that Android device, has this functionality. As of Nov 2017
It could be as simple as a method Equalizer.inherit()
Since this is not available, people spend days and days trying to guess how to achieve this. It IS possible, because e.g. Tidal and Spotify, as well as some built-in media players of this or that Android device, has this functionality. As of Nov 2017
ru...@gmail.com <ru...@gmail.com> #10
Android still comes with a system wide EQ built in, no? Can you folks at least expose the bands for other apps to control.
ze...@gmail.com <ze...@gmail.com> #11
I've had a hearing test and found that I'm partially hearing-impared for my left ear, so I thought that an equalizer that would be capable of setting different curves for left and right channels would be a good idea for me.
I couldn't find any on the market, so I've built my own using android.media.audiofx.DynamicsProcessing and playing a single file embeded into my APK (res/raw/file.ogg).
I've used the pre-equalizer from DynamicsProcessing with 2 channels, and was thinking about using the post-equalizer for different pre-sets: classical, rock, flat, etc...
Once I was happy with the equalizer, I tried to attach it to an external Android player, such as Google Music Player and Pi Music Player to no avail.
This was very frustating because having the ability to define the equalizer curve independently for each ear has made a really profound difference in my case (and I'm sure there are many people with different hearing curves per ear out there).
I've started building my own music player, and it's working fine for playing local audio files from Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC)
The problem is: I can't attach my Equalizer to other apps, so I can't use it for streaming music from Google, Spotify, Amazon, etc...
Would you please enable android.media.audiofx.DynamicsProcessing globally? (maybe through Accessibility options)
I couldn't find any on the market, so I've built my own using android.media.audiofx.DynamicsProcessing and playing a single file embeded into my APK (res/raw/file.ogg).
I've used the pre-equalizer from DynamicsProcessing with 2 channels, and was thinking about using the post-equalizer for different pre-sets: classical, rock, flat, etc...
Once I was happy with the equalizer, I tried to attach it to an external Android player, such as Google Music Player and Pi Music Player to no avail.
This was very frustating because having the ability to define the equalizer curve independently for each ear has made a really profound difference in my case (and I'm sure there are many people with different hearing curves per ear out there).
I've started building my own music player, and it's working fine for playing local audio files from Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC)
The problem is: I can't attach my Equalizer to other apps, so I can't use it for streaming music from Google, Spotify, Amazon, etc...
Would you please enable android.media.audiofx.DynamicsProcessing globally? (maybe through Accessibility options)
aa...@gmail.com <aa...@gmail.com> #12
At the same time there are apps (that one for example https://play.google.com/store/apps/details?id=com.devdnua.equalizer&hl=en ) which somehow manage to attach to the global session? How do they do it? It's not the 0 session ID, because when I try it in my own app on the same device it crashes.
el...@google.com <el...@google.com> #13
you need to declare using permission "android.permission.MODIFY_AUDIO_SETTINGS" in order to apply effects to session 0.
I am surprised that the app crashes though. Are you catching exceptions when you create your effect?
I am surprised that the app crashes though. Are you catching exceptions when you create your effect?
fa...@gmail.com <fa...@gmail.com> #14
Comment has been deleted.
fa...@gmail.com <fa...@gmail.com> #15
Audio session 0 is the only way to take the effect control all many audio apps that do not correctly broadcast his audio id when the track changes! This is the real reason.
So please, deprecating this, you will make incompatible a lot of equalizer/effect apps that now are working well with Amazon Music, Youtube Music, Apple Music.....
So please, deprecating this, you will make incompatible a lot of equalizer/effect apps that now are working well with Amazon Music, Youtube Music, Apple Music.....
ja...@gmail.com <ja...@gmail.com> #16
Does anybody have an update on how these apps manage to capture the global session ID? This is the only thing keeping me from developing my app......
du...@gmail.com <du...@gmail.com> #17
I found a good description of the intended way to do this thanks to Mishaal Rahman. "The way this works is that media player apps opening a new audio session are expected to broadcast an intent that contains the session ID and the package name. The equalizer app registers a broadcast receiver to receive that intent and then uses the session ID to attach an audio effect to the audio session, with the package name optionally letting the equalizer app know what media player app it’s dealing with."
I still don't know what you would do if you wanted to apply your effects to a video game that doesn't broadcast its session IDs.
Read the rest here.
https://www.esper.io/blog/android-equalizer-apps-inconsistent
I still don't know what you would do if you wanted to apply your effects to a video game that doesn't broadcast its session IDs.
Read the rest here.
vi...@gmail.com <vi...@gmail.com> #18
If anybody is getting this error `cannot initialize effect engine for type : ` . Make sure to add `<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />` to AndroidManifest.xml, and BE SURE to uninstall the app then relaunch the app. Took me a while to realize u have to uninstall it beforehand.
Description
From the Android SDK doc, it's notified that attaching the stock Equalizer on audio session 0 is deprecated.
"NOTE: attaching an Equalizer to the global audio output mix by use of session 0 is deprecated."
It doesn't make sense to me. Equalization is mostly used to compensate for the acoustics of the headphones, or to tune the sound to one's taste. Either way, it should be applied globally to the device! Then why move to what seems like a model where each app do whatever it wants? I suggest to keep this possibility.
Cheers,
Fred