{"id":2190,"date":"2011-01-26T12:35:00","date_gmt":"2011-01-26T09:35:00","guid":{"rendered":"http:\/\/www.soundblog.ro\/?p=2190"},"modified":"2011-01-26T12:35:00","modified_gmt":"2011-01-26T09:35:00","slug":"windows-kmixeraudio-service-si-alte-metode-de-maltratare-a-semnalului-audio","status":"publish","type":"post","link":"https:\/\/www.soundcreation.ro\/blog\/2190\/windows-kmixeraudio-service-si-alte-metode-de-maltratare-a-semnalului-audio\/","title":{"rendered":"Windows Kmixer\/Audio Service si alte metode de maltratare a semnalului audio"},"content":{"rendered":"<p>In primul, ce este <strong>Kmixer-ul<\/strong>: o parte din WDM audio, practic bucata de software care mixeaza toate stream-urile audio PCM care pot rezulta in interiorul unui calculator si face resamplingul necesar pentru ca acestea sa poata sa fie reprodusa de catre o placa audio oarecare. Prescurtarea este provenita de la \u201ckernel audio mixer\u201d si este folosita de catre mai toate variantele de Windows pana la Windows Vista, in acesta fiind inlocuit de catre un engine audio nou, dar care in principiu prezinta cam aceleasi probleme.<\/p>\n<h3>Cateva <strong>date folositoare<\/strong> despre Kmixer, intai si intai:<\/h3>\n<ul>\n<li>suporta <strong>rate de esantionare<\/strong> de pana la 100kHz in cazul versiunilor de Windows anterioare XP SP1 si Server 2003; la toate versiunile ulterioare, rata maxima este de 200kHz<\/li>\n<\/ul>\n<ul>\n<li>are o <strong>latenta<\/strong> implicita de 30ms; lucru care nu ar trebui sa afecteaze intr-un mod vizibil (audibil, ar trebui sa zic?) reproducerea sunetului, dar este un aspect bine de cunoscut<\/li>\n<\/ul>\n<p>Dupa o cautare destul de intensiva prin meandrele internetului, principala problema a Kmixerului este faptul ca face <strong>resampling automat<\/strong> al tuturor stream-urilor audio care ii apar pe intrari, la rata maxima dintre toate stream-urile care ruleaza concomitent, inclusiv a celor de intrare (pentru inregistrare). In practica, daca rulam un player la 96kHz si altul la 44kHz, semnalul audio transmis de catre cel care ruleaza la 44kHz va fi in mod automat resample-uit la 96kHz, si din cate se pare, cu un algoritm de SRC destul de \u201cdezavantajos\u201d muzicii, pentru a folosi eufemisme. Mentionez ca semnalul cu rata de esantionare cea mai mare <strong>nu este resample-uit <\/strong>de catre Kmixer, atata timp cat placa de sunet suporta in mod nativ rata respectiva de esantionare \u2013 si cam toate placile suporta MACAR 44.1kHz. Implicit, un semnal la 44kHz nu este afectat in vreun fel.<\/p>\n<p>Mergand mai departe legat de posibilitatile de rulare a semnalului \u201cbit-perfect\u201d prin Kmixer, intervine urmatorul aspect \u2013 <strong>obligativitatea lasarii faderelor<\/strong> din Volume Control pe unity-gain si a <strong>panoramarii <\/strong>pe 0. Lucru deloc surprinzator, din punctul meu de vedere \u2013 <strong>orice modificare de volum<\/strong> (inclusiv cea din Foobar, setat pe ASIO, samd\u2026 voi explica putin mai departe) implica procesare si erori de trunchiere. Intr-adevar, trebuie avuta o oarecare grija la anumite aplicatii care controleaza de unele singure Volume Slider-ului mixerului de volum, dar in rest, nu mi se pare nimic anormal. Cati din voi folositi un atenuator pasiv sau un amplificator cu buton de volum care sa controleze 100% din exterior iesirea placii de sunet, si cati va folositi si de astfel de controale software \u201cnon-bit-perfect\u201d?<\/p>\n<p>Desi in specificatiile sale este mentionata si posibilitatea de <strong>modificare a numarului de biti<\/strong>, nu am reusit sa gasesc in documentatia Microsoft sau prin alte locuri mai mult sau mai putin de incredere o explicatie clara a momentului in care s-ar putea face o trunchiere sau un dithering al semnalului audio, cu exceptia urmatorului bug, aplicabil doar Windows-ului 2000:\u00a0\u00a0\u00a0<strong> <a href=\"http:\/\/support.microsoft.com\/kb\/308883\">LINK<\/a><\/strong><br \/>\nLuand in considerare ca numarul de biti de pe iesire este dictat de catre posibilitatile placii si de cerintele software, nu prea reusesc sa intrevad un moment in care Kmixer-ul sa trunchieze (ca de dithering nu cred sa se puna problema) datele. Si pentru a fi perfect seriosi, cine exact asculta muzica la 24 de biti care ar putea sa sufere de o oarecare trunchiere la 16 biti?<\/p>\n<p><strong>Paranteza:<\/strong> daca asculti MP3-uri, WAV-uri, sau FLAC-uri rippuite de pe un CD audio, implicit cu 16 biti de informatie utilizabila, orice setare a placii de sunet, Winamp-ului, DAW-ului sau a oricarui alt program pe 24 de biti pe iesire <strong>NU<\/strong> va ajuta in vreun fel. Tot ce va face este sa plimbe 8 biti \u201ccreati din neant\u201d si fara vreo valoare pe ici-colo.<\/p>\n<p>Intram in <strong>sectiunea presupuneri<\/strong> pe care nu am reusit sa le fondez pe o baza teoretica efectiva:<br \/>\nExista o serie de forumuri care sustin distrugerea ultimului bit de catre Kmixer, sugerand fiecarui user sa testeze daca placa proprie \u201cbeneficiaza\u201d de acest aspect. Unii merg si mai departe, sugerand sa folosesti adancimi de biti de 24 de biti, practic \u201cconvingand\u201d Kmixer-ul sa distruga ultimul bit din 24, care, dupa aproape orice standard, este complet nesemnificativ.<\/p>\n<p>Pentru cei care au trecut la sisteme de operare moderne, Audio Service-ul (echivalentul Kmixer-ului) aparut si folosit in mod implicit de catre Vista (si ulterior la Windows 7) lucreze in mod automat la 32-biti cu virgula flotanta, lucru care s-ar parea sa duce in mod automat la anumite mici erori de trunchiere la reprezentare.<\/p>\n<p>Asadar, pentru ascultatorii mai puristi, exista <strong>o serie de solutii<\/strong> pentru a trece pe langa un<strong> Kmixer\/Audio Service <\/strong>care poate face mai mult sau mai putin rau unui semnal audio:<\/p>\n<ul>\n<li>folosirea Foobar-ului concomitent cu <strong>ASIO4ALL<\/strong> pentru iesire (orice Windows)<\/li>\n<\/ul>\n<ul>\n<li>pentru cei dependenti de Winamp, folosirea plugin-ului de <strong>OpenAL<\/strong> (in principiu pentru Windows Vista si 7)<\/li>\n<\/ul>\n<ul>\n<li>acelasi Foobar, cu plug-in-ul de WASAPI (Windows Vista si 7)<\/li>\n<\/ul>\n<p><strong><br \/>\nNiste mici <\/strong><strong>concluzii, un pic cinice<\/strong> \u2013 doar e iarna afara, ce sa-i faci. Luand si cazul cel mai rau posibil, in care Kmixerul ar distruge ultimul bit din 16, chiar conteaza acel sunet la -85dBFSD care este mascat de white-noise-ul bloc compact denumit uneori muzica plasat peste el? Intr-adevar, daca se foloseste <strong>SI<\/strong> resampling, rezultatul ar putea sa fie destul de urat \u2013 pe de alta parte, in ce conditii Windows-ul ar putea produce sunete la o rata de esantionare mai <strong>MARE<\/strong> decat 44kHz pentru a resample-ui muzica?<\/p>\n<p>Mergand mai departe, e perfect posibil si necesar sa dai volumul mai incet Kmixer sau din player-ul audio \u2013 e ceva <strong>nemaiauzit<\/strong>; din acel moment, problema cea mai mare nu este bit-imperfectiunea semnalului rezultant, as spune eu; ci faptul ca te apropii de noise floor-ul placii de sunet incetul cu incetul, scazand raportul semnal-zgomot; si totusi cu <strong>avantajul<\/strong> nesolicitarii partii analogice a DAC-ul, care influenteaza pozitiv semnalul, samd\u2026 Prin urmare, voi ramane cu al meu<strong> Winamp<\/strong> 2.5, cu skin clasic (ala verde cu negru si urat ca focu\u2019) si cu<strong> Kmixer<\/strong>, ascultand muzica pe orice am la indemana de la nenorocita de placa Soundmax din laptopul vechi de 7 ani (cu una din cele 2 iesiri mono mai tare decat alta), la placi semi-profi, la convertoare dedicate, pe casti in-ear, casti de studio, monitoare de studio, boxe de calculator, boxe de laptop, samd. Oricare dintre acestea si adaptarea urechii la sunetul lor influenteaza MULT mai mult sunetul decat un ultim bit\u2026 Ca sa nu vorbesc de o <strong>deplasare<\/strong> a capului cu 5 cm catre stanga sweet spot-ului de 1cm2 dintre monitoare.<\/p>\n<p>Mihai Toma<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dupa o cautare destul de intensiva prin meandrele internetului, principala problema a Kmixerului este faptul ca face resampling automat al tuturor stream-urilor audio care ii apar pe intrari, la rata maxima dintre toate stream-urile care ruleaza concomitent, inclusiv a celor de&#8230;<\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[11],"tags":[530,527,199,526,528,449,529,288,139,13],"_links":{"self":[{"href":"https:\/\/www.soundcreation.ro\/blog\/wp-json\/wp\/v2\/posts\/2190"}],"collection":[{"href":"https:\/\/www.soundcreation.ro\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.soundcreation.ro\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.soundcreation.ro\/blog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.soundcreation.ro\/blog\/wp-json\/wp\/v2\/comments?post=2190"}],"version-history":[{"count":6,"href":"https:\/\/www.soundcreation.ro\/blog\/wp-json\/wp\/v2\/posts\/2190\/revisions"}],"predecessor-version":[{"id":2196,"href":"https:\/\/www.soundcreation.ro\/blog\/wp-json\/wp\/v2\/posts\/2190\/revisions\/2196"}],"wp:attachment":[{"href":"https:\/\/www.soundcreation.ro\/blog\/wp-json\/wp\/v2\/media?parent=2190"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.soundcreation.ro\/blog\/wp-json\/wp\/v2\/categories?post=2190"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.soundcreation.ro\/blog\/wp-json\/wp\/v2\/tags?post=2190"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}