Beépített hangszóró nélkül is megszólaltatja a legösszetettebb dalokat a Valve legendás játékvezérlője egy új nyílt forráskódú szoftvernek köszönhetően. A Pixel1011 néven ismert modder által kifejlesztett Steam Haptics Player közvetlenül a két érintőfelület alatt található lineáris akkumulátorokat utasítja rezgésre, így azok fizikai membránként működve alakítják hanghullámokká a beérkező jeleket. A vezetékes USB-kapcsolaton átküldött 16 bites audiojelek meglepően telt, kiegyensúlyozott hangzást produkálnak.
A közösség az utóbbi években számos kreatív projektre használta már a hardvert, a számítógépes asztalon guruló önálló eszközöktől kezdve a robotporszívó-szerű automatikus töltőállomásokig. A mostani áttörés azonban nem a fizikai mozgásra, hanem a precíziós hangkeltésre fókuszál. A fejlesztő sikeresen megkerülte a hagyományos illesztőprogramokat, hogy közvetlen hozzáférést kapjon a vezérlő mikrokontrolleréhez.
A rejtett Wilhelm-sikolytól az önálló audiolejátszásig
A Steam Controller eredeti felépítésében sosem szerepelt hagyományos dinamikus hangszóró. A Valve mérnökei két nagypontosságú haptikus akkumulátort helyeztek a hüvelykujjal kezelhető trackpadek alá, amelyek elsődleges feladata a tapintási visszacsatolás biztosítása volt. Mivel a fizikai rezgések elvi alapon megegyeznek a hanghullámokkal, a gyártó korábban egy apró meglepetést is elrejtett a rendszerszoftverben: a kontroller bizonyos magasságból történő leejtésekor a haptikus motorok a híres Wilhelm-sikolyt szólaltatták meg.
Ez a gyári funkció adta a kiindulópontot az új kísérlethez. A fejlesztő felismerte, hogy ha a vezérlő beépített szoftvere képes előre rögzített hangmintákat megszólaltatni a rezgőmotorokon, akkor megfelelő technikai megközelítéssel tetszőleges audiofájl is átvihető rá. Ehhez viszont vissza kellett fejteni a hardver és a számítógép közötti alacsonyszintű kommunikációs protokollt.
Mélyszintű HID-parancsok és közvetlen nyers adatfolyam
A folyamat kulcsa a Human Interface Device (HID) protokoll célzott alkalmazása. A Steam Haptics Player a HIDAPI könyvtáron keresztül közvetlen Feature lekérdezéseket küld az eszköznek. Ez az eljárás teljesen elkerüli a megszokott Steam Input szoftverréteget, amely normál esetben feldolgozná vagy megszűrné a beviteli jeleket.
A szoftveres műveletsor a következő lépésekből áll:
- Formátumkonverzió: Az elindított tetszőleges audiofájlt az FFmpeg keretrendszer valós időben mintavételezi át.
- Szeletelés: A feldolgozott anyagot a program PCM (Pulse Code Modulation) adatfolyam-csomagokra bontja.
- Adatküldés: A nyers adatcsomagok közvetlenül a kontroller saját mikrokontrolleréhez futnak be.
- Akusztikus átalakítás: A hardver belső architektúrája a kapott bináris adatokat azonnal átadja a két lineáris akkumulátornak, amelyek a megfelelő frekvencián rezegve kiadják a sztereó hangot.
A tesztek során a fejlesztő a Portal 2 ikonikus záródalát, a „Want You Gone” című zeneszámot játszotta le a periférián. Az énhang és az elektronikus kíséret egyaránt tiszta, jól felismerhető minőségben szólalt meg.
Asztallap mint rezonanciaüreg és a vezeték nélküli sávszélesség korlátai
A hangminőség mértéke jelentősen függ a csatlakozási módtól és a fizikai elhelyezéstől. Vezetékes USB-kapcsolat esetén a rendszer 16 bites, 8 kHz-es PCM adatfolyamot képes átvinni. Ebben a módban a haptikus motorok nemcsak a magas és középső tartományokat szólaltatják meg, hanem meglepő mélyhangokat is produkálnak. Ha a készüléket egy kemény fafelületre vagy asztalra helyezik, a bútorlap rezonációs testként működik, ami tovább felerősíti a keltett akusztikus hullámokat.
Ezzel szemben a vezeték nélküli USB-puck csatlakozás komoly korlátokba ütközik. A rádiós vevőt eredetileg kizárólag a gombnyomások és a pozícióadatok minimális csomagméretű átvitelére tervezték. A szűkös sávszélesség miatt vezeték nélkül csak 8 bites, 8 kHz-es μ-law tömörítés használható. Ez a gyakorlatban észrevehető sercegést, pattanásokat és alkalmankénti kimaradásokat eredményez, mivel a rádiós csatorna folyamatosan a teljesítőképessége határán üzemel.
Steam Controller haptikus rendszere és az audiomódok
| Paraméter | Vezetékes USB mód | Vezeték nélküli Puck mód |
|---|---|---|
| Audio felbontás | 16-bit PCM | 8-bit μ-law companding |
| Mintavételezési frekvencia | 8 kHz | 8 kHz |
| Akusztikus teljesítmény | Stabil, telt sztereó hangzás mélyhangokkal | Zajos, sercegő, sávszélesség-hiányos átvitel |
| Rendszerterhelés | Folyamatos adatáramlás veszteség nélkül | Gyakori csomagvesztés és audio-kimaradás |
Kockázatok, garanciavesztés és a közösségi modding jövője
A projekt nyilvánosan elérhetővé vált a GitHub platformon, így bárki kipróbálhatja saját eszközén Windows vagy Linux környezetben. A futtatáshoz a letöltött csomag mellett csupán az FFmpeg jelenlétére és egy PowerShell vagy terminál ablakra van szükség. Ugyanakkor a fejlesztő nyomatékosan felhívja a figyelmet a lehetséges kockázatokra.
Mivel a megoldás nem dokumentált, nem hivatalos HID-parancsokkal közvetlenül terheli a lineáris akkumulátorokat, a hosszan tartó használat hőt termelhet és felgyorsíthatja a haptikus elemek mechanikai elhasználódását. A Valve hivatalosan nem támogatja ezt a működési módot. A kísérlet mindenesetre újabb bizonyítéka annak, hogy a nyitott hardverarchitektúrák és a közösségi fejlesztések milyen meglepő funkciókat képesek előcsalogatni a látszólag már lezárt életciklusú eszközökből.