Android vs. iOS: Music Apps (Latenzprobleme verhindern ALLE Chancen von Android)

DvP

Admiral
Registriert
März 2001
Beiträge
9.560
Hi Leute,


Ich bin gerade auf ein sehr interessantes Thema gestoßen, dass euch und extrem viele andere CB Besucher interessieren dürfte. Der Kampf zwischen iOS und Android ist ja für viele sehr spannend, doch auf seiten der Music-Apps ist es total eindeutig, da es hier große Probleme mit den Latenzen der Audioschnittstellen auf Android gibt. Darum ist es unmöglich sein Android Device (obwohl die Hardware perfekt dafür wäre) als digitales Instrument zu verwenden. Drums, Pianos und alles andere sind nicht mehr als absolut unbrauchbar! Ich fände es toll wenn ihr das Thema selbst in die Welt hinaus tragen würdet (Facebook, Twitter usw.) um die Android User darauf aufmerksam zu machen und einen gewissen Druck auf Google zu erzeugen hier nachzubessern, damit jeder ein besseres Android Gerät in der Tasche stecken hat. Es gibt auch eine Petition dafür der man sich anschließen kann und sollte:

http://code.google.com/p/android/issues/detail?id=3434
Ganz unten auf "Vote for this issue and get email change notifications " klicken!


Reportagen zu dem Thema:
http://www.musiquetactile.fr/android-is-far-behind-ios/
http://www.musiquetactile.fr/more-thoughts-on-audio-latency-in-android/
...inklusive offenem Brief an Google!

http://www.synthtopia.com/content/2...t-possible-to-play-music-on-an-android-phone/
"They compared latency on a variety of mobile devices. They found that, at best, Android devices have almost 20 times the latency of iOS devices:

iOS latency – 5.8 ms
Best Android device latency – 108.8 ms
Standard Android latency – 371.5 ms
"


Weitere interssante Erläuterung des Themas aus dem Thread:

"
Moranaga schrieb:
Die hohe Latenz des Android-Kernels liegt aller Wahrscheinlichkeit an dessen fehlender Echtzeitfähigkeit. Die braucht man, wenn man niedrige Latenzen will. Niedrige Latenzen braucht man, wenn man Musik damit machen will.

Hohe Latenzen machen sich bsp. dadurch bemerkbar, dass man eine Taste drückt, der Ton aber erst mit deutlicher Verzögerung hörbar wird. Oder wenn man eine Spur abspielt und gleichzeitig auf eine andere aufnimmt und beides partout nicht synchron bekommt. Grob ausgedrückt.

Der Android-Kernel ist ein Linux-Kernel. Es gibt Patches, um ihn mit Echtzeitfähigkeit auszurüsten. Das muss der Hersteller, hier Google, aber ausdrücklich tun, sie sind im Original-Quellkode nämlich nicht automatisch enthalten. Vermutlich ist das mangels erkennbarer Notwendigkeit bisher nicht geschehen.

Wer glaubt, das brauche kein Mensch, dem fehlt entweder schlicht die Phantasie, oder er hat noch kein iPad im Proberaum oder Studio gesehen. Oder keinen Synthesizer oder VST-Plugins bedient. Das Ding entwickelt sich gerade zur ultimativen mobilen Musikmaschine, und Android hinkt ganz gewaltig, wenn nicht gar bereits hoffnungslos abgeschlagen, hinterher. Siehe ganz oben.

Ich mag Apple nicht und habe bisher keines ihrer Produkte gekauft. Aber als (Hobby-)Elektromusiker stehe ich ganz kurz davor, mir ein iPad zuzulegen. Weil Touchscreens ideal für intuitiv erzeugte Elektromucke sind. Und weil ich nicht warten will, bis Android ganz eventuell mal in drölfzig Jahren vielleicht den Vorsprung von Apple wettgemacht hat, wenn überhaupt. Da hat Google eindeutig eine sehr wichtige Entwicklung verpennt.

(Das ist in etwa wie die Frage, ob man Musik unter Linux oder Windows machen will, nämlich: gar keine. Die Sache ist längst entschieden. Und das sage ich als Linux-Systemadministrator.)
"

Ich hoffe von euch gibt es dazu Stellungnahmen oder gar Schützenhilfe. Wie es schon bei "The Shawshank Redemption" heißt. Es ist alles nur eine Frage von Zeit und Druck, wie in der Geologie ;)


Vielen Dank und freundliche Grüße,
DvP
 
Zuletzt bearbeitet:
Ich sehe irgendwie das Problem nicht, kein Handy/Tablet ist dazu gemacht um Musik zu machen. Die meisten Apps dafür sind eher spielerei und ein richtiges Instrument das nur dafür gemacht ist kann man damit sowieso nicht ersetzen.
 
Bitte schaut euch mal den Artikel von Musictactile an, der sagt schon einiges! Bei dem Google Code Issue findet man auch richtig detaillierte Infos zu dem Problem. Für jene die es weniger interessiert warum das so ist: Das Problem ist einfach da, so lange Google dran arbeitet. Und das machen sie nur wenn die Nutzer einen lauten Request rausbrüllen. Also bitte helft die Thematik aus dem stillen Kämmerlein zu holen. Google wird jeden Klick zählen der bei dem Issue gemacht wird.

@theonlyfreak
Sorry, aber das ist einfach nur falsch. Erstens bist du hier falsch wenn dich das Thema nicht interessiert und andererseits kann ein iOS Device ein vollwertiges digitales Instrument sein, was schon direkt auf der Bühne eingesetzt wird. Mein Kumpel hat auch eines und du glaubst nicht was alles möglich ist, wenn er im Proberaum sein iPad ans Mischpult dazuhängt.
"Die meisten Apps sind eher Spielerei"!? Sorry, aber du solltest dir mal ansehen welch Professionelle Audiosoftware es schon auf iOS gibt. Low Latency ist dafür einfach Vorraussetzung!
 
Zuletzt bearbeitet:
Ich denke der Unterschied liegt allein bei der Tatsache das Apple ein geschlossenes System ist also OS+Hardware sind aufeinander abgestimmt.
Zusammen mit dem SOC Design des A4 sorgt dies für eine geringe Latenz wohingegen Android eher einem Framework ähnelt zusammen mit einem Kernel der je nach Hardware unterschiedlich aussieht gepart mit den verschiedensten Hardwarekonstrukten der verschiedenen Hersteller ergibt das eine solch hohe Latenz auf Android.

Dennoch würde ich jeden Sampler einem Touchdevice vorziehen.
 
Kannst du mal bitte kurz erklären, was eigentlich das problem ist? Versteh das aus deinem Text und den verlinkten Artikeln nich wirklich :/
 
ndk wird in android 4 supported.
wo ist jetzt das problem? willst du die features in alten android versionen haben oder wie?

bevor noch mehr "mutmaßungen" hier auftauchen ;D

http://developer.android.com/sdk/android-4.0-highlights.html
New media capabilities

Low-level streaming multimedia

Android 4.0 provides a direct, efficient path for low-level streaming multimedia. The new path is ideal for applications that need to maintain complete control over media data before passing it to the platform for presentation. For example, media applications can now retrieve data from any source, apply proprietary encryption/decryption, and then send the data to the platform for display.

Applications can now send processed data to the platform as a multiplexed stream of audio/video content in MPEG-2 transport stream format. The platform de-muxes, decodes, and renders the content. The audio track is rendered to the active audio device, while the video track is rendered to either a Surface or a SurfaceTexture. When rendering to a SurfaceTexture, the application can apply subsequent graphics effects to each frame using OpenGL.

To support this low-level streaming, the platform introduces a new native API based on Khronos OpenMAX AL 1.0.1. The API is implemented on the same underlying services as the platform’s existing OpenSL ES API, so developers can make use of both APIs together if needed. Tools support for low-level streaming multimedia will be available in an upcoming release of the Android NDK.
 
Zuletzt bearbeitet:
Soll ich dir sagen, warum sich Google nicht darum kümmert:
Weil das kein Mensch braucht.

Also mal ehrlich, wer sein Tablet/Smartphone als Gitarre oder Ähnliches verwendet, hat keinen Sinn für Musik.
Es gibt bei Android gerade wichtigere Probleme als diese Latenz
 
frequence schrieb:
Ich denke der Unterschied liegt allein bei der Tatsache das Apple ein geschlossenes System ist also OS+Hardware sind aufeinander abgestimmt.

Altes (falsches) Gerücht. Auf PC bzw. Mac hat man immer wieder das gleiche behauptet und wenn man sich nen Hackintosh gemacht hat (OSX auf Windows PC) war die Latenz plötzlich weg ;)

DonnyDepp schrieb:
ndk wird in android 4 supported.
wo ist jetzt das problem? willst du die features in alten android versionen haben oder wie?

Danke! Guck ich mir sofort an. Obs auch schon Apps gibt? Die verlinkten Artikel sind ziemlich neu aber dazu hab ich bisher nix gesehen.

Darktrooper1991 schrieb:
Weil das kein Mensch braucht.
So ein Schmarrn. Vielleicht solltest du erstmal oder direkt nur für dich selbst sprechen. Schau dir mal an was ich "heonlyfreak" zu dem Thema geschrieben hab und vielleicht guckst du mal aus der Ecke deiner Anwendungen raus was zigtausende Musiker auf der Welt mit ihren iOS Devices machen.
Auch an dich die Frage: Was willst du in dem Thread wenn dich das Thema nicht interessiert? Pöbeln? Die Topic war wohl eindeutig genug.
 
Zuletzt bearbeitet:
AFAIK liegt es nicht an der API, sondern am Kernel. Manche Musikprogramme haben besondere Echtzeit-Anforderungen, die der normale Linux-Kernel nicht erfüllt. Es gibt spezielle Realtime-Kernels, die genau dafür gedacht sind (einige spezialisierte Distributionen wie Ubuntu Studio verwenden das standardmäßig), aber Android hat offensichtlich keinen solchen Kernel.

Edit: Das war als Antwort auf viel weiter oben gedacht ^^
 
1. Sage ich ja nicht das alles spielerei ist, gute Software habe ich niemals ausgeschlossen.
2. Instumente wie ein Piano welches du als beispiel nennst, wird ein richtiges Piano niemals ersetzen können da man einfach nicht genügend Oktaven gleichzeitig auf das Pad bekommt in einer vernünftigen größe.
3. Gibt es einen großen unterschied zwischen Musik erzeugen mit technischen Gerätschaften und Klassische Musikinstrumente ersetzen, für mich ist es nicht ersichtlich worum es im Eröffnungspost geht. Von daher gehe ich ersteinmal davon aus das Musikinstrumente gemeint sind wie Piano,Schlagzeug,Gittarren etc und da ist auch die beste Software noch nicht soweit diese vollwertig zu ersetzen.
 
Ach Leutz versucht ihm doch lieber zu helfen anstatt über den Sinn zu diskutieren. Jeder hat andere Ansprüche PUNKT!
 
@ NullPointer
Danke für die Erklärung!

@ theonlyfreak
Also mir ist schon klar, dass man den ersten Post missverstehen kann, vor allem wenn man sich die Links nicht ansieht. Aber wenn du aus dem Gelesenen folgerst, hier ginge es um eine Grundsatzdiskussion klassische Instrumente zu ersetzen, oder was besser ist, dann weiß ich nicht wirklich was du gelesen hast.
Das Beispiel mit dem Piano war auch etwas daneben, da du die Oktaven locker auf ein Pad bekommst, es wird nur nicht so aussehen wie ein Piano, muss es aber auch nicht.

@ ultravoire
THX, ich weiß auch nicht so wirklich was hier mit einigen abgeht. Schreibt doch gleich ich solle lieber mit meinem Androiden telefonieren anstatt sonst was zu machen!?

@ DonnyDepp
Zu dem Thema: "Low-level streaming multimedia" findet man nicht wirklich was. Auch nicht wann/ob Apps das unterstützen werden und ob dieses Feature überhaupt etwas an der Problematik ändern wird.
 
Die hohe Latenz des Android-Kernels liegt aller Wahrscheinlichkeit an dessen fehlender Echtzeitfähigkeit. Die braucht man, wenn man niedrige Latenzen will. Niedrige Latenzen braucht man, wenn man Musik damit machen will.

Hohe Latenzen machen sich bsp. dadurch bemerkbar, dass man eine Taste drückt, der Ton aber erst mit deutlicher Verzögerung hörbar wird. Oder wenn man eine Spur abspielt und gleichzeitig auf eine andere aufnimmt und beides partout nicht synchron bekommt. Grob ausgedrückt.

Der Android-Kernel ist ein Linux-Kernel. Es gibt Patches, um ihn mit Echtzeitfähigkeit auszurüsten. Das muss der Hersteller, hier Google, aber ausdrücklich tun, sie sind im Original-Quellkode nämlich nicht automatisch enthalten. Vermutlich ist das mangels erkennbarer Notwendigkeit bisher nicht geschehen.

Wer glaubt, das brauche kein Mensch, dem fehlt entweder schlicht die Phantasie, oder er hat noch kein iPad im Proberaum oder Studio gesehen. Oder keinen Synthesizer oder VST-Plugins bedient. Das Ding entwickelt sich gerade zur ultimativen mobilen Musikmaschine, und Android hinkt ganz gewaltig, wenn nicht gar bereits hoffnungslos abgeschlagen, hinterher. Siehe ganz oben.

Ich mag Apple nicht und habe bisher keines ihrer Produkte gekauft. Aber als (Hobby-)Elektromusiker stehe ich ganz kurz davor, mir ein iPad zuzulegen. Weil Touchscreens ideal für intuitiv erzeugte Elektromucke sind. Und weil ich nicht warten will, bis Android ganz eventuell mal in drölfzig Jahren vielleicht den Vorsprung von Apple wettgemacht hat, wenn überhaupt. Da hat Google eindeutig eine sehr wichtige Entwicklung verpennt.

(Das ist in etwa wie die Frage, ob man Musik unter Linux oder Windows machen will, nämlich: gar keine. Die Sache ist längst entschieden. Und das sage ich als Linux-Systemadministrator.)
 
@ Moranaga
Danke für die weiteren Erläuterungen. Diese sollte ich gleich mal in den ersten Post packen ;) Du solltest die Petition auf jeden Fall abzeichnen und ich wäre dir (wie allen anderen) auch extrem dankbar. Google müsste eigentlich selbst schon gesehen haben wie kreativ die Musiker mit den iOS Devices arbeiten können und welch geile Resultate da möglich sind.
Ich hab übrigens selbst schon 2-3 Konzerte gesehen wo iPads als Synthesizer auf der Bühne genutzt werden. Auch in der DJ Szene macht das gerade Schule weil die Möglichkeiten einfach unbegrenzt sind. Wer verpasst hat wie professionell die Geräte verwendet werden können, sollte sich mal sowas ansehen:

irigmidi2.jpg


irigmic-prodmenu3.jpg


iPB-10_front.jpg


idj_music_mixing_ipad_station_2.jpg


http://3.bp.blogspot.com/-Z1dVdTqibQ0/TsoPZYBNkwI/AAAAAAAAAA0/70sW7wjJ6ys/s1600/musicdock.jpg
 
Zuletzt bearbeitet:
das problem mit der verzögerung hatte java damals auch jahrelang.
das android ndk ist im prinzip nicht anderes als ein toolkit, um performancekritischen code generieren zu lassen und eine ausführung mit jni zu ermöglichen.

im moment gehen die meisten benutzerinteraktionen durch die dalvik-vm zum kernel, weiter an die hardware und die reaktion wieder durchn kernel in die dalvik-vm.
dabei muss das nicht eine linie sein, wahrscheinlich gibts vor dem eigentlichen kernelaufruf noch ne menge methoden drumrum.
das würde bei native calls (aus der eigentlich applikation) wegfallen.

jni:
http://docs.oracle.com/javase/6/docs/technotes/guides/jni/spec/intro.html
"You want to implement a small portion of time-critical code in a lower-level language such as assembly."

http://developer.android.com/sdk/ndk/overview.html#contents
"OpenSL ES native audio libraries"

http://www.khronos.org/opensles/
"Target Applications
Multimedia interactive applications (Mixers, composers, DJ apps)"


so eine java-vm ist schon eine lahme sache, aber sonst würde nur ein hersteller android geräte bauen, so wie apple als einziger ios-geräte baut.
oder die programmierer müssten sich wieder mit modellspezifischen registertabellen rumplagen, wie vor 10 jahren.
 
Zuletzt bearbeitet:
DonnyDepp schrieb:
ndk wird in android 4 supported.
wo ist jetzt das problem? willst du die features in alten android versionen haben oder wie?

bevor noch mehr "mutmaßungen" hier auftauchen ;D

Das Problem ist noch nicht gelöst mit ICS 4.0:

Comment 218 by vatam...@gmail.com, Nov 12, 2011

> Does the updated Android ICS NDK support low latency audio?

Nope. Go get that iPhone. Because I don't think we'll get low latency audio any time soon. NDK v7 just came out. They have OpenAL support but the same warning as for OpenSL applies:

"""
OpenMAX AL have no Dalvik-related overhead such as garbage collection pauses. However, there is no additional performance benefit to the use of OpenMAX AL other than this.
"""

So that is a big NO on the low latency. At least they are honest and obvious about it.
Quelle: http://code.google.com/p/android/issues/detail?id=3434
 
@ DonnyDepp: Ich denke Du hast recht (Mein Verständnis für Java ist nicht sehr weitreichend).
Doch gibt es auch, wenn ich es richtig verstehe, eine SDK-API mit dem Titel "OpenMAX AL":

"To support this low-level streaming, the platform introduces a new native API based on Khronos OpenMAX AL 1.0.1"

Und OpenMAX AL erlaubt angeblich low-latency audio streaming.
Wobei berichte sich anscheinend nicht einig sind:
z.B: http://www.reddit.com/r/androiddev/comments/muvgt/does_ics_have_better_audio_latency/
" We're talking 40-50ms at best."

Ich danke man muss sehen, was die Entwickler daraus machen. ICS ist grad mal raus und das GNex kommt morgen glaub ich erst in den USA raus ( Ich bekomme meins heute abend vom MM :-) *freu* ).
Persönlich vermute ich dass ICS eine Verbesserung bringt, aber nicht an iOS rankommt.
 
Zurück
Oben