Egy "üzlet", ha beindul....
Az elmúlt napokban egy régi ötletből végre jól működő kód lett.
Belevágtam egy saját, minimalista, bit-perfect, memóriából működő, terminálban futó zenelejátszó fejlesztésébe macOS-re — a neve egyelőre `bpplay`.
A filozófia egyszerű, és tulajdonképpen a My Reel Club-os gondolkodás digitális kiterjesztése: a lehető legrövidebb, determinisztikus jelút. Semmi szoftveres hangerő, semmi dither, semmi fölösleges konverzió. A teljes szám betöltődik a memóriába, és onnan megy egyenesen a DAC-ra — lejátszás közben a gép gyakorlatilag nem nyúl semmihez. Ettől puritánabb nem is lehetne. Még az MQA fájloknál a DAC kijelzőjén is megjelenik az MQA dekódolás jelzés és megtörténik a dekódolás, pedig egy sornyi MQA dekódoló kódot nem írtam. Mondjuk nem is kell: ha bitre pontosan, érintetlenül visszük a jelet a konverterig, a többit a DAC elvégzi.
Az architektúra ráadásul eleve nyitott: a jelút csatornaszám független, így idővel nem csak sztereóban, hanem több csatornán is működhet — egy nagy felbontású kvadrofon Kishonti István felvétel vagy DSD surround mester ugyanazon a determinisztikus úton mehetne ki a sokcsatornás DAC-ra.
Hol tartok most, mi az ami már megy:
- Bit-perfect lejátszás valódi DAC-okon (XMOS, Amanero interfészekkel tesztelve), automatikus, kattanásmentes mintavétel-váltással
- WAV (16/24/32 bit, integer és float), FLAC, és DSD — natívan, a DAC kijelzőjén a 2,8 MHz DSD-vel igazolva
- Akár 32 bites float és integer master file-ok lejátszása is, például a nagy felbontású a Merging Anubis/Pyramix professzionális rendszerben készülő My Reel Club® felvételekhez
- Vegyes felbontású lejátszási listák: minden szám a saját natív formátumában, tiszta váltással a határokon
Gapless, MQA-felismerés, kétnyelvű (magyar/angol) kezelőfelület, billentyűvezérlés
Ahogy a projekt formálódott, rájöttem, hogy valójában két különböző embernek szól (az egyik referenciát keres, ahol tudja mi történik lejátszás közben és csak néha kell használnia a meglévő megoldások mellett, a másik ezt akarhatja fő lejátszó eszköznek, extra hálózati és streaming funkcionalitással, nem feladva az ismert és puritán jelútvonal hangzásbéli előnyeit)— ezért két irányba viszem tovább:
bpplay (Core) — a puritán változat. Helyi fájlok, semmi fölösleg, maximális átláthatóság. Aki a legrövidebb jelutat akarja és kész, annak ez a végállomás. Tervben még egy kényelmi apróság: egész mappát vagy fájlokat egyszerűen ráhúzni az ikonra, és szól — cím-gépelés és adatbázis kezelési funkciók nélkül. Ezek a funkciók talán még ma, de mindenképpen még a héten megvalósulnak és elindul a tesztelésük.
bpplay-net — a hálózatra nyitott, bővebb változat. Ugyanaz a bit-perfect mag, köré építve:
- Grafikus felület és Siri-vezérlés
- Böngészős/telefonos távirányítás — a gép a rackben, a vezérlés a kanapéról
- UPnP/DLNA támogatás — a több millió meglévő hálózati eszköz és szerver világához kapcsolódva
- Streaming (Qobuz) és felhő/NAS lejátszás, bit-perfect módon
- és persze majd a folyamat legvégén: Linux-verzió egy csendes, dedikált géphez, de már csak a bpplay-net funkcionalitásával.
A lényeg, amihez egyik változatban sem nyúlok:
a jelút sértetlensége, és ismertsége.
A net-verzió bármilyen okosságot tehet a zene köré (könyvtár, keresés, távvezérlés), de a zenei jelhez nem ér hozzá — az ugyanúgy bitre pontosan megy a DAC-ra, mint a puritán Core-ban.
A
bpplay-net fontos funkcionalitása lesz a Google Drive, Amazon S3, Dropbox, NAS (WebDAV) felhős tárakról történő közvetlen memóriába töltéses lejátszás is, helyi mentés, diszkre másolás nélkül.
Az alap
bpplay (Core) fejelsztése kb egy hetet vett igénybe és várhatóan a hétvégén be is fejezem.
A
bpplay-net fejlesztése, tesztelése akár hetekig is eltarthat majd, attól függően, hogy időm hogyan engedi a vele való foglalkozást. És majd ezt követően jön a Linuxos verzió létrehozása.
Valószínűleg még a héten megírom a fejlesztés első fázisának a történetét egy hosszabb blog posztban.
A C-ben létrehozott kódot alapvetően a Claude Opus 4.8 segítségével írtam, néhány feladatot dedikálva a Grok Expert verziójának és a GLM 5.2 LLM-nek.
Nem tervezem, hogy a
bpplay alkalmazásból kereskedelmi jellegű termék legyen, csak a magam mulatságára és tanulságára fogtam bele, azért hogy legyen egy olyan lejátszó alkalmazásom, amiről pontosan tudom, hogy mit csinál lejátszás közben.