• Okuduklarımdan, seyrettiklerimden aldığım notlar, izlenimler, incelemeler…

HQPlayer ve Sayısal Filtreler

Daha önce HQplayer ürününe bu günlükte kısaca yer vermiştim. Son zamanlarda Jriver’dan çok HQplayer yazılımını kullanmaya başladım. Sesin bu hali ile Jriver’dan daha iyi olduğunu düşünüyorum. HQplayer, çeşitli yukarı örnekleme (oversampling) ve gürültü şekillendirme (noise shaping) filtre seçenekleri sunuyor. Müzik dinlerken bunlarla oynamak ve keşfetmek bana zevkli geliyor. Bu yazıda HQplayer deneyimimden bahsedeceğim. Bu yazıyı yazma fikri filtreleri incelerken doğdu. Ancak, bu yazı bütünsel bir “ne, nasıl yapılır rehberi” değil. Belki rehberin rehberi gibi bir şey olabilir. Detaylar için yazımın sonunda faydalandığım kaynakları bulabilirsiniz. Windows ortamını kullanıyorum ama MacOS için de mantık aynı.

HQPlayer 4 Desktop, yukarı örnekleme ve çok kanal desteği sağlayan, Windows, Linux ve macOS ortamlarında kullanılabilen bir ses oynatıcısı. HQPlayer ayrıca, seçilebilir dither, gürültü şekillendirme ve modülatör algoritmalarının yanı sıra, seçilebilir birçok yüksek kaliteli yukarı örnekleme ve alt örnekleme algoritmasına sahip.

HQPlayer’ı oluşturan parçalar

Başlıca üç parçadan bahsedebiliriz.

  1. HQPlayer 4 Desktop (Sunucu): Bu uygulamadan kaynak, filtre, örnekleme ayarları yapılıyor, müzik dosyalarının olduğu depolama alanı (kütüphane) seçiliyor. Basit bir kullanıcı arayüzünden kütüphaneye erişim ve oynatıcısı işlevleri sunuluyor. Sadece HQPlayer 4 Desktop ile, bir bilgisayar kullanarak (tabi DAC da gerekli) müzik dinleme işinizi görebilirsiniz. Explorer gibi bir dosya listesinden Desktop uygulaması ana penceresine, müzik dosyalarını sürükle-bırak yöntemi ile oynatma listesi oluşturabilir, bu listeyi sonradan kullanım için saklayabilirsiniz. Alternatif olarak ana pencereye müzik dosyalarının bulunduğu klasörü tanımlamak mümkün.
  2. HQPlayer Client (Kontrol): Sunucu tarafında kütüphane belirlendikten sonra, daha kullanıcı dostu bir arayüzden kütüphaneye erişim ve parçaları oynatma amaçlı uygulama. Bu uygulamayı kullanmak şart değil. Biraz daha iyileştirilmiş görsel arayüz tercih edenler kullanabilir. Gerekirse, Desktop ve Client uygulamaları farklı bilgisayarlarda bulunabilir. Kontrol işlevi Roon veya HQPDcontrol (Android) gibi bir uygulama ile de sağlanabilir. PCM-DSD çevirimi, filtre, shaper seçenekleri için her seferinden HQPlayer 4 Desktop uygulamasından “seçenekler” menüsüne gitmek yerine, Client uygulamasından seçim yapmak mümkün.
  3. Network Audio Adapter (NAA): Müzik dosyasının işlenmesi, HQPlayer uygulaması tarafından gerçekleştirilir ve işlenen veriler daha sonra eşzamansız olarak ağ üzerinden DAC’ye arayüzlenen çok hafif bir ağ ses adaptörüne (NAA) aktarılır. Eşzamansız FIFO (First In First Out – Önce Giren Önce Çıkar), işleme ve ses üretimi arasında maksimum yalıtım sağlar. Ses işleme ve ses üretimi işlevlerinin birbirinden ayrıldığında, ses üretim işlevi, özel olarak atanmış, sinyal kirliliği nispeten az bir platform üzerinde gerçekleştirilebiliyor. Bu da ses üretiminde iyileşme sağlıyor. Ses işleme – özellikle PCM’den DSD’ye çevirim veya yukarı örnekleme gibi işlemlerde yüksek CPU gücü gerektiriyor. Ses üretimi (rendering) ise basit bir donanım üzerinde gerçekleştirilebilir.
Network Audio Adapter uygulaması

Network Audio Daemon yazılımı kullanılarak uygun bir bilgisayar (Linux, Mac, Windows) NAA olarak ayarlanabilir. Kendi deneyimimde, düşük güçlü işlemcili, Windows Server 2019 ve Audiophile Optimizer kurulu bir sistemin NAA görevini gayet iyi yapabildiğini gördüm. Bazı ürünlerde NAA işlevi, donanıma gömülü olarak geliyor. Örneğin; exaSound PlayPointDM/Sigma Streamer/Gamma Server, Sonore microRendu/- ultraRendu, SotM sMS-200/sMS-200ultra/sMS-1000SQ, T+A SDV 3100 HV ve Totaldac D1-Streamer.

Bu yazıyı hazırlarken, kontrol birimi olarak dizüstü bilgisayarımdaki HQPlayer Client uygulamasını kullanıyorum. Ağa Wi-Fi ile bağlıyım. HQPlayer 4 Desktop yüklü sunucu bilgisayar ayrı bir odada. Müzik dosyaları bu bilgisayarın yerel diskinde ve ağa bağlı NAS üzerinde. Çalma zincirinin sonunda ise exaSound e22 DAC’a (kendi özel ASIO sürücüsü ile) USB’den bağlı exaSound PlayPoint (Network Player) NAA olarak görev yapıyor. Sunucu bilgisayar, exaSound PlayPoint ve NAS kablo ile gigabit ethernet ağına bağlı.

Kaynak dokümanda çoğunlukla SDM (Sigma Delta Modulation) terimi kullanılıyor. Bunun DSD (Direct Stream Digital) ile eşdeğer olduğunu hatırlatırım. Burada “DSD ayarları”ndan bahsettiğimde “SDM ayarları” ile aynı şeyi anlatmak istiyorum.

DSD Kaynak Ayarları

DSD dosyalarını olduğu gibi geçirebilir ya da yukarı örnekleme ve filtreleme işlemleri uygulayabilirsiniz. Menüden “File>DSD Source Settings” ile erişebileceğiniz aşağıdaki ekranda, DirectSDM seçtiğinizde DSD dosyaları işleme tabi tutulmadan oynatılır.
DSD kayıtları biraz daha düşük yapıldığından +6dB kazanç uygulama seçeneği mevcut.

DSD’den PCM’ye Çevirim

Ekranın orta sağında yer alan “PCM Conversion” başlığı DSD’den PCM’e çevirim için algoritma seçimi için.
Soldaki PCM Noise Filter ise DSD’den PCM’e çevirimde kullanılacak ultrasonik filtreyi seçmek için.

DSD’den DSD’ye işleme

DSD-DSD çeviriminde üç çeşit Delta-Sigma seçeneği mevcut (IIR, FIR, CIR). Bunlar özellikle yüksek frekans ve faz karakterini etkiliyor.
Ses sinyalinin karakterine göre iki gürültü kesme (noise shaping) seçeneği mevcut. Örneğin üst frekans harmoniklerinin nispeten az olduğu piyano müziği için “narrow” (dar), daha yüksek üst frekans harmoniklerine sahip perküsyon ağırlıklı müzik için “wide” (geniş) seçilebilir.

Kanal Dengesi

Çok kanal desteğinden bahsetmiştim. Eğer çok kanallı bir DAC kullanıyorsanız (exaSound e38 gibi), her bir kanalın kazancını ayarlamak ve mesafeden dolayı gecikmesini telafi etmek mümkün. Unutmayalım ki bu işlemler orijinal sinyali değiştiriyor. Ev sineması sistemlerindeki DSP ayarları gibi – sadece biraz daha basit. İşin ilginci, “Direct SDM” modunda DSD bit-perfect olarak geçirilirken mesafe ayarı yapılabiliyor!

Convolution

Çok detaya girmeyeceğim; örneğin, Room EQ Wizard (REW) gibi bir uygulama ile oda-hoparlör karakteristiğini ölçtünüz. Çıktı dosyasını HQPlayer Convolution Engine içine yükleyerek daha doğrusal bir sinyal etmek mümkün. Bunu her kanal için bağımsız yapmak mümkün. Tabi eğer sayısal sinyal işleme konularına girmek isterseniz.

Matrix Processing

Çok kanallı bir kaydın (örn. 5.1)  stereo’ya (L – R) indirgenmesi mümkün. Hangi kanalın ne oranda sol veya sağ kanala gideceğini ayarlayabilirsiniz.

Convolution ve Matrix Processing bir arada kullanılamıyor. Bir anda sadece biri aktif olabilir.

Settings (Ayarlar)

Menüden “File>Settings” ile ulaşabileceğiniz ayarlar üç ana bölümden oluşuyor.

  1. Output Device Settings
  2. Input Device Settings
  3. Default Output Mode

“Output Device Settings” başlığı altında, kullanacağınız DAC veya NAA cihazını tanımlayabilirsiniz.

İlk resimde ASIO üzerinden exaSound e28 DAC bağlantısı gösteriliyor. Yani, HQPlayer 4 Desktop yüklü sunucu doğrudan USB ile exaSound e28 DAC’a bağlı.
Output Device Settings:
Backend: ASIO
Device: exaSound ASIO64 (8ch) (e28 DAC için kullandığım sürücünün ismi)
Eğer, MacOS konuşuyor olsaydık, “Backend: ALSA”, “Device: xCore USB Audio 2.0” gibi bir ayar olacaktı.
Burada, DAC’ın kanal sayısı, SDM Pack (DoP) seçeneği, Buffer ve DAC bit seçenekleri de ayarlanabiliyor.
Sunucu doğrudan DAC’a bağlandığı için “Input Device Settings” için bir tanımlama gerekmiyor.

İkinci resim, HQPlayer 4 Desktop sunucu – NAA (exaSound PlayPoint) – DAC (exaSound e22) konfigürasyonu.
Output Device Settings:
Backend: NetworkAudioAdapter
Device: exaSoundPP1 (NAA olarak kullandığım exaSound PlayPoint)
Input Device Settings:
Backend: ASIO
Device: exaSound ASIO64 (2ch) (e28 DAC için kullanılan sürücünün ismi. Bu örnekte sürücü PlayPoint üzerinde fabrikada yüklenmiş).

Default Output Mode: Bakın burası çok önemli 🙂 Giriş ne ise (PCM veya DSD) o mu çıkacak?, giriş ne olursa PCM’mi çıkacak? Yoksa giriş ne olursa olsun DSD’ye mi çevrilecek? İşte hepsi burada ayarlanıyor. Örneğin kullandığınız DAC, DSD desteklemiyorsa, buradan DSD-PCM çevirimini seçebilirsiniz.

PCM ayarları: PCM için kullanılacak filtreler, Dither ve yukarı örnekleme tavan değeri.
DSD ayarları: DSD yukarı örnekleme filtreleri, modülatör ve tavan bit hızı değeri.
Burada örnekleme ve bit hızı değerlerinin DAC’ın desteklediği değerleri aşmaması gerekli.

Filtreler ve Yukarı Örnekleme Seçenekleri

Neden sayısal seste filtreleme gerekiyor? Çünkü, yukarı örnekleme yapıldığında, yan ürün olarak asıl frekanstan daha yüksek frekanslarda istenmeyen sinyaller üretiliyor. Aşağı örnekleme yapıldığında ise asıl frekansın altında istenmeyen sinyaller üretiliyor. Bu istenmeyen sinyallerin filtrelenmesi lazım. Çünkü, bu istenmeyen sinyallerin duyulabilir etkileri olabilir, elektronik devrelere ve hoparlörlere zarar verebilir. Kedi ve köpeklerin bizlerin duymadığı bazı ultrasonik seslerden rahatsız olmaları gibi (ne örnek!).

Alçak Geçiren Filtre Frekans Yanıtı

Sayısaldan analoga çevrimde de, örnekleme frekansının yarısının üstünde (örn. 44.1kHz ile örnekleme yapıldıysa, 22.05kHz üstünde gibi…) benzer istenmeyen sinyaller görülür. Bunlar, analog “reconstruction” filtreleri yardımı ile temizlenir.

Alçak geçiren (low-pass) bir filtrenin işi, belirli bir frekansın altındaki frekansları geçirmek, üstündeki frekansları ise bloke etmektir. Dikey eksende sinyal gücü, yatay eksende frekansları göz önüne getirirsek, ideal olan, geçirilecek frekans bandı ile bloke edilecek bant arasında doksan derecelik bir basamak olması gerekir. Ancak, bugünün olanakları ile ideal bir filtre mümkün değil. Geçiş frekansının dikliği veya yumuşaklığı, sonraki frekansları nasıl bastırdığı, duyma bandındaki sese de bir şekilde etki ediyor. Kullanılan filtreler ve bunların sese etkileri çok çeşitli.

Her bir filtrenin detayı için HQPlayer Kullanım Rehberi’ne başvurmanızı tavsiye ederim. Yaklaşık beş A4 sayfa kaplayan tabloları burada özetlemek mümkün değil. Sadece bazı genel prensiplerden ve tavsiyelerden bahsedeceğim. Bu noktada HQ Player ile ilgili filtre jargonuna girelim.

  • Linear phase filter (doğru fazlı filtre): Bütün frekanslar aynı gecikme ile geçirilir.
  • Minimum phase filter (en az fazlı filtre): Bütün frekanslar mümkün olan en hızlı şekilde geçirilir. Yüksek frekanslar, düşük frekanslardan daha hızlı geçerler. Hesaplamada mevcut ve geçmiş frekansı dikkate alır.
  • Long/steep filter (uzun/dik filtre): Frekansları geçiren banttan geçirmeyen banta geçiş kısadır (bir merdiven gibi diktir)
  • Short/gentle filter (kısa/yumuşak filtre): Frekansları geçiren banttan geçirmeyen banta geçiş uzundur (hafif eğimlidir)
  • Pre-echo ve Post-echo: bunun analog dünyada da karşılığı var ama burada bahsedilen, sayısal filtrelerin doğasından kaynaklanan, sesin oluşmasından farklı zamanlarda duyulabilecek tortulardır. Örneğin, pre-echo, zil gibi vurmalı çalgı seslerinde en belirgindir.
  • 2s: 2 aşamalı yukarı örnekleme (CPU yükünü az tutarak yukarı örnekleme yapmak için)

“Konser salonu klasik müzik performansları”: FIR
“Ani çıkışlar içeren Jazz/blues gibi türler, canlı ve akustik kayıtlar”: “asymFIR
“Pop/rock/electronic gibi ani çıkışlar içeren, vurmalı çalgıların bol olduğu stüdyo kayıtları”: minPhaseFIR”
“Daha iyi sahne”: poly-sinc-lp
“Daha iyi ani geçişler (transient)”: poly -sinc-mp
“MQA”: poly-sinc-mpa-lp ve poly-sinc-mpa-mp
“daha az CPU gücü ile agresif yukarı örnekleme”: -2s içeren filtreler

Gürültü Biçimlendirme/Dither/Modülatör Seçenekleri

Dither, niceleme (quantization) hatasının etkisini azaltmak ve rastgele hale getirmek için kullanılan, kasıtlı olarak uygulanan bir gürültü şeklidir. Gürültü biçimlendirme ise, sayısal sinyalin nicelendirilmesi veya bit derinliğinin azaltılması işleminin bir parçası olarak, genellikle dithering ile birlikte sayısal ses işlemlerinde kullanılan bir tekniktir. Amacı, ortaya çıkan sinyalin görünür sinyal-gürültü oranını arttırmaktır. HQPlayer uygulamasında – özel test durumları haricinde – mutlaka bir seçim yapılması tavsiye edilir. Aksi durumda, cihazlarınıza istenmeyen ultrasonik sinyaller gidecektir.

Genel kullanım için en azından TPDF seçeneği tavsiye ediliyor. PCM örnekleme frekansına göre NS4, NS9 veya DSD söz konusu ise DSD5, DSD7 gibi çeşitli seçenekler mümkün.

Detaya girmediğim halde ne kadar fazla ayar seçeneği olduğunu görmüşsünüzdür. Bundan sonrası, HQPlayer deneme sürümünü indirerek kişisel bir keşif yolculuğu yapmaya bakıyor. Deneme sürümünün, lisanslı sürümden farkı sadece otuz dakika çalışıp kapanarak sinir bozması.

Kaynaklar

https://www.signalyst.com/consumer.html sitesinden HQPlayer Kullanım Rehberi (deneme yazılımı ile birlikte indirebilirsiniz)

Quick Start Guide

HQPlayer resampling filter setup guide for ordinary person

Archimango blogundaki ölçümler

Fazlar ile ilgili eğitici bir video

One Comment:

  1. Pingback: Wtfplay Project – Nereden Nereye? - PC-Audiophile.com

Yorum yapın:

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.