ASIO i WASAPI dla optymalnego odtwarzania muzyki z PC i ewentualnie na potrzeby Tidal
Odtwarzanie muzyki ze strumieni hi‑fi w ofercie Tidal świetnie może się sprawdzić z Brodcasted Music Reciver. To PC skonfigurowany z myślą o odbiorze transmisji na żywo, ale bez problemu może odtwarzać inne strumienie z muzyką. Jest także optymalnie skonfigurowany dla melomanów i od lat najlepiej sprawdza się tu ustawienie WASAPI z 32 bity/196 kHz.. Robię z nim teraz nowe testy i przy okazji sprawdzam dodatkowo, jak tu radzi sobie ASIO, o którym w pomocy Light Alloy pozostawiona została informacja:
Wybierz najlepszą jakość dźwięku dla Twojego sprzętu w następującej kolejności: 1. używaj ASIO, jeśli Twoja karta ma swój własny sterownik ASIO; 2. w przeciwnym razie należy użyć WASAPI w trybie wyłączności (tylko w systemie Windows Vista lub nowszym); 3. inaczej, należy użyć Kernel Streaming, jeśli działa; 4. jeśli żadna z powyższych opcji nie jest możliwa, należy używać DirectSound lub WaveOut. Żadna z nich nie zapewnia bezpośredniego wyjścia sprzętowego, więc zdecyduj opierając się na wydajności
Bieżące testy wskazują inaczej. Zacytowana powyżej sugestia może dotyczyć możliwości Audio Session API w starszych wersjach Windows i istotną rolę odgrywają tu także sterowniki procesora dźwięku. Te nowsze dla Realtek zapewniają wierniejsze odtwarzanie muzyki, zarówno z WASAPI, jaki i ASIO. Natomiast np Creative Labs dłuższy czas nie aktualizowało swoich sterowników i one mogły nadal lepiej działać z ASIO.
Również jakość Windows Audio Session Application Programming Interface nie zawsze jest taka sama i zależy od producenta oprogramowania. Różnice słychać pomiędzy WASAPI w Light Alloy i AIMP. Najlepiej sprawdza się ten drugi, ale ten pierwszy pozostaje najlepszą alternatywą przy odtwarzaniu nagrań z wizją, co jest bardzo istotne m.in. dla muzyki udostępnianej na YouTube. Trzecia preferowana alternatywa z WASAPI to w ProgDVB, który najlepiej sprawdza się z tunerami TV, czyli dla odbioru transmisji z eteru. Ten program jest w wersji 64 bitowej, która jest dobrą platformą, na której Tidal może udostępnić swoje usługi.
Punktem wyjścia w moich testach z PC jest odtwarzanie nagrań z głosem, który dobrze znam na żywo, czyli bez pośrednictwa mikrofonu itd. Jeżeli ustawienie sprzętu i oprogramowana dają przy odtwarzaniu tego głos najlepsze możliwe wrażenie, że właśnie ta osoba jest w pomieszczeniu, to później mogę także właściwie odsłuchać, co jest zapisane w nagraniach z dźwiękiem, którego nie poznałem w rzeczywistości. Takie wierne odtwarzanie muzyki pozwala lepiej poznać, co artyści i realizatorzy dźwięku chcieli nam przekazać, a to właśnie interesuje melomanów.
Takiego komfortu nie ma, gdy usłyszymy muzykę w sklepach, barach itd. Nie ma nawet pewności, czy odtwarzane jest tam nagranie z oryginalnym artystą, czy jest to może jakaś produkcja firmy dostarczającej przeboje w ekonomicznym wykonaniu. Takich nagrań nie ma już chyba w ofertach z płytami, ale kiedyś wydawano przez długie lata w konkurencyjnych cenach składanki na winylu z anonimowymi wykonaniami aktualnych przebojów. Teraz te nagrania mogą być oferowane dla publicznego odtwarzania, by zredukować opłaty związane z prawami autorskimi.
Przykładem tego jest sytuacja, która zaistniała niedawno w barze odwiedzanym chętnie przez muzyków. Wywiązała się dyskusja na temat dziwnego instrumentu w znanym przeboju, który był właśnie odtwarzany. Ktoś dobrze znał to nagranie i był pewny, że to oryginał z klaskaniem w dłonie, a nie jakieś nieudaczne imitowanie tego z syntezatora, na co bardziej wskazywał dźwięk z głośników w barze. Innym razem zadzwonił do mnie muzyk, że podkładam chyba jakąś świnię z opublikowanym na YouTube amatorskim nagraniem wideo z koncertu. Wyszło tak, bo zmontowałem materiał na laptopie i z jego głośniczkami nie miałem szans, by rozróżnić, co jest zamierzonym efekt dźwiękowy, a co jakimś przekłamaniem. Przecież gitara elektryczna może brzmieć na tysiące różnych sposobów i dopiero z dobrym odsłuchem jest szansa, by wyłapać, czy nie są to jakieś błędy w nagraniu.
W ostatnich testach poświęciłem więcej czasu na ponowne sprawdzenie możliwości ASIO, bo pojawiły się nowe sterowniki do popularnego wśród muzyków Sound Blaster. Poprzednim razem testowałem układ Cretaive Labs na pierwszej płycie głównej z odseparowaną elektroniką dla audio, czyli Gigabyte Sniper 5. Płyty nie było jeszcze w sprzedaży i sterowniki pozostawiały nadal wiele do życzenia. Tym razem skorzystałem tylko z karty muzycznej z procesorem X‑Fi, którego sterownik pozwala na pracę 32 bity / 96 kHz. Użyłem wyjścia wg standardu Intel HD Audio bez korzystania z tandetnej konstrukcji gniazda mini jack, czyli podłączyłem kartę do analogowego zestawu audio kablami ze złączami chinch.
Na pierwszy ogień poszedł referencyjny AIMP. Ustawienie ASIO 32 bity / 96 kHz daje z najnowszym sterownikiem dużą poprawę. Warto przy tej okazji ustawić bufor ASIO na 300 ms, co przy odtwarzaniu pliku wav zapisanego z taką samą rozdzielczością wynosiło 225 kB. W programie AIMP można zapewnić dodatkowo bufor 250 MB, ale mniejsze wartość też dają niezłe rezultaty przy maksimum w ASIO. Nowy sterownik Creative Labs daje również poprawę z WASAPI i najlepiej sprawdza się w trybie Exklusive (Push) 32 bit / 196 kHz .
Największą poprawę z nowym sterownikiem Sound Blaser stwierdziłem jednak z foobar2000 w wersji 1.3.9. Pojawiła się do niego nowa wtyczka dla obsługi ASIO i WASAPI, ale tylko w pierwszym przypadku się sprawdza. Są to wersje beta i WASAPI nadal lepiej jest obsługiwać ze starszą (stabilną). W ustawieniu ASIO można wybrać sterownik 64 bitowy, a stabilność pracy dla dobrej jakości odtwarzania muzyki poprawia bufora 300 ms. Programowy bufor 30 tys. ms jest także godny polecenia, ale podobnie jak w AIMP może być zredukowany. WASAPI push z 32 bitowym próbkowaniem także sprawuje się lepiej z najnowszym sterownikiem Creative Labs. Dużą zaletą foobar 2000 jest możliwość tworzenie do niego niezależnych wtyczek i tu jest także dobra okazja do zagospodarowania przez Tidal
Często przy wyszukiwaniu pod hasłem WASAPI zgłasza się instrukcja Cambridge Audio. Podane jest tam m.in. Using WASAPI gives a maximum output of bit/96kHz but has much lower distortion than DirectSound i pokazane jest, jak zrobić to z foobar2000. Taki zestaw ze sprzętem od Cambridge Audio, obsługą WASAPI w OS od Microsoft i bezpłatnym oprogramowaniu foobar2000 świetnie obrazuje, że z PC mamy wolność wyboru.
Podsumowanie
We wpisie podaję oceny odsłuchu, które mogą zachęcić do lepszego wykorzystania możliwości PC przy odtwarzaniu muzyki. Użyte programy są bezpłatne i każdy może zrobić własne testy, a być może nadadzą się także z ofertą Tidal, ale ich strumienia hi‑fi nie było jeszcze okazji przetestować.
PS
Komentatorzy, którzy nigdy nie zrobią testów, ale chętnie wypowiedzą się na bazie zasłyszanych gdzieś wieści mogą zamieścić pod tym wpisem wiele błędnych informacji, a polemika z nimi zrodzi tylko kolejne dezinformacje. Profilaktycznie cytuję więc obszerne fragmenty z pomocy, którą autor Light Alloy udostępnia użytkownikom.
WASAPI
Windows Audio Session Application Programming Interface (WASAPI), to najnowsza metoda Kernel-streamingu oraz zamiennik dla DirectSound. Za pośrednictwem WASAPI aplikacja może zażądać wyłącznego dostępu do karty dźwiękowej i może wysyłać strumień dźwięku bezpośrednio do karty dźwiękowej. W tym przypadku aplikacja musi obsługiwać dowolny resampling, jeśli częstotliwość próbkowania odtwarzanego dźwięku nie jest obsługiwana przez kartę dźwiękową.
WASAPI zapewnia dwa tryby pracy: współdzielony i wyłączności. W trybie współdzielonym działa podobnie jak DirectSound, a mikser audio systemu Windows robi resampling i mieszanie. W trybie wyłączności WASAPI omija mikser audio systemu Windows oraz ma możliwość wysłania danych bezpośrednio do aplikacji karty dźwiękowej. Ten tryb można zastosować dla formatów takich jak: DTS, DTS Master Audio, Dolby True HD, Dolby digital, Flac, itp. - strumień dźwięku jest dekodowany oraz wysłany w postaci niezmienionej.
Ponadto ważne jest, w jaki sposób WASAPI zarządza danymi miedzy buforami dla różnych trybów. Do przetwarzania danych WASAPI wykorzystuje impuls i metodę pobierania na zażądanie. W push-mode przesuwa stosowne dane do buforów i monitoruje je w sposób ciągły, a kiedy widzi, że bufor jest opróżniany, napełnia go ponownie. W pull-mode, która jest bardziej nowoczesną techniką wykorzystuje zastosowanie dwóch buforów. Sterownik dźwięku dostarcza sygnał do aplikacji, gdy bufor jest pusty, a następnie rozpoczyna przetwarzanie danych z innej pamięci buforowej. W tym samym czasie rozpoczyna się wypełnianie pustego bufora.
W Windows Vista i Windows 7 jest możliwość stosowania WASAPI i jest to bardziej korzystne od DirectSound.
ASIO
Audio Stream Input/Output (ASIO) jest kolejnym sposobem przesyłania dźwięku, ale nie jest to Kernel-streaming. ASIO został opracowany przez Steinberg Ltd. umożliwiając częściowe pomijanie regularnego łańcucha dźwięku podczas odtwarzania audio za pomocą podsystemu audio Windows (w tym Kernel Mixer, który powoduje zniekształcenia). Zapewnia bezpośredni sposób komunikowania się z kartą dźwiękową, czego wynikiem jest doskonały sygnał audio - do 24‑bit/192 kHz, przy krótkim czasie reakcji i bez konwersji częstotliwości próbkowania.
Uwaga: Profesjonalne urządzenie audio z własnym sterownikiem ASIO zwykle działa lepiej, niż przy użyciu ASIO4ALL używany z rodzajową kartą dźwiękową. Specyficzne karty dźwiękowe przeznaczone specjalnie do nagrywania i produkowania muzyki z reguły mają lepszą jakość dźwięku, lepszą wydajność i są ze sterownikami ASIO, które są przeznaczone dla tego konkretnego urządzenia.
PS z info o WASAPI w j. ang
Trafiłem na zgrabne wyjaśnienie, które w grudnia 2017 opublikowane zostało przez eksperta z 20 letnim doświadczeniem (David Aleksandersen has extensive experience from the audiovisual industry).
WASAPI (Windows Audio Session API) is Microsoft’s multi-channel audio interface for communication with audio devices. WASAPI was introduced with Windows Vista™ and is supported by Windows 7 and later versions. WASAPI delivers an unmodified audio-stream to a sound device, and provides similar benefits as ASIO.
The Windows Audio Session API is Microsoft's high-end method for interacting with audio devices. It was introduced with Windows Vista and is available in later versions of Windows. How does WASAPI work? WASAPI enables client applications, such as WATCHOUT, or any application using audio, to control the flow of audio between the application and audio playback devices. It allows delivery of an unmodified bit‑stream to a sound device. WASAPI provides exclusive access to the audio devices, bypassing the system mixer, default settings, and any effects provided by the audio driver. Unless your audio interface has an ASIO driver, WASAPI is the recommended Audio Output Mode for Windows. WASAPI replaces all Microsoft Windows legacy output modes including Kernel Streaming and Direct Sound.
PS 20 XI 2019
Znalazłem także na forach w Internecie ciekawe wykresy z pomiarami
First : Wasapi (event) 16 bit Second : ASIO Focusrite driver
Temat WASAPI komentowany jest także na forum Microsoft
Interesująca może być również publikacja o oprogramowaniu DS WASAPI ASIO Router Mixer i nawiązująca recenzja
PS 03 VI 2020
Temat ma kontynuację pt Alternatywy dla optymalnego, czy wiernego odtwarzania z PC muzyki ze strumieni
PS 1 II 2021
We wpisie o ciekawym sterowniku dla popularnych koprocesorów dźwięku poruszam temat foobar z WASAPI shared output, który od sierpnia 2020 ma: "Added 22.2 channel downmixer". Autor foobar wypuścił także w ostatnich dniach 2020 nową wersję WASAPI, która lepiej się sprawdza od poprzedniej z lipca 2017, a z nowym serownikiem dla koprocesora zapowiada się atrakcyjne dla zainteresowanych, by optymalnie korzystać z wtyczki Spotify Integration.