reTONE
HerunterladenKostenlos · ab Android 4.0

Die reTONE-App ist derzeit auf Englisch und Japanisch verfügbar. Weitere Sprachen sind geplant.

Technische Hinweise

Technische Daten, wie Umwandlung und Ausgabe funktionieren, getestete Geräte und weitere Details. Dies ist die Fortsetzung von Funktionen.

Wichtigste Daten

Android4.0 und neuer
CPUARM (armeabi-v7a, arm64-v8a). Intel-Builds (x86, x86_64) sind ebenfalls enthalten (auf einem Intel-Telefon noch nicht getestet)
BerechtigungenSpeicherzugriff und weitere. Internetzugriff wird nur genutzt, wenn „Network features“ eingeschaltet ist
Von der reTONE-Engine gelesene FormateWAV, AIFF/AIFC, DSF, DFF (unkomprimiert), FLAC, ALAC, Opus (Opus nur auf ARM-Telefonen)
Von der reTONE-Engine verarbeitete TitelAndroid 4.x: alle FLAC- und WAV-Dateien. Android 5 und neuer: auf Wegen über den Mixer von Android FLAC, WAV und ALAC, deren Rate vom Ausgang abweicht oder deren Bittiefe über 16 Bit liegt (lässt sich mit der Einstellung „Conversion by reTONE“ ausschalten)
AbtastratenwandlungFIR-Filter mit Kaiser-Fenster (Polyphase). Innerhalb von ±0.001 dB bis 20 kHz (Entwurfswert; für Umwandlungen zwischen Raten ab 44.1 kHz)
Von der Engine an Android übergebenes Format32-Bit-Float ab Android 5, 16 Bit unter 4.x (Dither nur für Werte, die 16 Bit nicht exakt darstellen können). Die Bittiefe am Ausgang des Telefons hängt vom Telefon ab
USB DACUSB Audio Class 2. Class 1 wird ebenfalls unterstützt (bisher nur begrenzt in der Praxis getestet). Titel mit Raten, die der DAC unterstützt und das Telefon übertragen kann, werden ohne Resampling gesendet. 32-Bit-Container werden bevorzugt (24 oder 16 Bit, wenn nicht verfügbar). Natives DSD unter bestimmten Bedingungen
SignaturAlle verteilten Versionen sind mit demselben Schlüssel signiert

Unterstützte Formate

Formate, die das Android des Telefons abspielen kann, werden mit dem Decoder und der Klangverarbeitung des Telefons wiedergegeben. DSD, AIFF sowie Hi-Res-FLAC und -WAV, die Android nicht lesen kann, gibt die reTONE-Engine wieder.

Wiedergabe durch AndroidFLAC, AAC, MP3, Ogg Vorbis, WAV, Opus und mehr
Wiedergabe durch die reTONE-EngineDSD (DSF, DFF), AIFF, 32-Bit-WAV, ALAC (wenn das Telefon sie nicht abspielen kann). Unter Android 4.x alle FLAC- und WAV-Dateien sowie Opus (auf ARM-Telefonen). Außerdem versucht die Engine von reTONE, FLAC, WAV, AIFF, ALAC oder Opus abzuspielen, wenn Android daran scheitert (bei ALAC und Opus auch dann, wenn die Wiedergabe ohne Fehlermeldung hängen bleibt)
Nicht unterstütztDST-komprimierte DFF, APE, WMA Lossless

Technische Details

Bei verlustfreien oder unkomprimierten Titeln stellt jeder korrekt geschriebene Decoder dieselben Daten wieder her. Abgesehen von den Klangeffekten des Telefons verändert sich der Klang vor allem an drei Stellen: bei der Abtastratenwandlung, beim Kürzen der Bittiefe und bei der Lautstärkeberechnung und im Mixer. Darum kümmert sich reTONE.

Hintergrund: Was die Klangqualität beeinflusst

Verlustfreie Titel wie FLAC und unkomprimierte Titel wie WAV werden von jedem korrekt geschriebenen Decoder exakt in die ursprünglichen Daten zurückverwandelt, egal welche App sie abspielt. Was den Klang verändern kann, ist die Verarbeitung nach dem Dekodieren (die drei Schritte unten sowie die Klangeffekte des Telefons).

Abtastratenwandlung

Viele Android-Telefone legen ihre Ausgabe auf eine Rate wie 48 kHz fest. Titel mit einer anderen Rate, etwa CD-Audio oder Hi-Res-Audio, werden bei jeder Wiedergabe umgerechnet. Die Qualität dieser Umwandlung ist von Telefon zu Telefon verschieden.

Kürzen der Bittiefe

Bei älteren Android-Versionen werden 24-Bit-Titel auf 16 Bit gekürzt.

Lautstärkeberechnung und Mixer

Auch die Lautstärkeberechnung und das Mischen mit dem Ton anderer Apps finden unmittelbar vor der Ausgabe statt.

Hier arbeitet reTONE. Wo eine Umwandlung nötig ist, übernimmt reTONE sie selbst, und wo sie sich vermeiden lässt, wird nicht umgewandelt. Bei USB DACs gelangt das Audio direkt zum DAC, ohne die Audioverarbeitung von Android zu durchlaufen. Sind die Bedingungen mit einem USB DAC erfüllt (siehe „Lautstärke von USB DACs“ unten), zeigt der Bildschirm mit dem Signalweg, den Sie vom Player aus öffnen, BIT-PERFECT an. Beim eingebauten Lautsprecher oder der Kopfhörerbuchse lässt sich nicht prüfen, wie das Telefon das Audio nach Android weiterverarbeitet, daher können wir keine bitgenaue Ausgabe garantieren.

Die Abtastratenwandlung unterscheidet sich von Telefon zu Telefon

Android bringt jeden Ton vor der Wiedergabe auf die Ausgaberate des Telefons. Diese Rate ist je nach Telefon verschieden: Viele arbeiten mit 48 kHz, manche mit 44.1 kHz. Derselbe Titel kann also auf einem Telefon umgewandelt und auf einem anderen unverändert gelassen werden.

Abtastrate des TitelsTelefon gibt 44.1 kHz ausTelefon gibt 48 kHz aus
44.1 kHz (CD usw.)Keine UmwandlungUmwandlung in 48 kHz
48 kHzUmwandlung in 44.1 kHzKeine Umwandlung
88.2, 96, 192 kHzUmwandlung in 44.1 kHzUmwandlung in 48 kHz

Von uns geprüfte Beispiele: 44.1 kHz Ausgabe beim Sony Xperia P und Xperia go; 48 kHz Ausgabe beim SHARP AQUOS CRYSTAL 305SH, KYOCERA URBANO L03 (KYY23), Raku-Raku Smartphone F-06F und Samsung Galaxy S8. Manche Telefone unterstützen beide Raten, welche sie tatsächlich verwenden, hängt aber vom Aufbau des Telefons ab.

Die Qualität der Android-eigenen Umwandlung hängt auch von den Einstellungen des Telefons ab. Unter den geprüften Telefonen waren das KYY23 und das 305SH mit Android 4.4 auf höchste Qualität eingestellt, während das Galaxy S8 mit Android 9 keine Einstellung hatte und die mittlere Standardqualität verwendete (die unter hoher Last noch weiter sinkt). Bei Titeln, die die reTONE-Engine selbst wiedergibt, überlässt reTONE die Umwandlung nicht Android, wenn sie sich nicht vermeiden lässt: Es wandelt einmal selbst um und übergibt den Ton genau mit der Ausgaberate des Telefons.

Die Umwandlung durch Android entfällt, wenn der Titel bereits der Ausgaberate des Telefons entspricht, auf Telefonen mit Android 10 und neuer, die die Direktausgabe unterstützen, und mit einem USB DAC. Manche Geräte, darunter bestimmte DAPs, sind außerdem auf Firmware-Ebene so gebaut, dass sie überhaupt nicht umwandeln.

Ob der Audiochip des Telefons nach der Ausgabe von Android intern noch einmal umwandelt, ist für eine App nicht sichtbar. Die von reTONE angezeigte Ausgaberate ist der Wert, den Android meldet. Die Ausgaberate eines Telefons und ob eine Umwandlung stattfindet, sehen Sie unten im Bildschirm „Now Playing“ und unter „Device & audio“.

Der Audioweg

Ist die Ausgaberate des Telefons auf 48 kHz oder ähnlich festgelegt, lässt sie sich ohne Root nicht ändern, sodass Titel mit einer anderen Rate (CD-Audio mit 44.1 kHz oder Hi-Res-Audio mit 88.2, 96 oder 192 kHz) nicht ohne Umwandlung abgespielt werden können. Unter Android 4.x und ab Android 5 auf Wegen über den Mixer rechnet reTONE die Titel, die seine Engine abspielt, in hoher Qualität um, bevor es sie an Android übergibt, sodass die Umwandlung durch Android nicht stattfindet (zur Umwandlungsqualität siehe „Resampling-Filter“ unten). Bei USB DACs findet bei Raten, die der DAC unterstützt und das Telefon übertragen kann, keine Umwandlung statt; wird die direkte Ausgabe genutzt, wandelt Android nichts um (was danach geschieht, steht unter „Was die Direktausgabe überspringt“ unten).

Android 4.xFLAC, WAV, DSD, AIFF
Titeldatei reTONE-EngineRechnet anstelle von Android um (nur bei Bedarf) AndroidEmpfängt 16 Bit, keine Umwandlung Lautsprecher / Ohrhörer
Android 5 und neuerWege über den Mixer. DSD, AIFF sowie FLAC/WAV/ALAC, die umgewandelt werden müssen
Titeldatei reTONE-EngineRechnet anstelle von Android um AndroidEmpfängt Float, keine Ratenwandlung (bei Telefonen mit 16-Bit-Ausgabe hier auf 16 Bit reduziert) Lautsprecher / Ohrhörer
Android 10 und neuerTelefone, die die Direktausgabe unterstützen
Titeldatei reTONEVerpackt verlustfreies 16-Bit-Audio neu als 24 Bit AndroidDirektausgabe Lautsprecher / OhrhörerWas danach geschieht, hängt vom Telefon ab
USB DACÜber OTG angeschlossen (alle Titel)
Titeldatei reTONEVom DAC unterstützte Raten werden unverändert gesendet, andere umgerechnetUmgeht Android USB DAC

Von reTONE verarbeitetVon Android verarbeitet

Titel, deren Abtastrate der Ausgabe des Telefons entspricht, brauchen keine Umwandlung, daher findet auch bei der Standardwiedergabe von Android keine statt. Formate, die nicht über die reTONE-Engine laufen, etwa MP3 und AAC, nutzen die Standardwiedergabe von Android, und Android rechnet sie um, wenn ihre Rate von der Ausgabe des Telefons abweicht (bei der Wiedergabe über einen USB DAC sendet reTONE auch diese). DSD und AIFF gibt die reTONE-Engine auch unter Android 10 und neuer wieder.

Im Detail

reTONE übernimmt je nach Titelformat, Android-Version und Ausgang unterschiedlich viel. Bei PCM-Titeln findet auf den Wegen, die reTONE selbst bearbeitet, höchstens einmal eine Abtastratenwandlung statt (intern kann eine Umwandlung mehrere Filterstufen nutzen) (bei DSD höchstens einmal nach der DSD-zu-PCM-Stufe). Bei Bluetooth verarbeiten das Telefon und der Bluetooth-Codec das Audio danach weiter. Die Wiedergabe baut auf MediaPlayer und AudioTrack von Android auf; die Engine von reTONE (in C geschrieben) übernimmt davor die Dekodierung und Umwandlung.

Android 4.x: Viele Telefone mit Android 4.x öffnen den Musikausgabe-Thread mit einer festen Rate wie 48 kHz, und Titel mit einer anderen Rate, etwa 44.1 kHz oder 96 kHz, werden im Mixer von Android umgerechnet, bevor sie erklingen. Apps haben keine Möglichkeit, diese Umwandlung zu verhindern. Der Standard-Decoder unter 4.x kann außerdem 24-Bit-FLAC auf 16 Bit reduzieren oder 192-kHz-FLAC nicht öffnen. Deshalb liest unter 4.x die Engine von reTONE alle FLAC- und WAV-Dateien sowie DSF, DFF und AIFF, wandelt sie einmal in die Ausgaberate des Telefons um (der Wert von AudioTrack.getNativeOutputSampleRate) und übergibt sie als 16 Bit. Der Mixer von Android nimmt 16-Bit-Audio mit derselben Rate unverändert entgegen, sodass auf der Android-Seite keine Abtastratenwandlung stattfindet. Beim Reduzieren auf 16 Bit werden Werte, die 16 Bit exakt darstellen können (etwa CD-Audio, das ohne Umwandlung durchgereicht wird), unverändert übergeben; andernfalls wendet reTONE TPDF-Dither an, und bei einer Ausgabe mit 44.1 kHz oder 48 kHz nutzt es Noise Shaping mit Fehlerrückführung (das gewichtete 5-Tap-E-Filter von Lipshitz, Vanderkooy und Wannamaker), um Quantisierungsrauschen in weniger hörbare Frequenzen zu verschieben. Kommt es zu Clipping, wird der zurückgeführte Fehler auf ±4 LSB begrenzt, um Schwingungen zu verhindern. Die Koeffizienten wurden für 44.1 kHz entworfen und werden auch bei 48 kHz verwendet. Die Gesamtmenge des Rauschens steigt dadurch, wird aber in hohe Frequenzen verschoben, für die das Ohr weniger empfindlich ist. Stellen Sie die Lautstärke von Android jedoch unter das Maximum, rundet der Mixer von Android nach dem Anwenden der Lautstärke erneut auf 16 Bit, was den Nutzen des Noise Shaping verringert. Das gilt nicht für Telefone, die die Lautstärke in Hardware regeln. In beiden Fällen findet keine Abtastratenwandlung statt. MP3, AAC und ähnliche Formate laufen auch unter 4.x über den Standardweg von Android.

Android 5 und neuer (Wege über den Mixer): Ab Android 10 gehören auch Wege hierher, die keine direkte Ausgabe nutzen. Der Android-Mixer dieser Generation akzeptiert Float, daher übergibt die Engine von reTONE Float-Audio ohne Dither an AudioTrack. Bei Telefonen mit 16-Bit-Ausgabe rundet Android es anschließend auf 16 Bit (Android wendet an dieser Stelle kein Dither an). FLAC-, WAV- und ALAC-Titel, deren Abtastrate von der Ausgaberate des Telefons abweicht, würde der Mixer von Android bei unveränderter Übergabe umrechnen, und Titel über 16 Bit würden auf 16 Bit gekürzt. Der Standard-Resampler von AOSP verwendet mittlere dynamische Qualität (DYN_MED), wenn die Qualitätseinstellung (af.resampler.quality) nicht gesetzt ist, und fällt auf eine noch niedrigere Qualität zurück, wenn die geschätzte Last der gleichzeitig laufenden Resampler eine Grenze überschreitet. Auf dem Telefon, das wir geprüft haben, war diese Einstellung nicht gesetzt. Die Engine von reTONE rechnet nur die Titel um, die diese Bedingungen erfüllen, und Sie können das mit der Einstellung „Conversion by reTONE“ ausschalten. 16-Bit-Titel mit der Ausgaberate des Telefons (etwa CD-Audio auf einem Telefon mit 44.1 kHz) brauchen keine Umwandlung und laufen daher über den Standardweg von Android.

Direktausgabe (ab Android 10; Verfügbarkeit hängt vom Telefon ab): Ob die „Direktausgabe“, die Audio mit der Rate des Titels ohne Umweg über den Mixer sendet, und das „Offload“, bei dem komprimiertes Audio im Chip dekodiert wird, verfügbar sind, hängt vom Telefon und vom Ausgang ab. Ab Android 10 kann eine App mit AudioTrack.isDirectPlaybackSupported beim Telefon nachfragen, ob ein bestimmtes Format mit einer bestimmten Rate und Bittiefe direkt an den aktuellen Ausgang ausgegeben werden kann. reTONE nutzt diesen Weg nur, wenn das Telefon Ja sagt und die Audio-Policy des Telefons PCM tatsächlich an die Direktausgabe leitet; andernfalls läuft die Wiedergabe über den Standardweg von Android. Die Antwort unterscheidet sich je nach Ausgang, daher fragt reTONE bei jedem Ein- und Ausstecken von Kopfhörern oder USB erneut nach. Auf Telefonen, deren Audio-Policy PCM an die Direktausgabe leitet, waren die wichtigsten Formate, die sich nicht direkt ausgeben ließen, 16-Bit-PCM mit 44.1, 48 und 88.2 kHz (CD-Audio fällt in diese Gruppe). 24 Bit und Float ließen sich mit der Rate des Titels direkt ausgeben, und MP3 und AAC (Titel ab 60 Sekunden Länge) liefen über Offload. Deshalb dekodiert reTONE verlustfreies 16-Bit-Audio (FLAC, ALAC, WAV) zu PCM (ALAC mit dem eigenen Decoder von reTONE, falls das Telefon keinen hat) und übergibt es über MediaDataSource als 24-Bit-WAV mit den unteren 8 Bit aufgefüllt mit Nullen an MediaPlayer. Die oberen 16 Bit bleiben unverändert. Vor dem Umschalten dekodiert es tatsächlich den ersten Block, um zu bestätigen, dass echtes 16-Bit-PCM herauskommt, und fällt auf den Standardweg zurück, wenn es das nicht bestätigen kann. 24-Bit- und hochratiges verlustfreies Audio sowie MP3 und AAC gehen ohnehin schon an die Direktausgabe oder an Offload und werden daher unverändert übergeben. Apps haben keine Möglichkeit auszulesen, welchen Ausgang das Telefon tatsächlich genutzt hat, daher ist „DIRECT“ auf dem Player-Bildschirm eine Erwartung. Früher verließ sich reTONE allein auf die Antwort des Telefons, doch das Standard-Android kann PCM auch dann an den Mixer leiten, wenn es Ja antwortet, und manche Telefone zeigten DIRECT, obwohl das Audio nicht direkt lief. Seit 0.92.48 prüft reTONE zusätzlich die Audio-Policy des Telefons. Seit 0.90.1 wird „DIRECT“ nur bei verlustfreien Titeln angezeigt und nie über Bluetooth. Bei Offload lässt sich zudem nicht prüfen, ob sich die Abtastrate im Chip ändert. Auf diesem Weg werden Soundeffekte auf Android-Seite nicht angewendet (bei manchen Telefonen laufen Effekte im Chip), während die Hardware-Einstellungen des DAC (etwa Filter) weiterhin wirken. Sie lässt sich in den Einstellungen ein- oder ausschalten.

Direktausgabe an USB DACs: Wenn Sie einen USB DAC an ein Telefon mit USB-Host-Unterstützung (OTG) anschließen, sendet reTONE die Daten direkt an den DAC, ohne den Audioweg von Android zu durchlaufen. Auf dem geprüften Telefon wandelte der Standardweg von Android den Ton für den USB DAC in 16 Bit/48 kHz um (eine Ausgabe für 32 Bit/192 kHz war ebenfalls geöffnet, wurde für Musik aber nicht verwendet). Die Direktausgabe von reTONE funktioniert folgendermaßen.

  • Über die USB-Host-API des Telefons findet reTONE den DAC, holt Ihre Erlaubnis ein und liest die USB-Deskriptoren aus (bei USB Audio Class 2.0: die Clock-ID, die alternativen Einstellungen der Wiedergabeschnittstelle, den Ausgabe-Endpoint und den Feedback-Endpoint; bei Class 1.0: die Abtastraten und Paketgröße jeder alternativen Einstellung).
  • Es übernimmt den DAC vom Treiber von Android (claimInterface) und bevorzugt eine alternative Einstellung mit PCM, 2 Kanälen und 32 Bit (24 oder 16 Bit, wenn nicht verfügbar).
  • Die unterstützten Abtastraten liest es mit GET RANGE der Taktquelle aus. Liegt die Rate des Titels im Bereich, setzt es sie mit SET CUR und bestätigt sie mit GET CUR. Nur Titel mit nicht unterstützten Raten oder mit Raten, die das USB des Telefons nicht übertragen will (ab 0.92.68), werden von reTONE einmal auf eine Rate umgerechnet, die der DAC akzeptiert. Titel mit Raten, die der DAC unterstützt, erhalten weder Abtastratenwandlung noch Dither. Titel bis 24 Bit werden so gesendet, dass die Originaldaten unverändert in den oberen Bits eines 32-Bit-Worts liegen (bei Nutzung der DAC-Lautstärke oder wenn die Lautstärke am DAC selbst geregelt wird). 32-Bit-Integer-Titel nehmen ebenfalls einen Weg, der sie als Integer erhält (ab 0.92.65). Nur Werte, die die Bittiefe des DAC nicht exakt darstellen kann, werden gerundet, und zwar mit TPDF-Dither, wenn der DAC 24 Bit oder weniger hat.
  • Die Übertragungen laufen auf der C-Seite über isochrone usbdevfs-Transfers. Bei High-Speed-DACs, die alle 0.125 ms Audio entgegennehmen (die meisten), wird 1 ms Audio (8 Mikroframes) zu einer Übertragung zusammengefasst, und 64 davon stehen vorab in der Warteschlange. Bei DACs mit längerem Intervall enthält jede Übertragung 32 Pakete, und es stehen weniger in der Warteschlange, sodass etwa 64 ms Vorlauf bleiben. Asynchrone DACs melden über den Feedback-Endpoint die Anzahl der Frames pro Mikroframe, und reTONE passt die gesendete Menge entsprechend an. Das Format dieses Werts unterscheidet sich je nach DAC, daher erkennt reTONE es anhand dessen, was ankommt. Wenn reTONE die Lautstärke anwendet, geschieht das unmittelbar vor dem Senden, sodass Änderungen sofort wirken (jede Änderung wird über etwa 5 ms verlaufen gelassen, um abrupte Sprünge zu vermeiden).
  • In dieser Zeit werden auch MP3, AAC und ähnliche Formate vor dem Senden mit dem Decoder des Telefons (MediaCodec) zu PCM dekodiert, sodass reTONE jeden Titel selbst abspielt. Wird der DAC abgezogen, pausiert die Wiedergabe. Beginnt eine andere App zu spielen, pausiert reTONE und gibt den DAC an Android zurück; spielen Sie wieder in reTONE, holt es ihn sich zurück. Wird der DAC nicht an Android zurückgegeben, etwa nach einem erzwungenen Beenden, gibt reTONE ihn direkt nach einem Update zurück sowie dann, wenn Sie reTONE bei ausgeschaltetem „USB DAC direct output“ öffnen.

Viele Telefone der Android-4.1-Generation können einen USB DAC nicht als Audioausgang nutzen, aber die Direktausgabe von reTONE verwendet nur die USB-Host-Funktion und kann daher trotzdem Audio senden. Mit unserem Testtelefon von 2012 (Android 4.1) und einem akkubetriebenen DAC wurde 24 Bit/192 kHz ohne Umwandlung abgespielt. USB-Audio-Class-2.0-DACs haben wir selbst getestet. Class-1.0-DACs werden ebenfalls unterstützt, doch Praxistests gibt es bisher nur aus Nutzerberichten. Ältere Telefone können über USB nur einen kleinen Strom liefern, sodass busgespeiste DACs möglicherweise nicht erkannt werden. Wir haben außerdem einen Fall erlebt, in dem Funkstörungen durch WLAN (Wi-Fi) über das USB-Kabel in den DAC gelangten und zeitweiliges Rauschen verursachten. Die Wiedergabe braucht keine Verbindung, daher empfehlen wir, beim Hören über einen USB DAC in den Flugmodus zu wechseln.

Wie sich die Ausgänge unterscheiden

„Dedicated music player“ und „Music app“ verwenden denselben Audioweg. Die einzigen Unterschiede sind, ob HOME reTONE öffnet, die Voreinstellung von „Silent DAP mode“ und der Sperrbildschirm von reTONE. Die Direktausgabe (Android 10 und neuer) und die USB-DAC-Direktausgabe funktionieren in beiden Modi.

AusgabeAndroid-MixerAbtastrateDIRECT im PlayerVolume
Eingebauter Lautsprecher und KopfhörerbuchseJa (außer bei Direktausgabe)An die Ausgaberate des Telefons angepasst (wie im Diagramm oben)Verlustfreie Titel, die voraussichtlich die Direktausgabe nutzen, unter Android 10 und neuerAndroid-Lautstärke plus feine Lautstärkestufen von reTONE
USB DAC (Direktausgabe ein, Standard)NeinUnverändert, wenn der DAC sie unterstütztWenn ein verlustfreier Titel ohne Ratenwandlung gesendet wirdAm DAC oder mit den Lautstärketasten (der DAC oder reTONE regelt)
USB DAC (Direktausgabe aus)JaHängt von den USB-Einstellungen des Telefons ab (manche wandeln in 16 Bit / 48 kHz um)Nicht angezeigtAndroid-Lautstärke
BluetoothJaDas Telefon kodiert neu in den Bluetooth-CodecNicht angezeigtAndroid-Lautstärke (bei manchen Telefonen mit dem Gerät gekoppelt)

DSD wird in PCM umgewandelt, außer wenn es per Direktausgabe an einen DAC mit nativer DSD-Unterstützung gesendet wird. Solange reTONE den DAC nutzt, werden die Töne anderer Apps, etwa Benachrichtigungen, über den eingebauten Lautsprecher ausgegeben. Beginnt eine andere App zu spielen, gibt reTONE den DAC an Android zurück. Viele Telefone mit Android 4.x können einen USB DAC von sich aus nicht als Audioausgang nutzen, sodass der DAC nur über die Direktausgabe funktioniert. Ein Tippen auf die unterste Zeile des Player-Bildschirms öffnet den Bildschirm mit dem Signalweg. Für jede Stufe (Datei, Dekodierung, Abtastrate, Lautstärke, Ausgabe) zeigt er anhand der eigenen Verarbeitung von reTONE und der Angaben von Android, ob das Audio unverändert durchläuft oder verändert wird. Verarbeitung im DSP des Telefons oder im DAC lässt sich nicht anzeigen.

Was die Direktausgabe überspringt

Bei der Direktausgabe werden das Mischen und die Abtastratenwandlung innerhalb von Android übersprungen. Was danach mit dem Audio geschieht, hängt vom Telefon und vom Ausgang ab.

Ton, den eine App übergibt, durchläuft Android in dieser Reihenfolge.

1. Die Audiozentrale von Android (AudioFlinger)
Bei einer normalen Ausgabe kombiniert der Mixer hier den Ton mehrerer Apps, wandelt ihn in die Ausgaberate des Telefons um (meist 48 kHz) und wendet die Lautstärke an. Die Direktausgabe überspringt vor allem diese Stufe: kein Mischen und keine Umwandlung. Die Lautstärke wird der Audiohardware des Telefons überlassen, wenn diese eine Lautstärkeregelung hat; andernfalls wird sie unter Umständen in dieser Stufe auf die Samples angewendet (bei voller Lautstärke ändern sich die Werte nicht).

2. Die Audiokomponenten des Herstellers → der Audioprozessor (DSP) im Chip
Bei den meisten Telefonen geht der Ton nicht direkt zum DAC, sondern durchläuft einen DSP im Chip, der eigene Stufen hat.

  • Verarbeitung pro Stream (Formatwandlung, Lautstärke)
  • Verarbeitung pro Ausgabe (Lautsprecherschutz, Klangeffekte des Herstellers, Limiter)
  • Die letzte Ausgabestufe. Jede Ausgabe hat ihre eigene Rate, und weicht die Rate des Titels ab, wandelt der DSP sie um
  • Das „Offload“ von MP3 und AAC wird von diesem DSP dekodiert

3. Der DAC (im Chip integriert oder als eigener DAC-Chip)
Erst hier wird der Ton analog. Das interne Digitalfilter des DAC (Oversampling) wird bei einem USB DAC genauso durchlaufen und zählt daher nicht, wenn es um die Frage geht, ob die Daten verändert wurden.

Was sich sagen lässt

  • Sicher ist bei der Direktausgabe: Das Mischen und die Abtastratenwandlung innerhalb von Android werden übersprungen
  • Passt das Telefon die Ausgaberate des DSP an den Titel an, wie bei Kopfhörerwegen, die mit Blick auf Musik gebaut sind, formatiert der DSP die Daten nur und reicht sie weiter, sodass sie den DAC wahrscheinlich nahe am Original erreichen
  • Bei Telefonen, deren Ausgaberate auf 48 kHz festgelegt ist, wandelt der DSP den Ton um, obwohl die Umwandlung durch Android übersprungen wird
  • Lautsprecher erhalten fast immer einen Lautsprecherschutz oder eine Korrektur. Manche Telefone zeigen auch beim Lautsprecher DIRECT, man sollte aber davon ausgehen, dass die Daten verändert wurden
  • Bei manchen Telefonen laufen die Klangeffekte des Herstellers im DSP
  • Eine App kann das nicht prüfen. Ab Android 9 haben normale Apps keine Möglichkeit, die Einstellungen des DSP oder den genutzten Weg auszulesen. Die DIRECT-Anzeige von reTONE ist eine Erwartung auf Grundlage der Antwort von Android und der Audio-Policy des Telefons (sie erscheint nur bei verlustfreien Titeln und nie über Bluetooth)

Unterschied zu einem USB DAC
Bei einem USB DAC umgeht reTONE den Audioweg von Android und spricht den DAC direkt über USB an. reTONE verarbeitet die Daten bis zum DAC; was im DAC geschieht, lässt sich nicht prüfen. Wird der Titel mit seiner eigenen Abtastrate gesendet und die Lautstärke auf der DAC-Seite eingestellt, verändert reTONE die Werte nicht.

Resampling-Filter

0-20-40-60-80-100-120-1400102030 Frequency (kHz) dB Flat to 20 kHz Stopbandfrom 24.1 kHz
Frequenzgang des Filters für die Umwandlung 44.1 kHz → 48 kHz (berechnet mit denselben Formeln wie in der App).Telefone mit Float-Ausgabe (Ziel 120 dB) Telefone mit 16-Bit-Ausgabe (Ziel 100 dB)
  • Flach bis 20 kHzDie Abweichung bis 20 kHz liegt unter 0.001 dB (berechnet). Hörbarer Klang wird nicht abgeschwächt.
  • Sperrbereichsdämpfung von mindestens 120 dB / 100 dBBerechnete Werte für Telefone mit Float-Ausgabe und Telefone mit 16-Bit-Ausgabe (etwa −122 dB / etwa −102 dB für 44.1 kHz → 48 kHz). Das mit einem 30-kHz-Eingangssignal gemessene Aliasing (der Anteil, der in 0–20 kHz erscheint, vor dem Runden auf 16 Bit) lag mindestens 104.6 dB unter dem Originalsignal.
  • −1 dB nur beim ResamplingDas lässt Reserve für Intersample-Peaks über 0 dBFS (der höchste Wert, den wir bei kommerziellen Aufnahmen gemessen haben, lag bei +0.59 dB). Umgerechnete Titel sind 1 dB leiser als nicht umgerechnete.
Im Detail

Die Abtastratenwandlung berechnet den Verlauf der Wellenform zwischen den ursprünglichen Samples neu, daher zeigt sich die Qualität des Filters direkt im Klang. Das Filter von reTONE ist ein FIR-Filter, das durch Anwenden eines Kaiser-Fensters auf eine Sinc-Funktion entsteht. Es verwendet eine Polyphasen-Struktur, die die Koeffizienten passend zum Wandlungsverhältnis in Gruppen aufteilt und nur das Nötige berechnet. Der Entwurf beruht auf zwei Kriterien: hörbaren Klang nicht abschwächen und das durch die Umwandlung entstehende Aliasing gut unterdrücken.

  • Durchlassbereich: flach bis 20 kHz (laut Entwurf innerhalb von ±0.001 dB; für Umwandlungen zwischen Raten ab 44.1 kHz).
  • Sperrbereich: beginnt bei „niedrigere Rate − 20 kHz“. Zwischen 44.1 kHz und 48 kHz sind das 24.1 kHz. Aliasing, das in diesen Bereich fällt, erscheint oberhalb von 20 kHz und bleibt außerhalb des hörbaren Bands (bis 20 kHz).
  • Dämpfung (Entwurfsziel): 120 dB für Telefone mit Float-Ausgabe (ab Android 5), 100 dB für Telefone mit 16-Bit-Ausgabe (Android 4.x). Filterlänge und Fenster sind mit 2 dB Reserve über dem Ziel ausgelegt, sodass der berechnete Wert bei jeder Umwandlung über dem Ziel liegt (für 44.1 → 48 kHz betragen die berechneten Werte etwa 122 dB und etwa 102 dB). Restliches Aliasing bei −100 dB liegt deutlich unter dem Rauschboden von 16 Bit (um −93 dBFS über das gesamte Band, einschließlich Dither), daher ist eine Dämpfung von 100 dB hörbar nicht von 120 dB zu unterscheiden.
  • Taps: bestimmt aus Dämpfung und Übergangsband mit der Formel für das Kaiser-Fenster (86 Taps für 44.1 ↔ 48 kHz bei 120 dB).
  • 2:1-Stufen: Stufen, die die Rate genau halbieren, etwa 96 → 48 kHz, verwenden ein Halbbandfilter, bei dem die Hälfte der Koeffizienten null und der Rest symmetrisch ist, was die Multiplikationen auf etwa ein Viertel eines normalen Filters senkt. 192 → 48 kHz verwendet zwei Halbbandstufen, und übrige Verhältnisse wie 88.2 → 48 kHz übernimmt ein Polyphasenfilter.

Bei Messungen kamen Signale mit 1 kHz, 19 kHz und 19.9 kHz innerhalb von 0.01 dB mit demselben Pegel heraus. Bei einem 30-kHz-Eingang lag das in 0–20 kHz erscheinende Aliasing bei 44.1 kHz und 48 kHz Ausgabe mindestens 104.6 dB unter dem Originalsignal und bei der Umwandlung von 192 kHz mindestens 116 dB darunter (gemessen vor dem Runden auf 16 Bit). Dies sind Werte bei einer einzelnen Frequenz. Laut Entwurf ist der gesamte Sperrbereich mindestens auf die oben genannten Dämpfungsziele unterdrückt.

Weil die Umwandlung neue Punkte zwischen den Originalsamples erzeugt, können laute Titel Punkte über 0 dBFS erhalten. Als wir mehrere kommerzielle Aufnahmen, die wir besitzen, auf 48 kHz umgerechnet haben, machten Punkte über 0 dBFS 0.0001–0.001 % des Ganzen aus, mit Maxima von +0.38 bis +0.59 dB. Diese werden bei 16-Bit-Ausgabe oder im Mixer des Telefons gekappt, daher senkt reTONE den Pegel nur beim Resampling um 1 dB und lässt so Reserve über dem gemessenen Maximum. Titel, die nicht umgerechnet werden, bleiben unverändert, sodass umgerechnete Titel auf demselben Telefon 1 dB leiser sind. Beim lückenlosen Übergang zum nächsten Titel wird der Zustand des Resamplers übernommen, sodass Anfang und Ende der Titel durch die Verarbeitung nicht beschnitten werden (ab 0.92.57).

Die Lautstärke wird nicht in der reTONE-Engine angewendet, sondern im Mixer von Android (die Lautstärke von AudioTrack). Würde sie in der Engine angewendet, kämen Änderungen erst an, wenn die etwa 500 ms Audio im Puffer von AudioTrack abgespielt sind, und die Lautstärketasten würden sich träge anfühlen. Auf Telefonen mit 16-Bit-Ausgabe führt ein Senken der Lautstärke dazu, dass Android erneut auf 16 Bit rundet (Android wendet an dieser Stelle kein Dither an).

Die Berechnungen sind in C geschrieben und nutzen ARM-NEON-Befehle, um linken und rechten Kanal gemeinsam zu verarbeiten. Die innere Schleife des Filters liest Koeffizienten als Vektoren und verwendet vier Akkumulatoren, um Latenz zu verbergen. Auch der Dither, einschließlich Zufallszahlen, Rundung, Clipping und Fehlerrückführung, läuft vollständig in NEON und vermeidet Transfers zwischen NEON und Universalregistern, die auf älteren Kernen (Cortex-A9) langsam sind. Die Intel-Builds (x86) nutzen einen einfachen C-Pfad ohne NEON. Die folgenden Lastwerte stammen von den ARM-Telefonen, die wir getestet haben.

Schon gewusst?Die Hersteller wählen die Resampling-Qualität von Android

Der Teil von Android, der Abtastraten umwandelt, bietet mehrere Qualitätsstufen, von einfachen Berechnungen bis zu aufwendigeren, die mehr Rechenleistung für höhere Genauigkeit einsetzen. Welche verwendet wird, legt eine Einstellung auf dem Telefon fest, und diese Einstellung bestimmt der Hersteller des Telefons.

Auf Telefonen mit Android 5 oder neuer, bei denen der Hersteller sie nicht gesetzt hat, wird die mittlere Stufe DYN_MED verwendet (unter Android 4.4 die einfachste Stufe LOW). Außerdem fallen die Resampler, die über einer Grenze liegen, auf die nächstniedrigere Stufe zurück, wenn die geschätzte Last der gleichzeitig verwendeten Resampler diese Grenze überschreitet (die tatsächliche CPU-Last wird nicht gemessen). Unter den geprüften Telefonen hatten zwei mit Android 4.4 den Wert 4 (VERY_HIGH), und eines mit Android 9 hatte keine Einstellung und verwendete daher DYN_MED. Derselbe Titel erhält also je nach Telefon eine unterschiedliche Resampling-Qualität.

EinstellungswertStufeWie umgewandelt wird (Standard-Android)Sperrbereichsdämpfung (Entwurf)
1LOWLineare Interpolation zwischen den beiden benachbarten Samples; die leichteste Methode. Unter Android 4.4 verwendet, wenn nicht gesetztKein eigenes Filter
2MEDKubische Interpolation über mehrere benachbarte SamplesKein eigenes Filter
3HIGHVerwendet ein Sinc-FilterIm Quellcode nicht angegeben
4VERY_HIGHVerwendet ein längeres Filter als HIGH. Die Koeffizienten werden aus einer Komponente des Telefons geladen (libaudio-resampler.so); ohne sie wie HIGHIm Quellcode nicht angegeben
5DYN_LOWErstellt zur Laufzeit ein Filter passend zum Wandlungsverhältnis80 dB
6DYN_MEDWie oben, mit einem längeren Filter als DYN_LOW84 dB
7DYN_HIGHWie oben, mit dem längsten Filter98 dB
Nicht gesetzt—DYN_MED ab Android 5 (LOW unter Android 4.4). Fällt auf die nächstniedrigere Stufe zurück, wenn viele gleichzeitig verwendet werden84 dB
reTONE—Unabhängig von der Einstellung des Telefons entworfen. Flach bis 20 kHz (das Dämpfungsziel hängt vom Ausgabeformat ab)100 dB (16-Bit-Ausgabe)
120 dB (Float-Ausgabe)

Die Einstellung heißt af.resampler.quality. Die Tabelle beruht auf dem Quellcode von Standard-Android 13 (die Einträge für Android 4.4 auf dem Quellcode von Android 4.4) und gilt möglicherweise nicht, wenn der Hersteller ihn verändert hat. Alle Angaben unter „Sperrbereichsdämpfung (Entwurf)“ sind Entwurfsziele des Filters. reTONE ist so ausgelegt, dass der berechnete Wert bei jeder Umwandlung über dem Ziel liegt.

Wo reTONE die Umwandlung übernimmt, wird unabhängig von dieser Einstellung das Resampling von reTONE verwendet.

Lautstärke von USB DACs

Es gibt drei Stellen, an denen die Lautstärke gesenkt werden kann. Welche verwendet wird, hängt vom Aufbau des DAC und von Ihrer Wahl beim ersten Anschließen ab.

In reTONEDigitalDigitale Lautstärke des DACÜber USB gesteuertAm DAC selbstRegler oder Tasten
DACs mit Lautstärkesteuerung über USBMit Maximum gesendetFolgt den Lautstärketasten—
Wenn „reTONE adjusts“ gewählt istFolgt den LautstärketastenMaximum—
DACs ohneFolgt den Lautstärketasten——
Wenn "On the DAC" gewählt istMit Maximum gesendetMaximumAm DAC eingestellt
Im Detail

Es gibt drei Stellen, an denen die Lautstärke gesenkt werden kann: ① innerhalb von reTONE, auf die Daten angewendet (digital), ② die interne digitale Lautstärke des DAC, über USB gesteuert, und ③ der Regler oder die Tasten am DAC selbst. Welche genutzt wird, hängt von der Regelmethode ab, die Sie beim ersten Anschließen des DAC wählen, und davon, ob der DAC die Lautstärkeregelung über USB unterstützt.

② Lautstärke über USB: USB Audio Class hat einen Lautstärkemechanismus namens Feature Unit, und GET RANGE liest dessen Minimum, Maximum und Schrittweite aus (in Einheiten von 1/256 dB). reTONE rechnet seine Lautstärke (einen einzigen Verstärkungswert aus den Android-Stufen und der Feinlautstärke) in dB um. Liegt sie in diesem Bereich, sendet reTONE sie an den DAC und hält die eigene Ausgabe auf Maximum. Nur wenn die Lautstärke unter den Bereich fällt, wird der Rest mit ① auf das PCM angewendet. 0 ist stumm.

① In reTONE: Bei DACs ohne Feature-Unit-Lautstärke und bei DACs, die auf „reTONE adjusts“ gestellt sind, wendet reTONE die Lautstärke vor dem Senden auf die Daten an und lässt jede Änderung über etwa 5 ms verlaufen. Sie wird unmittelbar vor dem Senden angewendet, sodass die Lautstärketasten sofort reagieren.

③ Der DAC selbst: Ob der DAC eine eigene Lautstärkeregelung hat, lässt sich über USB nicht auslesen. Deshalb fragt reTONE beim ersten Anschließen eines DAC einmal, wie dessen Lautstärke geregelt werden soll, mit drei Optionen: „On the DAC itself“, „Volume keys (DAC adjusts)“ und „Volume keys (reTONE adjusts)“. Manche DACs melden, einen Lautstärkebefehl angenommen zu haben, ohne die Lautstärke tatsächlich zu ändern; bei ihnen legt „reTONE adjusts“ die Lautstärke des DAC auf das Maximum fest und senkt sie mit ①. Wählen Sie „On the DAC“, werden ② und ① auf das Maximum festgelegt, und ein Druck auf die Lautstärketasten ändert nichts (eine Meldung weist darauf hin). Bei DACs mit analogem Lautstärkeregler holen Sie das Beste aus dem DAC heraus, wenn digitale Dämpfung vermieden wird. Die Wahl wird für jedes DAC-Modell (USB-Hersteller-ID und Produkt-ID) gespeichert und lässt sich mit der Einstellung „DAC volume“ ändern.

Ist „On the DAC“ gewählt oder wird die Lautstärke des DAC genutzt (innerhalb seines Lautstärkebereichs), werden Titel mit Raten, die der DAC unterstützt, ohne Veränderung der Daten gesendet. Nur wenn Sie die Lautstärke unter den Bereich des DAC stellen, wendet reTONE den Rest an. Ist der Titel in diesem Fall verlustfrei (einschließlich natives DSD) und passt seine Bittiefe in die des DAC, zeigt der Bildschirm mit dem Signalweg BIT-PERFECT an (32-Bit-Integer-Titel nur, wenn sie den Integer-Weg nehmen). Was im DAC geschieht, lässt sich nicht prüfen.

Natives DSD

DSF/DFF-Titel
Der DAC unterstützt natives DSD
und seine Lautstärke lässt sich über USB steuern
und die Lautstärke ist nicht auf „reTONE adjusts“ gestellt
und „Sending DSD“ steht auf „Send as DSD“
JaAls DSD sendenz. B. DSD64 → USB AUDIO • DSD64 DIRECT
NeinIn PCM umwandelnPCM mit 88.2 kHz bei DSD64

reTONE kann die Lautstärke von DSD selbst nicht ändern, daher muss der DAC eine Lautstärkesteuerung erlauben. Setzen DSD-Titel aus, wählen Sie in der Einstellung "Sending DSD" die Option "Convert to PCM". DoP wird nicht unterstützt.

Im Detail

DSF- und DFF-Titel werden nur dann als DSD ohne Umwandlung in PCM gesendet, wenn der DAC natives DSD unterstützt und sich seine Lautstärke über USB steuern lässt (und der DAC nicht auf „reTONE adjusts“ gestellt ist). reTONE kann die Lautstärke von DSD selbst nicht ändern, daher ist eine Lautstärkeregelung auf der DAC-Seite nötig. Der Player-Bildschirm zeigt etwa „DSD64 → USB AUDIO • DSD64 DIRECT“.

Gesendet wird folgendermaßen.

  • Native DSD funktioniert mit DACs, deren USB-Deskriptoren eine alternative Einstellung für Rohdaten (TYPE I RAW DATA) enthalten.
  • DSD-Bits werden je 4 Bytes in ein 32-Bit-Wort pro Kanal gepackt, mit dem ältesten Bit oben. DSF speichert Bits mit dem LSB zuerst, daher wird die Bitreihenfolge in jedem Byte vor dem Packen umgekehrt. Die Wörter werden im Big-Endian-Format gesendet (dieselbe Annahme wie bei DSD_U32_BE unter Linux). Dieses Umpacken geschieht in C, und der Ringpuffer für die Übertragung fasst etwa 500 ms.
  • Der Takt des DAC wird auf „DSD-Rate ÷ 32“ gesetzt (88.2 kHz bei DSD64, 176.4 kHz bei DSD128).
  • Stille, Pausen und Titelenden werden mit dem DSD-Stillemuster 0x69 aufgefüllt.

Diese Byte- und Bitreihenfolge wurde durch korrekte Wiedergabe auf dem getesteten DAC bestätigt. Mit anderen DACs wurde sie noch nicht geprüft, und DoP (DSD over PCM) wird nicht unterstützt. DST-komprimierte DFF können ebenfalls nicht gelesen werden.

Sending DSD (Einstellung): "Sending DSD" erscheint in den Einstellungen unter "Sound" nur, solange ein DAC angeschlossen ist, der native DSD nutzen kann. Voreingestellt ist "Send as DSD" (der DAC spielt DSD direkt), und Sie können zu "Convert to PCM" wechseln (reTONE wandelt in PCM um). Setzen DSD-Titel aus oder bevorzugen Sie die Wiedergabe als PCM, wählen Sie die Umwandlung in PCM. Die Wahl wird für jedes DAC-Modell gespeichert, und beim Umschalten wird der aktuelle Titel an derselben Stelle neu geöffnet. Wir haben einen DAC gefunden, der bei DSD-Aufnahmen, deren Modulation den Referenzpegel von 50 % überschritt, kurz aussetzte. Die Übertragung war normal, daher liegt es offenbar am Aufbau des DAC. Die Umwandlung in PCM verhindert auch in diesem Fall die Aussetzer.

Umwandlung DSD → PCM: Wenn kein natives DSD verwendet wird (bei DACs, die die Bedingungen nicht erfüllen, wenn "Convert to PCM" gewählt ist, und bei Ausgabe an Bluetooth, Ohrhörer oder den Lautsprecher), wandelt reTONE DSD in zwei Stufen in PCM um.

  • Stufe 1: Der DSD-Bitstrom wird um den Faktor 32, 64 usw. in PCM mit etwa 88.2 kHz oder mehr dezimiert (DSD64 durch 32 auf 88.2 kHz, DSD128 durch 64 auf 88.2 kHz). Das Filter ist ein FIR-Filter mit Kaiser-Fenster. Der Durchlassbereich reicht bis zum größeren Wert aus 20 kHz und einem Viertel der Ausgaberate, der Sperrbereich beginnt bei „Ausgaberate − Durchlassbereich“, und die Dämpfung beträgt 100 dB bei 16-Bit-Ausgabe und 110 dB bei Float und USB. Die Anzahl der Taps wird mit der Formel für das Kaiser-Fenster bestimmt. Die Berechnung verwendet 16-Bit-Tabellen, und die Tabellen werden einmal pro Konfiguration erstellt und wiederverwendet. Bei Messungen betrug der Frequenzgang bei 20 kHz 0.000 dB, und das Aliasing unter 20 kHz lag bei −101 dB (Entwurf 100 dB) / −110 bis −117 dB (Entwurf 110 dB).
  • Stufe 2: Bei Bedarf wandelt derselbe Resampler, der im Abschnitt zum Filter beschrieben ist, einmal in die Ausgaberate des Telefons um (etwa 44.1 kHz oder 48 kHz bei der eingebauten Ausgabe).
  • Pegel: So umgewandelt, dass SACD 0 dB (50 % Modulation) −6 dBFS ergibt (eine verbreitete Konvention; ab 0.69.0. Frühere Versionen verwendeten −12 dBFS und spielten 6 dB leiser).

Beim Senden von PCM an einen USB DAC sendet reTONE PCM mit „DSD-Rate ÷ 32“ (88.2 kHz bei DSD64, 176.4 kHz bei DSD128, 352.8 kHz bei DSD256) unverändert ohne die Umwandlung in Stufe 2, sofern der DAC dies unterstützt. Da DSD in PCM umgewandelt wird, erscheint DIRECT in diesem Fall nicht.

Last

CPU-Auslastung von reTONE bezogen auf einen Kern auf unserem Testtelefon von 2012 (Android 4.1, 2 Kerne).

Neuzeichnen des Player-Bildschirms (während der tatsächlichen Wiedergabe)Etwa 2 %
CD-Audio unverändert ausgeben (bei maximalem Takt)Etwa 2 %
24 Bit/192 kHz in 44.1 kHz umwandeln (bei maximalem Takt)Etwa 10 %
0%50%100%

„Neuzeichnen des Player-Bildschirms“ wurde während der tatsächlichen Wiedergabe gemessen und enthält kein Dekodieren. Die beiden anderen Werte stammen aus denselben Berechnungen wie in der reTONE-Engine, ausgeführt bei maximalem Takt und in einen Anteil an Echtzeit umgerechnet. Während der tatsächlichen Wiedergabe senkt das Telefon seinen Takt, daher wirken die auf dem Telefon angezeigten Werte 2- bis 3-mal höher.

Im Detail

reTONE soll „im Stillstand nichts tun“ und „bei Wiedergabe mit ausgeschaltetem Display nichts zeichnen“. Periodische Arbeit läuft nur während der Wiedergabe: jede Sekunde bei eingeschaltetem Display und alle 5 Sekunden bei ausgeschaltetem, und die Suchleiste auf dem Player-Bildschirm zeichnet nur sich selbst alle 250 ms neu. Uhr und Akku werden über Benachrichtigungen des Systems aktualisiert, ohne regelmäßiges Abfragen.

CPU-Auslastung von reTONE bezogen auf einen Kern auf unserem Testtelefon von 2012 (Android 4.1, 2 Kerne Cortex-A9).

  • Gestoppt: 0 %.
  • Wiedergabe bei ausgeschaltetem Display: Das Zeichnen stoppt. Titel, die über die Standardwiedergabe von Android laufen, verbrauchen fast 0 %, während bei Titeln, die die reTONE-Engine wiedergibt (FLAC, WAV und andere unter Android 4.x), die unten genannte Last für Dekodieren und Umwandeln hinzukommt.
  • Wiedergabe mit angezeigtem Player-Bildschirm: etwa 2 % (gemessen während der tatsächlichen Wiedergabe; überwiegend das Neuzeichnen der Suchleiste, ohne Dekodieren).
  • reTONE-Engine gibt CD-Audio (16 Bit/44.1 kHz) unverändert mit 44.1 kHz aus: etwa 2 %. Umwandlung in 48 kHz für die Ausgabe: etwa 4 %.
  • Umwandlung von 24 Bit/96 kHz in 48 kHz: etwa 5 %. In 44.1 kHz: etwa 7 %.
  • Umwandlung von 24 Bit/192 kHz in 44.1 kHz: etwa 10 % (nur Berechnung) bis etwa 15 % (grobe Schätzung der gesamten Wiedergabelast, auf maximalen Takt hochgerechnet).
  • Senden von 24 Bit/192 kHz an einen USB DAC ohne Umwandlung: etwa 20 % (gemessen während der tatsächlichen Wiedergabe, Display an, einschließlich Übertragungsthread).

Die Werte der Engine von „CD-Audio“ bis „24 Bit/192 kHz“ stammen aus denselben Berechnungen, ausgeführt mit voller Geschwindigkeit bei maximalem Takt und in einen Anteil an Echtzeit umgerechnet. Während der tatsächlichen Wiedergabe senkt das Telefon seinen Takt auf 200 MHz bis 1 GHz, daher wirken die auf dem Telefon angezeigten Werte 2- bis 3-mal höher (20–29 % bei 24 Bit/192 kHz). Auch die Art, wie der Code geschrieben ist, macht viel aus: Die aktuelle Umsetzung in C und NEON hatte etwa ein Drittel bis ein Fünftel der Last eines früheren, in Java geschriebenen Prototyps.

Bei der Umwandlung von DSD in PCM benötigte dieses Telefon von 2012 mit einem akkubetriebenen DAC für die Umwandlung von DSD64 in PCM mit 88.2 kHz und das Senden über USB etwa 11.8 % für die Umwandlung und etwa 5.8 % für die USB-Übertragung (bei etwa 1 GHz). Als DSD64 auf einem Telefon mit Android 4.4 über die eingebaute Ausgabe (48 kHz) lief, nutzte der Dekodierthread 23.8 %, das Telefon hielt seinen Takt aber auf dem Minimum von 300 MHz, sodass sich bei einfacher Umrechnung über das Taktverhältnis etwa 3 % bei maximalem Takt ergeben.

Auf den getesteten Telefonen hing die Last bei eingeschaltetem Display stärker von der Bildschirmauflösung ab als von der CPU-Geschwindigkeit (Android 4.x zeichnet offenbar auch bei kleinen Aktualisierungen den ganzen Bildschirm neu). Ein Telefon mit 1080 × 1920 nutzte auf dem Player-Bildschirm etwa 4 %, ein Telefon mit 1440 × 3120 und Android 11 etwa 8.5 % (bezogen auf einen seiner 8 Kerne; etwa 1 % des gesamten Telefons). Ältere Telefone haben kleine Bildschirme und hochauflösende Telefone mehr Rechenleistung, daher ist die Neuzeichnungsrate vorerst auf allen Telefonen gleich.

Getestete Geräte

TelefonAndroidGeprüft
WalkmanSony NW-Z1000-Serie4.0.4Start, Bildschirme
PRADA phone by LGLG L-02D4.0.4Start, Bibliothek, Wiedergabe von FLAC mit 24 Bit/96 kHz
MEDIAS XNEC N-07D4.0.4Start
MEDIAS ESNEC N-05D4.0.4Start
Xperia PSony LT22i4.1.2Hauptfunktionen, praktisch erprobt
Xperia goSony ST27i4.1.2Hauptfunktionen (Bildschirm 320×480), DSD-Wiedergabe, USB DAC (akkubetriebener DAC)
AQUOS PHONE ZETASHARP SH-02E4.1.2Hauptfunktionen, praktisch erprobt
Xperia VLSony SOL214.1.2Start, Mediathek, Wiedergabe (ALAC, De-Emphasis, feine Lautstärkestufen)
Acoustic Research AR-M204.3Start, Wiedergabe von FLAC mit 24 Bit/96 kHz
AQUOS CRYSTALSHARP 305SH4.4.2Hauptfunktionen, praktisch erprobt
URBANO L03KYOCERA KYY234.4.2Hauptfunktionen, praktisch erprobt
Raku-Raku SmartphoneFUJITSU F-06F4.4.2Start, Bibliothek, Wiedergabe von FLAC mit 24 Bit/96 kHz (reTONE lässt sich nicht als Startbildschirm festlegen)
KYOCERA KCP01K4.4.4Start
Xperia Z4 TabletSony SOT315.0.2Hauptfunktionen, praktisch erprobt
VAIO Phone AVAIO VPA0516.0.1Start, Wiedergabe
Nexus 6Motorola Nexus 67.1.1Start
Xperia XA1 PlusSony G32268.0Start, Mediathek, Wiedergabe von FLAC mit 24 Bit/192 kHz, Sound settings (öffnet die Sony-Klangeinstellungen)
Galaxy S7 edgeSamsung SC-02H8.0Start, Bibliothek, Wiedergabe
Galaxy S8Samsung SC-02J9Hauptfunktionen, praktisch erprobt
Xperia XZ1Sony G83419Hauptfunktionen, praktisch erprobt
Android One X5LG X5-LG11Hauptfunktionen, praktisch erprobt
Galaxy A41Samsung SC-41A12Start, Bibliothek, Wiedergabe
Pixel 3 XLGoogle Pixel 3 XL12Start, Bibliothek, Wiedergabe, Steuerung über Benachrichtigungen, Fernbedienung
Xperia 5 IVSony A204SO14Installation über Google Play, Wiedergabe, Anzeige der Direktausgabe
Xiaomi 12S UltraXiaomi 2203121C15Hauptfunktionen, praktisch erprobt
Galaxy Z Fold5 FeldtestSamsung Galaxy Z Fold516Start, Layout für Foldables
Pixel 10a FeldtestGoogle Pixel 10a17Start
Pixel 11 Pro Fold FeldtestGoogle Pixel 11 Pro Fold17Start, Layout für Foldables

Feldtest Ergebnisse von Freiwilligen, die reTONE auf ihren eigenen Telefonen testen.

USB-DAC-Direktausgabe: getestete Kombinationen

TelefonUSB DACErgebnis
Galaxy S8Android 9Hidizs S9 ProbusgespeistFunktioniert. PCM (der DAC meldet 44.1–768 kHz; getestet mit Titeln von 44.1–192 kHz), native DSD, DAC-Lautstärke
Galaxy S8Android 9OPPO HA-2akkubetriebenFunktioniert
AQUOS PHONE ZETA SH-02EAndroid 4.1OPPO HA-2akkubetriebenFunktioniert. 24 Bit/96 kHz ohne Resampling wiedergegeben
AQUOS PHONE ZETA SH-02EAndroid 4.1Hidizs S9 ProbusgespeistFunktioniert. Keine Geschwindigkeitsabweichung und keine Aussetzer
Android One X5Android 11Hidizs S9 ProbusgespeistFunktioniert
Xperia PAndroid 4.1OPPO HA-2akkubetriebenFunktioniert. 24 Bit/192 kHz und 96 kHz ohne Resampling wiedergegeben
Xperia PAndroid 4.1Hidizs S9 ProbusgespeistNicht erkannt. Das Telefon kann nicht genug Strom liefern
URBANO L03Android 4.4OPPO HA-2akkubetriebenFunktioniert nicht. Android meldet USB-Host-Unterstützung, aber das Telefon arbeitet über OTG nicht als Host
AQUOS CRYSTAL 305SHAndroid 4.4—Funktioniert nicht. Keine USB-Host-Unterstützung
Xperia goAndroid 4.1OPPO HA-2akkubetriebenFunktioniert
Xperia goAndroid 4.1Hidizs S9 ProbusgespeistNicht erkannt. Das Telefon kann nicht genug Strom liefern
Galaxy A41Android 12Hidizs S9 ProbusgespeistFunktioniert. Keine Aussetzer, auch beim Wechsel zwischen 24 Bit/192 kHz und 44.1 kHz
Xperia XA1 PlusAndroid 8.0Hidizs S9 ProbusgespeistFunktioniert

USB DACs und Telefone: warum die Ergebnisse variieren

Wie sich die USB-DAC-Direktausgabe verhält, hängt vom Telefon und vom DAC ab. Der Teil eines Telefons, der als USB-Host arbeitet (der Host-Controller), unterscheidet sich je nach Generation und Hersteller, und diese Unterschiede zeigen sich am stärksten bei isochronen Übertragungen, bei denen Audio gleichmäßig und ohne Lücken fließen muss. Auch DACs unterscheiden sich: wie oft sie Audio annehmen, wie sie die gewünschte Rate melden und woher sie ihren Strom beziehen. reTONE verzweigt nicht nach Telefonmodellen. Es misst, was beim Anschließen tatsächlich passiert, und passt sich an. In der Tabelle unten wurden musb, EHCI und xHCI auf echten Telefonen getestet; die anderen beruhen auf veröffentlichter Dokumentation.

Controller-FamilieHäufige ProblemeWas reTONE tut
musbEinige Telefone von etwa 2010–2013 (TI, ST-Ericsson, ältere MediaTek)Lücken zwischen den Übertragungen lassen den DAC leicht unterversorgt (Knistern, Aussetzer)Misst das tatsächliche Rückmeldeintervall und packt mehr Daten, um den Fehlbetrag auszugleichen
EHCIÄltere Qualcomm, Tegra, einige ExynosAbschlussmeldungen kommen gebündelt zurück; gerät es in Rückstand, werden Daten übersprungenUrteilt nach einem Langzeitmittel
DWC2Ältere Rockchip, einige Kirin- und Amlogic-TabletsNicht auf 4 Bytes ausgerichtete Daten können Rauschen verursachenBevorzugt 32-Bit-Formate (4 Bytes)
xHCIFast jedes Telefon mit USB-C (etwa ab 2015)Abschlussmeldungen kommen gebündelt zurück; Verzögerungen führen zu übersprungenen DatenUrteilt nach einem Langzeitmittel und hält genug Daten im Voraus bereit
MediaTek xHCINeuere MediaTek-TelefoneStrenge Bandbreitenzuteilung kann hohe Abtastraten ablehnenAbgelehnte Raten werden von reTONE in die nächstniedrigere Rate umgerechnet, die der DAC akzeptiert (ab 0.92.68; auf einem echten Telefon haben wir noch keine Ablehnung gesehen)
  • Abfrageintervall: Die meisten DACs nehmen alle 0.125 ms Audio an, manche alle 0.25 ms oder 1 ms. reTONE bemisst jedes Paket passend dazu.
  • Raten-Feedback: Die meisten DACs teilen dem Telefon mit, wie schnell es senden soll (asynchroner Modus), und das Format dieser Meldung ist je nach Gerät verschieden. reTONE erkennt die meisten dieser Formate automatisch und passt sich an (ab 0.88.0). Manche haben kein Feedback und folgen stattdessen der Rate des Telefons (adaptiver Modus). Manche asynchronen DACs, die die Rate über den Aufnahmestrom melden (implizites Feedback), werden noch nicht unterstützt.
  • Strom: Manche DACs haben einen eigenen Akku oder ein eigenes Netzteil; busgespeiste DACs laufen allein mit dem Strom des Telefons und werden auf älteren Telefonen, die nicht genug liefern können, möglicherweise nicht erkannt. Auch ein akkubetriebener DAC lädt sich unter Umständen am Telefon auf und entlädt es dadurch schneller.
  • DSD: Die meisten DACs, die native DSD annehmen, verwenden dasselbe Layout (32 Bit, Big-Endian), es gibt aber Ausnahmen.

Klangeinstellungen der Hersteller

„Sound“ im unteren Menü öffnet den Bildschirm mit den Klangeinstellungen des Herstellers, sofern das Telefon einen hat, andernfalls die Toneinstellungen von Android. Welcher Bildschirm geöffnet wird, können Sie mit der Einstellung „Sound settings“ festlegen.

TelefonGeöffneter Bildschirm
SHARP AQUOS CRYSTAL 305SHHarman Clari-Fi/LiveStage
KYOCERA URBANO L03 (KYY23)Dolby
Sony Xperia PKlangeffekte (Equalizer, ClearBass, VPT, xLOUD und weitere)
LG Android One X5Klangqualität und Effekte (Hi-Fi Quad DAC, Digitalfilter, DTS:X und weitere)
Samsung Galaxy S8SoundAlive
Sony Xperia XA1 PlusKlangeinstellungen von Sony

Ob die Einstellungen des Herstellers auf die Wiedergabe von reTONE wirken, hängt vom Telefon ab.

Was es nicht tut

  • Es gibt keinen Equalizer, keine Überblendung und keine Wellenformanzeige. reTONE stellt Leichtigkeit an die erste Stelle und wendet keine Effekte auf den Klang an. ReplayGain (Angleichen der Lautheit anhand von in den Tags gespeicherten Werten) ist verfügbar; es ist standardmäßig aus, schreibt Ihre Dateien nicht um und senkt nur die Wiedergabelautstärke.
  • reTONE spielt selbst keine Streams ab. Seine Aufgabe endet mit dem Öffnen der Streaming-App, und Wiedergabe und Klangqualität hängen von dieser App und dem Telefon ab.
  • Standardmäßig nutzt reTONE das Netzwerk überhaupt nicht. Eine Verbindung entsteht nur, wenn Sie in den Einstellungen „Network features“ einschalten, und auch dann nur, wenn Sie es veranlassen, oder für Prüfungen, die Sie ausgewählt haben. Während die Freigabe eingeschaltet ist, nimmt es außerdem Verbindungen von Telefonen an, die Sie zugelassen haben. Es erfasst keine Daten über Sie.
  • Steuerung über Android Auto oder Wear OS wird nicht unterstützt. (Die Wiedergabesteuerung in Benachrichtigungen, auf dem Sperrbildschirm von Android und über Bluetooth-Geräte wird ab 0.87.0 unterstützt.)
  • Die reTONE-Engine kann DST-komprimierte DFF, APE und WMA Lossless nicht abspielen, und eine Unterstützung ist nicht geplant. Bitte wandeln Sie diese in FLAC oder ein ähnliches Format um.
  • Läuft nicht unter Android 3.x oder älter.
  • Auf Telefonen ohne USB-Host-Unterstützung (OTG) ist die USB-DAC-Direktausgabe nicht verfügbar. Die Einstellung „USB DAC direct output“ erscheint ausgegraut mit der Meldung „This device does not support USB devices.“
  • Die mit der USB-DAC-Direktausgabe getesteten Kombinationen aus Telefon und DAC sind begrenzt. Ob andere Telefone oder DACs funktionieren, haben wir nicht geprüft. Manche Telefone melden Android eine USB-Host-Unterstützung, können über OTG aber nicht als Host arbeiten. Die getesteten Kombinationen stehen unter „USB-DAC-Direktausgabe: getestete Kombinationen“.
  • DoP wird nicht unterstützt. Native DSD erfordert einen DAC, der native DSD unterstützt und eine Lautstärkesteuerung über USB erlaubt. Bei anderen DACs wird DSD vor dem Senden in PCM umgewandelt.
  • Während die USB-DAC-Direktausgabe verwendet wird, spielt der Ton anderer Apps nicht über den USB DAC, sondern über den Lautsprecher des Telefons.
  • Beim eingebauten Lautsprecher oder der Kopfhörerbuchse können wir keine bitgenaue Ausgabe garantieren, weil Apps nicht prüfen können, wie das Telefon das Audio tatsächlich ausgibt. Bei einem USB DAC wird BIT-PERFECT nur angezeigt, wenn die Bedingungen erfüllt sind.
  • reTONE verändert den Audioweg zum eingebauten DAC des Telefons nicht (etwa das Umgehen der Abtastratenwandlung oder das Erzwingen der Offload-Wiedergabe), da dies root oder die Signatur des Telefonherstellers erfordert.
  • Bei ausgeschaltetem Display werden das Gedrückthalten einer Lautstärketaste für eine fortlaufende Änderung und das Überspringen von Titeln mit den Lautstärketasten nicht unterstützt, da Android die Tasten nicht an Apps weitergibt.
  • Das Bearbeiten von Tags sowie das Löschen oder Verschieben von Dateien werden nicht unterstützt.
  • Ab Android 10 erscheinen FLAC, MP3 und andere Titel auf einem USB-Stick nicht in der Bibliothek, weil Android sie nicht auflistet.
  • Manche asynchronen USB DACs, die die Rate über den Aufnahmestrom melden (implizites Feedback), werden nicht unterstützt. Das Audio kann alle paar zehn Sekunden bis alle paar Minuten aussetzen.
  • Unter Android 4.0 gibt es bei Formaten, die Android abspielt, etwa MP3 und AAC, eine kurze Lücke zwischen den Titeln (Formate, die die Engine von reTONE abspielt, laufen auch unter 4.0 lückenlos).