Urgent.News

the world's headlines, one feed

Tech

Modder turns Steam Controller trackpad haptics into stereo speakers with custom HID tool — Wired connection transmits 16-bit audio that sounds surprisingly full

A modder has figured out how to send an audio stream to the Steam Controller's haptic motors in order to make them play pretty much anything. While the wireless connection over the puck is limited, audio quality over a USB cable is genuinely impressive for a device with no speakers.

Modder turns Steam Controller trackpad haptics into stereo speakers with custom HID tool — Wired connection transmits 16-bit audio that sounds surprisingly full

Modder Pixel1011 has developed a custom HID tool called Steam Haptics Player to transform the Steam Controller's haptic motors into stereo speakers. The Steam Controller, Valve's second-gen model, has gained popularity among the community due to Valve's open approach to hardware. Modders have already found creative uses for the haptic motors, including moving the controller across a desk and automatic charging.

The Steam Haptics Player takes an audio file, processes it through FFmpeg, and sends the resulting PCM stream directly to the controller's motors. This bypasses high-level software, allowing for the transmission of 16-bit audio over the wired connection. However, due to the limitations of the puck's radio signal, wireless audio quality suffers from compression, crackling, and popping.

Despite these issues, the 16-bit audio still produces a surprisingly loud and balanced sound that can deceive listeners. Pixel1011's creation can be used with any audio file in any format by downloading the GitHub archive, installing FFmpeg, and running the program through a PowerShell window.

Written by urgent.news from Tom's Hardware's reporting — not their text. Machine-written; read the original for the full account.

This story

This is one outlet's version. Read the fullest account.

Read the original at tomshardware.com →

More in Tech

Why Vite Asked Me to Choose Between Oxlint and ESLint

While initializing a new Vite project ( npx create-vite ), I hit an interactive CLI prompt that paused my standard workflow: ◆ Which linter to use?

  • Vite prompts user to choose between Oxlint and ESLint during project creation.
  • Oxlint, a Rust-based linter, offers faster execution and reduced startup overhead.
  • ESLint has a mature plugin ecosystem but runs on Node.js/JavaScript.

How We Solved 360 Video Streaming & Real-Time Uploading for iOS Devices

When building real-time media applications—especially in high-stakes environments like remote exam proctoring—supporting mobile devices comes with a unique set of technical hurdles.

  • Dynamic wildcard subdomains mapped to production PFX certificate in memory for iOS TLS compatibility
  • Sequence-aware buffering maintained video stream order during network fluctuations
  • In-memory buffer decoding piped video chunks directly to cloud storage, eliminating disk writes

The beginning of my journey

I was interested in cybersecurity (mainly offensive) for a long time but I had no idea where to start. I remember finding a few apps on my phone and them being so superficial that I temporarily…

  • Journey into cybersecurity began with curiosity about offensive side
  • Ethical hacking concept sparked interest after discovering TryHackMe
  • Continued learning through HackTheBox while exploring game development and bioinformatics

What Should You Send a Rive Animator Before Starting a Project?

What Should You Send a Rive Animator Before Starting a Project? You found a Rive animator. You like their work, you have a project in mind, and you are ready to ask for a quote.

  • Provide Figma file or direct link to product for visualization
  • Share original vector assets (SVG/Figma) for editable layers
  • List specific animation states (Idle, Wave, Success, etc.)

EffCSS hydration: server work, client trust, zero waste

Currently the CSS-in-JS ecosystem is split into two camps: Runtime CSS-in-JS (Emotion, styled-components) keeps JS on the client for full dynamism.

  • EffCSS separates logical names from CSS selectors, decoupling them from CSS strings.
  • Decoupling allows independent serialization and storage of styles and metadata.
  • Enables efficient server-side rendering and client-side hydration with dynamic styles.