"En het is inderdaad echt heel simpel; bij een niet geoptimaliseerd os hoor je bijvoorbeeld minder of geen akoestiek van de zaal/ruimte, details of verschil in klankkleur tussen bijvoorbeeld twee (akoestische) gitaren. Bij een geoptimaliseerd os hoor je dat wel. "
Holy crap, wat kan jij goed in je eigen fantasieen geloven.
Maar volgens mij haal je een paar dingen door elkaar.
OS optimizatie heeft niks (nul komma nul) met bit perfect te maken.
De bits komen aan, of niet en dan hoor je een impuls.
Wat er ook kan gebeuren is dat een OS de file in real time voor je gaat omrekenen (DSP bewerking).
Als je kijkt naar wat een gemiddeld OS voor zn kiezen krijgt dan loopt dat grof gezegd van 8 bits tot 32 bit floats en van zo'n 32kHz tot 192kHz.
Dat, terwijl de DAC meestal maar op 1 stand loopt.
Het audio moet dus ergens eerst naar het formaat van de DAC worden omgezet en dat gebeurt vaak niet zo netjes en kan inderdaad tot gevolg hebben dat het niet meer zo gedetaileerd klinkt. Dan kan je inderdaad ook subtiele zaken kwijtraken.
Maar dit heeft helemaal niks te maken met een OS dat het druk heeft ofzo.
Bit perfect betekent alleen dat er geen processing wordt gedaan door het OS. Het is eigenlijk heel simpel. Het os geeft de data aan de DAC precies zo door zoals het opgeslagen was. Snapt de DAC het formaat niet en komt er herrie uit je speakers? Is niet het probleem van het os of de DAC, dan had je maar een juist formaat moeten aanleveren.
Het voordeel is dat zaken als samplerate conversie en eventueel dithering etc. aanpasbaar worden. Sterker nog, je zult er zelf voor moeten zorgen want het OS doet deze conversie niet meer.
Je kan er dan voor kiezen om een high fidelity sample rate conversie toe te passen op je bestanden die veel beter is dan die van het OS.
Je hebt dat 'bit perfect' hoe dan ook nodig om bv DTS data direct naar een SPDIF uitgang te pompen. Omdat die data anders geformateerd is zou zelfs een simpele PCM volumeverandering de hele datastroom vergallen. Voor dit soort gevallen (non-PCM data over digitale uitgang) is 'bit perfect' dus noodzakelijk, anders werkt het helemaal niet.
Verder heeft zo'n RPi natuurlijk een beperkte CPU en als je echt
echt zeker wilt zijn dat de audiodata op tijd in het buffertje van de DAC belandt dan is het handig om dat in de kernel te regelen.
Vandaar RaspiFy.