kaef2 írta: ↑2026.06.23., kedd 13:37
juliush írta: ↑2026.06.23., kedd 13:12
Valójában amit javasoltam az, hogy a bpplay tekintetében a "forrás" ne korlátozódjék az adathordozón/tárolón levő bitsorozat tökéletes másolatára, lehessen a forrás már transzformált jelsorozat is.
A Feri logikájának a lényege, hogy az adatforrás információ tartalma módosulatlanul juthasson el a DAC-hoz, és ez nem sérülne, csak a "forrás" definíciója bővül.
Így azok, akik a DAC-juk hangjához ilyen előfeldolgozást követően szoktak hozzá, mert eddig így tetszett, mint nekem a Laiv, a példának okáért, kipróbálhatják a bpplayt anélkül, hogy a szeretett minőségről le kellene mondaniuk, és a megszokott hangzáshoz viszonyítva vethetnék össze az alternatív útvonalak kínálta előnyöket/hátrányokat.
Persze elméletileg megoldható a kérdés az állomány előzetes offline átkódolásával is, de a HQPlayer nem támogatja, ha jól tudom.
Elnézést, ha túlfeszítettem a húrt!
Amikor kész a bpplay linuxos verziója, akkor lehet, hogy nekiállok egy offline konvertert csinálni. Pont azért, hogy a konverzió offline, a lehető legjobb minőségben történjen és segítse a "bithelyes" lejátszást. Ha valakinek fontos a DAC-hoz igazítás.
Ez a konverter tervezett funkcionalitása:
Szűrőtervezés
- Ablakozott FIR szűrők:
- Kaiser ablak (paraméterezhető β, >200 dB csillapítás)
- Dolph‑Chebyshev ablak (egyenletes zárósávi csillapítás)
- Ultraszférikus ablak (extrém éles átmenet)
Fázisvariánsok:
- Lineáris fázis (szimmetrikus FIR)
- Minimum fázis (apodizáló, cepstrum módszerrel)
- Köztes fázis (opcionális, pl. 50% lineáris)
- Szűrőhossz: tetszőleges, akár több tízmillió együttható
Többfokozatú (kaszkád) tervezés: automatikus felbontás interpolációs/decimáló lépcsőkre
Polyphase FIR átmintavételező motor
- Tetszőleges racionális arány (L/M) támogatása
- Extrém pontosság: duplapontos (64-bit) számítás, akár 80/128 bites kiterjesztés
- Időkésleltetés precíz kezelése (lineáris fázis esetén automatikus kompenzáció)
- Minimál fázisú szűrők támogatása (késleltetés nélküli mód)
- FFT alapú konvolúció opció (ultra hosszú szűrőkhöz, overlap‑save)
- Többszálúsításra előkészítve (OpenMP)
Dither és zajformálás
- TPDF dither (2 LSB csúcs-csúcs)
Zajformálók:
- Shibata (SoX stílusú)
- Lipshitz
- Egyedi (custom) tetszőleges együtthatókkal (akár 9. rendig)
- Pszichoakusztikus (Fletcher‑Munson) zajformálás
Bitmélységek: 16, 24 bit (tovább bővíthető)
In‑place feldolgozás, duplapontos kimenet
Szigma‑delta modulátor PCM→DSD
- Rendek: 5, 7, 9, 11, 13, 15 (páratlan)
- Struktúra: CRFB (Cascaded Resonator Feedback) integrátorokkal
- Klippelésvédelem a stabilitásért
Kimenet: DSD bitfolyam (LSB first csomagolás)
Felhasználás: akár 64×, 128×, 256× DSD előállítása
DSD→PCM visszaalakítás
- Polyphase decimálás extrém éles szűrőkkel
- DSD bitfolyam → multi‑bit átalakítás mozgóátlag előszűréssel
Fájlformátumok
Bemenet: WAV, FLAC (16/24/32 bit, float)
Kimenet: WAV, FLAC, DSF (DSD fájl)
DSF író/olvasó Pythonban, teljes fejléc kezeléssel
Mérések és validáció (AES17 / IEC 61606)
- THD+N (szinusz sweep, A-súlyozással, sávszűréssel)
- IMD SMPTE (60 Hz + 7 kHz)
- IMD CCIF (19 kHz + 20 kHz)
- Zajszint (A-súlyozott, dBFS)
- Frekvenciaválasz (sweep alapú, amplitúdó és fázis)
- Impulzusválasz (pre‑ringing, post‑ringing analízis)
- Aliasing / imaging spektrumanalízis (különbségi jel spektruma)
- Szűrő együtthatók validációja (passband ripple, stopband attenuation)
- Bit‑pontosság ellenőrzése
- Kereszt-wavelet teljesítményspektrum
- Wavelet koherencia és fáziseltérés
Eredeti vs. konvertált fájlok közvetlen összehasonlítása:
- RMS hiba (abszolút és relatív)
- Csúcs hiba
- Korrelációs együttható
- Frekvenciamenet‑eltérés
- Különbségi jel hullámformája
- Spektrum overlay
Jelentéskészítés
Automatikus PDF riport (matplotlib + reportlab)
Tartalmazhatja:
- THD+N sweep grafikon
- Frekvenciamenet
- Impulzus viselkedés
- Wavelet skalogramok és koherencia
- Összehasonlító metrikák táblázata
- Batch tesztelés több fájlra, CSV eredmény export
Parancssori és integrációs lehetőségek
- CLI vezérlés Pythonból (hqconv.py)
- Szűrőtervező CLI (filter_design.py)
- Összehasonlító CLI (compare_cli.py)
- Mérő CLI (measure_cli.py)
- C könyvtár (libhqconv.so) ctypes interfésszel, bármilyen Python/C projektbe ágyazható
Extrém minőségű opciók (hosszú render idő!)
- Kaszkád többfokozatú átalakítás (akár 100 MHz köztes frekvencia)
- FFT alapú nulla‑fázisú szűrés (forward‑backward)
- Extrém lebegőpontos számítások (long double, __float128)
- Modulátorok magasabb rendjei (stabilitás optimalizálással)
- Egyedi zajformáló profilok (Fletcher‑Munson görbe)