12 ms·
Android does not have a functioning audio API. And really doesn't have the ability to mark threads as real-time that will stick. I've worked on Android game por
by Jasper_ 6y ago
Android does not have a functioning audio API. And really doesn't have the ability to mark threads as real-time that will stick. I've worked on Android game ports and done audio stack work, the whole thing is a shitshow and barely functions as documented. What their support team recommends in one version is quickly broken by hacks done by chip vendors and random bugs added to OS versions. Nobody at Google even tests basic scheduler behavior such that an extra 40ms can sneak in completely unnoticed. I've seen stuff far worse than this, they once broke their own cert test and nobody noticed for half a year.
- marcan_42 6y agoSure, but this is all painful for real-time use cases, like audio production and games. Playing video is not one of those, and there the more you buffer the better the battery life thanks to reduced interrupt load and longer CPU idle states.
- jfim 6y agoOut of curiosity, are the audio APIs any better on iOS? Core audio seemed to work pretty well the last time I used it on OS X, so I assume it does, but I'd be curious to hear your take on it.
- Jasper_ 6y agoI haven't used it, to be quite honest, the games I worked on had the Mac/iOS ports done by a different team, but since I was usually called in to help diagnose customer issues in live and never had to touch the Mac/iOS audio stuff, it probably worked well enough!
- dannyw 6y agoMuch better. In general, "creative" APIs (e.g. audio playback, camera/image processing) tend to have well-rounded APIs on iOS.
- leokennis 6y agoProbably unrelated observation. I use a MacBook for personal use and a Windows laptop for work. For many things, they both work well in general (Windows is better for "document stuff" and file management, Mac a little better in window management etc., but comparable in general). But when it comes to media stuff (think: cropping a lossless audio file and compressing the result into an AAC or MP3, resizing 20 images, transcoding a movie from one format to the other, removing one page from a PDF), on Mac it can usually be done with built in tools. On Windows you often need either a prohibitively expensive software suite or go on an ad infested crapware hunt resulting in a borderline unusable tool.
- mettamage 6y agoThis is my experience as well. I recently bought a Windows machine since a very long time as I want access to all 3 big operating systems (Mac, Windows, Linux). I forgot how terrible Windows can be with downloading stuff from the internet. I wanted to download a program so that I could control my fans a bit better. Before I knew it, it took over my browser and would redirect me to other sites, couldn't remove the program either. Norton didn't do its job, and I didn't do mine because I probably unchecked one box too few during the installation process. The only way to fix this was to wipe the disk completely. I've never had this experience on Mac or Linux.
- dlvktrsh 6y agoJust as a heads up to anyone out there, if you ever get infected run Malwarebytes (free) first and that should probably fix your woes or else you can download bitdefender (also free) and run that. I see a lot of people using norton or whatever else and imo they're all just a waste of resources and time. I personally just uninstall Malwarebytes and bitdefender after I clean up and make sure windows defenders up and running and I'm ready to download all kinds of shit off the internet again. I think the best way to find niche software on windows is to search for open source alternatives. Making a system restore point from time to time can help greatly too on windows! (make sure you change the setting so that it doesn't delete your old system restore points due to low disk space making the whole thing useless)
- deleted 6y ago[deleted]
- layoutIfNeeded 6y agoYou can tell by the plethora of realtime audio production apps for iOS that it’s pretty solid. CoreAudio is the best in its league.
- jan_Inkepa 6y agoMuch better. Last time I checked, there was a baseline audio latency on Android that makes realtime music apps (and decent audio responsiveness in games) basically impossible, vs on iOS where there's a giant ecosystem of them. See this blogpost (from 2018) that seems to confirm my recollections: https://www.synthtopia.com/content/2018/02/17/10-years-later-android-audio-quality-still-lags/ https://www.synthtopia.com/content/2018/02/17/10-years-later...
- nethunters 6y ago> Based on MAQ stats, devices from Apple & Google are suitable for live audio use, and devices from other manufacturers generally are likely to have glitchiness and latency that makes them unsuitable. Seems to be more of an issue with manufacturers than a specific issue with Android as Google's own phones get low latancies.
- lubonay 6y agoThat's kind of a moot point - most Android devices are not Google's own phones, so you can't ship a reliable user experience on most Android devices.
- nethunters 6y agoMy point was more that if Google can do it, other manufacturers can do it. The issue with other manufacturers is that they concentrate a lot more on features that are visible to users whereas features like these aren't necessarily visible directly to the user and aren't given attention even though they're possible to implement.
- pjmlp 6y agoAAudio is supposed to overcome that, although I never used, only care about graphics stuff. Isn't that the case in your experience?
- Mandatum 6y agoNo wonder Apple is lightyears ahead in A/V-land. At least with reliable OS and expected behaviour of hardware you don't need to worry about this.
- tomduncalf 6y ago>Android does not have a functioning audio API. I work on an app which relies on fairly low latency real-time audio (triggered by a MIDI keyboard) on both iOS and Android and have had more than my fair share of headaches with Android audio, but have to say that the Oboe audio API in the newer versions of Android has made things quite a lot better. We use JUCE as an abstraction layer over the audio APIs. > And really doesn't have the ability to mark threads as real-time that will stick. Yeah, we found this is the cause of a lot of real-time audio issues on Android. If you use systrace you can see that your audio thread is hopping from core to core. We get around this by manually setting the affinity of the audio thread to a certain core (working out which core to use requires some guess work sadly, there's meant to be a way to ask for the "best" core but it doesn't really seem to work).