01
Signalvej og lydrammer
Musikken dekodes til PCM-samples, behandles af båndtransport og effektrack og sendes til Androids lydudgang. Systemet og hovedtelefonerne kan også lægge lyden i kø, resample eller kode den. Størrelsen på én buffer er ikke den samlede tid fra en fingerbevægelse til hørbar lyd.
En PCM-ramme indeholder alle kanalers samples på ét tidspunkt. En behandlingsblok rummer flere lydrammer. Omregning til tid kræver samplingsfrekvensen; skærmens billedfrekvens eller én behandlingsblok måler ikke direkte den hørbare forsinkelse.
01
Signalvej og lydrammer
Musikken dekodes til PCM-samples, behandles af båndtransport og effektrack og sendes til Androids lydudgang. Systemet og hovedtelefonerne kan også lægge lyden i kø, resample eller kode den. Størrelsen på én buffer er ikke den samlede tid fra en fingerbevægelse til hørbar lyd.
En PCM-ramme indeholder alle kanalers samples på ét tidspunkt. En behandlingsblok rummer flere lydrammer. Omregning til tid kræver samplingsfrekvensen; skærmens billedfrekvens eller én behandlingsblok måler ikke direkte den hørbare forsinkelse.
02
Direkte betjening og hovedtelefonforsinkelse
Brug hovedtelefoner med kabel. I udviklerens forsøg fjernede de den tydelige hørbare forsinkelse ved hjul- og rystebetjening over Bluetooth. Den faktiske respons afhænger stadig af telefon, system og udgangsenhed.
I forgrunden bruges enhedens mindste bufferkrav som nedre grænse sammen med en anmodning på cirka 30 ms. Det reducerer lyd i kø, så transportbetjening kan påvirke den efterfølgende lyd tidligere.
02
Direkte betjening og hovedtelefonforsinkelse
Brug hovedtelefoner med kabel. I udviklerens forsøg fjernede de den tydelige hørbare forsinkelse ved hjul- og rystebetjening over Bluetooth. Den faktiske respons afhænger stadig af telefon, system og udgangsenhed.
I forgrunden bruges enhedens mindste bufferkrav som nedre grænse sammen med en anmodning på cirka 30 ms. Det reducerer lyd i kø, så transportbetjening kan påvirke den efterfølgende lyd tidligere.
03
Forudlæsning og cache
Afspilningen beholder højst fire forudlæsningsvinduer og genbruger dekodet lyd i en cache, der fyldes efter behov og har et loft på 16 MiB. Det mindsker gentagen dekodning og begrænser hukommelsesforbruget. Det betyder ikke, at hele nummeret eller så meget lyd står i kø til hovedtelefonerne.
Forudlæsningsvinduer, cache med dekodet lyd og udgangsbuffer har forskellige opgaver. Hukommelseskapacitet kan ikke direkte omsættes til udgangsforsinkelse uden at skelne mellem disse trin.
03
Forudlæsning og cache
Afspilningen beholder højst fire forudlæsningsvinduer og genbruger dekodet lyd i en cache, der fyldes efter behov og har et loft på 16 MiB. Det mindsker gentagen dekodning og begrænser hukommelsesforbruget. Det betyder ikke, at hele nummeret eller så meget lyd står i kø til hovedtelefonerne.
Forudlæsningsvinduer, cache med dekodet lyd og udgangsbuffer har forskellige opgaver. Hukommelseskapacitet kan ikke direkte omsættes til udgangsforsinkelse uden at skelne mellem disse trin.
04
Effekter, bypass og knitren
Effektkæden skiftes ved lydblokgrænser med en overgang på cirka 20 ms mellem gammel og ny kæde. Overgangen kan kortvarigt øge arbejdet, men fastslår ikke årsagen til knitren. Hvis Android kun tager imod en del af en blok, sendes den allerede behandlede rest bagefter uden at køre effekterne igen.
Bypass ændrer det hørbare resultat, men instansen beregner stadig for at bevare sin tilstand. Fjern ubrugte instanser for at mindske belastningen.
Ved knitren: undersøg kædens udgangsspidser og sænk for høj effektforstærkning for at undersøge klipning. Fjern derefter ubrugte effekter og sammenlign belastningen. Manglende lyddata kan give bufferunderløb, mens for høje spidser kan klippe. Overbelastningslampen viser spidser, ikke underløb. Disse trin indsnævrer mulighederne, men stiller ikke en diagnose.
04
Effekter, bypass og knitren
Effektkæden skiftes ved lydblokgrænser med en overgang på cirka 20 ms mellem gammel og ny kæde. Overgangen kan kortvarigt øge arbejdet, men fastslår ikke årsagen til knitren. Hvis Android kun tager imod en del af en blok, sendes den allerede behandlede rest bagefter uden at køre effekterne igen.
Bypass ændrer det hørbare resultat, men instansen beregner stadig for at bevare sin tilstand. Fjern ubrugte instanser for at mindske belastningen.
Ved knitren: undersøg kædens udgangsspidser og sænk for høj effektforstærkning for at undersøge klipning. Fjern derefter ubrugte effekter og sammenlign belastningen. Manglende lyddata kan give bufferunderløb, mens for høje spidser kan klippe. Overbelastningslampen viser spidser, ikke underløb. Disse trin indsnævrer mulighederne, men stiller ikke en diagnose.
05
Afspilning i baggrunden
I baggrunden sendes PCM i portioner ved normal 1× hastighed, og effekterne bevares. Et tomt rack anmoder om cirka 200 ms buffer; med effekter er målet cirka 600 ms, begrænset af den tildelte kapacitet.
En større baggrundsbuffer giver plads til udsving i systemets planlægning. Hvis behandlingen vedvarende er for langsom, kan der stadig opstå underløb. Tilbage i forgrunden gendannes mindre bufferindstillinger, men allerede kølagt lyd skal stadig afvikles.
05
Afspilning i baggrunden
I baggrunden sendes PCM i portioner ved normal 1× hastighed, og effekterne bevares. Et tomt rack anmoder om cirka 200 ms buffer; med effekter er målet cirka 600 ms, begrænset af den tildelte kapacitet.
En større baggrundsbuffer giver plads til udsving i systemets planlægning. Hvis behandlingen vedvarende er for langsom, kan der stadig opstå underløb. Tilbage i forgrunden gendannes mindre bufferindstillinger, men allerede kølagt lyd skal stadig afvikles.
06
Grafik og orienteringssensorer
Tegningen af hjulet beholder kun den seneste tilstand og højst én ventende tegneopgave, så gamle tilstande ikke hober sig op. Skærmopdatering og lydudgang følger forskellige veje; hørbar Bluetooth-forsinkelse forklarer ikke tabte skærmbilleder.
Når appen går i baggrunden, skærmen slukkes eller funktionen deaktiveres, stoppes de relevante orienteringsmålinger og sensorlyttere frigives. Dynamiske refleksioner ændrer lyset, ikke lyden. Rystesimulationens lydeffekt har sin egen kontakt.
06
Grafik og orienteringssensorer
Tegningen af hjulet beholder kun den seneste tilstand og højst én ventende tegneopgave, så gamle tilstande ikke hober sig op. Skærmopdatering og lydudgang følger forskellige veje; hørbar Bluetooth-forsinkelse forklarer ikke tabte skærmbilleder.
Når appen går i baggrunden, skærmen slukkes eller funktionen deaktiveres, stoppes de relevante orienteringsmålinger og sensorlyttere frigives. Dynamiske refleksioner ændrer lyset, ikke lyden. Rystesimulationens lydeffekt har sin egen kontakt.
07
Observationer og målebetingelser
De offentliggjorte oplysninger er indtil videre udviklerens kvalitative sammenligning af kabel og Bluetooth. Der er ikke offentliggjort reproducerbare tal for samlet forsinkelse, behandlingsbelastning eller strømforbrug med fulde målebetingelser.
Sammenligning kræver telefonmodel, systemversion, udgangsenhed og forbindelse, samplingsfrekvens, effektkæde og samme musikstykke. Bufferanmodninger og mål erstatter ikke målinger. Ti rackpladser beskriver kapaciteten, ikke en garanti for problemfri drift af alle kombinationer, fast forsinkelse eller en bestemt strømbesparelse.
07
Observationer og målebetingelser
De offentliggjorte oplysninger er indtil videre udviklerens kvalitative sammenligning af kabel og Bluetooth. Der er ikke offentliggjort reproducerbare tal for samlet forsinkelse, behandlingsbelastning eller strømforbrug med fulde målebetingelser.
Sammenligning kræver telefonmodel, systemversion, udgangsenhed og forbindelse, samplingsfrekvens, effektkæde og samme musikstykke. Bufferanmodninger og mål erstatter ikke målinger. Ti rackpladser beskriver kapaciteten, ikke en garanti for problemfri drift af alle kombinationer, fast forsinkelse eller en bestemt strømbesparelse.