Hacker News new | ask | show | jobs
by tomduncalf 1339 days ago
Was going to say the same, a couple of years back I led a team shipping an audio app on iOS and Android (pretty simple in terms of audio demands) and Android was a nightmare. Different devices vary so much in terms of audio performance due to drivers, bugs and performance optimisations (e.g. Samsungs would ramp down the CPU to minimum frequency if you weren’t actively touching the screen) so testing is a huge undertaking if you want to cover a wide range of devices. Latency was a big problem, and the Android audio stack itself had plenty of issues. The situation did seem to be improving last time I looked though.

Then on top that you’d have the complexity of shipping a cross-platform app and either building large parts of it twice or using something like Flutter or React Native.

It must be annoying for Android users but the reality is that shipping an audio app for Android is (or was a couple of years ago at least) a huge challenge and probably much harder to make a compelling business case for.

WebAudio has similar issues in terms of wildly varying performance across devices (it used to be pretty poor on iOS for example, though I think this has improved) and relative to native, you’re pretty limited in terms of processing power. Again this is improving all the time, but I’d guess Note has a cut down version of Ableton’s synth engines and effects running rather than remaking them for the app, and running something of this complexity with WebAudio is likely to be very challenging if not impossible, especially on mobile.

3 comments

Those are some great insights, thank you for sharing.

Android notably does have some good apps for making music on it. There's a version of Cubasis on Android, Koala Sampler is on Android, Google had Teenage Engineering build a music app for Pixels, and I'm sure there's many other apps that have found a way to make it work, though I know for a fact that Koala Sampler has had issues with input latency due to the audio stack on certain Android Devices (where it becomes unplayable).

Apple's done a lot of work to make it a viable workflow on iOS/iPadOS. inter-app audio, AUv3, actual support for tablets, and a good audio stack are just some of the things they've done to make it a real platform for musicians. Google would have to put in a lot of work to make Android at all attractive to musicians and frankly I don't even know if it's worth their time. Still, they can do it and they've done a fairly good job of improving the state of Android for visual arts on tablets, so it's not impossible. Just a lot harder.

Yeah, I don’t see google ever having the incentive. Apple can onboard people with the far reach of iOS, and pull them into the Mac later on once they are hooked on audio products for iOS. With Android…you are a bit stuck as I don’t see ChromeOS becoming a center for audio production.
I have no preferences on Apple or Google. I use Mac and Android phone. But the Chrome team has spent lots of effort for web audio, especially the latest audioworklet api and wasm supporting gcfree rt audio. Yet on Safari their audio is way worse. Who knows the reason?
Yeah that is a good point that it is possible to ship a pretty good audio app, but it requires a lot of work (especially testing) or you restrict it to eg. just Pixels. I can imagine Ableton surveying their user base, finding them quite Apple-centric and mainly iOS users (just a guess!) and deciding it wasn’t worth the potentially huge amount of extra work to support Android, at least for v1.

Google did introduce Oboe a couple of years ago which was a new, much improved audio API, so they have put in work there. But yeah, there’s nothing like AUv3 as far as I know and the whole ecosystem must be so far behind what exists on iOS that it would be hard to justify many devs putting in the work. But it is possible to ship cool stuff with work for sure!

That comment about Samsung ramping down CPU activity makes me want to puke. This is why we can’t have nice things.
Ha! Yeah it was one of the more frustrating issues. At the time there was no way to opt out of it either, but I believe they subsequently issued a firmware update addressing it somehow.
It's also reported that Apple uses software to make old iPhone slower.
It only happens when the battery is aging and the iPhone would otherwise shutdown since it can not handle the voltage peaks. Since the reports Apple has now a battery health section in settings which warns actively when you need to replace the battery. For example my father just replaced the battery in my old 2015 6S plus and it works on full speed again.
It's a shame they didn't tell anyone about it, maybe they could have avoided that class-action lawsuit if they were a bit more transparent.
I should point out that the Samsung CPU speed thing was designed to save battery power, I guess the assumption being you only need full power when playing a game and when playing a game you’re touching the screen. Well intentioned but not much good for our app which integrated with a Bluetooth MIDI keyboard so users didn’t touch the screen at all!
Realtime no gc Web audio I'd possible with wasm: https://glicol.org/

And you are right iOS is still the worst in Web audio. But if I'm to make a choice, I choose Web audio for the cross platform support.

Yeah, AudioWorklet and WASM has opened up so many possibilities but the performance still can’t quite compare to native as far as I know. I guess the thing here is Ableton presumably weren’t willing to compromise on audio quality if they wanted to use their desktop sound engines, so probably wouldn’t have been able to make WebAudio in its current incarnation (on iOS at least) work well enough for high track counts.