PC-re írom, oprendszer fölött, azon belül Linuxra. A kernel nem is hagyná, hogy közvetlenül piszkáljam a hardware-t, meg kicsit nagy falat volna hangkártya driver-t írni. Használom a szolgáltatásokat, az API által biztosított függvényeket, nincs is más lehetőségem. Sőt, a Seren eredeti kódját nem én írtam. Azért nyúlok hozzá, mert recseg-ropog, s elkezdtem gondolkodni ennek lehetséges okán.
Már ne is haragudj, azt egy nagyon szemellenzős és szélsőségesen software-es meglátásnak tartom, hogy nem vagy hajlandó végiggondolni a dolgok fizikáját, abból indulsz ki, hogy az API biztosít valamit, és az úgy is van.
Én hardware fejlesztő vagyok, éppen ezért látom ezt a számítógép működése felől. Nem kell ahhoz bugosnak lennie egy kernel modulnak vagy egy software-nek, hogy belássuk, attól, hogy kérsz egy 44100 sample/s-os stream-et az operációs rendszertől, az nominálisan lesz annyi, nem pedig ténylegesen. Mégpedig ugyanazért, amiért a hálózati időszinkron nélküli órák is elkezdenek egymáshoz képest elmászni. Mert semmilyen fizikai mennyiséget, így az időt sem tudjuk végtelen pontossággal megmérni. Ennek elvi okai már a kvantummechanikában rejlenek, de gyakorlati oka is van: nem tudsz valamit úgy klónozni, hogy az a környezeti peremfeltételekkel együtt tökéletesen ugyanolyan legyen.
Tehát, ha kérsz egy 44100 Hz mintavételű stream-et a hangszervertől, az az egyik gépen például 44108 Hz-es, a másik gépen meg mondjuk 44097 Hz-es lesz. Ennek hardware okai lesznek, s közben a hangszerver teljes mellbedobással és őszintén hinni fogja, hogy ez mindkét esetben 44.1 kHz. Tehát a software azonos frekvenciát fog gondolni valamiről, ami nem azonos, de ennek nem software bug az oka.
Hogy tovább menjek, a számítógép kvarcoszcillátorainak hőmérsékletfüggése is van, de még öregedése is, azaz a környezeti hőmérséklet függvényében is változni fog a mintavételi frekvencia, továbbá a számítógép életkorától függően is lesz ennek valamekkora driftje.
Egy VoIP kommunikációban tehát lesz hatása annak, ha a két beszélgetőpartner közül az egyik kinyitja az ablakot, s megváltozik a környezeti hőmérséklet. Bár, mint mondtam, ezen hatások megfelelő software-es technikákkal, szabályozó hurkokkal kompenzálhatók, de ezért tenni kell.
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE