Steam Controller второго поколения получил неожиданный мод: энтузиаст Pixel1011 заставил хаптику трекпадов работать как стереодинамики. Его инструмент Steam Haptics Player передаёт на контроллер аудио через HID-команды, а по проводу тянет 16-битный PCM с частотой 8 кГц.

Звучит как типичная инженерная забава на вечер, но тут есть занятная техника. В Steam Controller нет штатного динамика. Под трекпадами стоят линейные актуаторы, которые обычно отвечают за тактильную отдачу. Pixel1011 подал на них аудиосигнал напрямую, в обход Steam Input.

Как вибромоторы стали динамиками

Изображение к статье: Steam Controller научили играть музыку через вибромоторы

Steam Haptics Player обращается к контроллеру через низкоуровневые команды HID с помощью HIDAPI, поэтому звук идёт не через обычный аудиотракт ПК. Программа берёт аудиофайл, перегоняет его через FFmpeg, режет PCM-поток на небольшие фрагменты и отправляет эти пакеты прошивке контроллера.

Дальше всё упирается в физику. Звук — это вибрации, а хаптические актуаторы как раз умеют быстро вибрировать. Контроллер получает сырые данные и заставляет моторы колебаться так, чтобы пользователь слышал музыку.

Продолжение после рекламы

Valve сама когда-то играла с этой идеей. В контроллере нашли пасхалку: при падении с определённой высоты он мог случайно воспроизвести знаменитый крик Вильгельма. Новый проект делает похожий трюк не разово, а с любым аудиофайлом.

Изображение к статье: Steam Controller научили играть музыку через вибромоторы

Провод звучит заметно лучше радиоканала

Главное ограничение проекта — пропускная способность канала, потому что Steam Controller не проектировали как беспроводную колонку. По проводу Pixel1011 передаёт 16-битный PCM 8 кГц, а через беспроводной модуль приходится ужиматься до 8-битного μ-law 8 кГц.

  • Проводное подключение: 16 бит, 8 кГц, PCM
  • Беспроводное подключение: 8 бит, 8 кГц, μ-law
  • Обработка файлов: перекодирование через FFmpeg перед отправкой на контроллер
Изображение к статье: Steam Controller научили играть музыку через вибромоторы

Проводной режим звучит неожиданно полно для пары хаптических моторов. В демонстрации Pixel1011 включил Want You Gone из финальных титров Portal 2. По записи слышно не только середину, но и ощутимый низ, хотя контроллер лежит на полотенце на плоской поверхности.

С беспроводным режимом всё грубее. Звук трещит, щёлкает и местами обрывается. Pixel1011 использует μ-law-компрессию: она даёт динамический диапазон, близкий к 14-битному аудио, но хранит поток в 8-битном размере. Даже так беспроводной модуль не всегда справляется.

Проект выглядит особенно забавно на фоне открытого подхода Valve к железу. Сообщество уже заставляло хаптические моторы двигать контроллер по столу и даже экспериментировало с автоматической зарядкой. Теперь те же узлы превратили в импровизированную акустику.

Steam Haptics Player уже выложен на GitHub для Steam Controller второго поколения. Pixel1011 не приводит замеры влияния на батарею, поэтому автономность при воспроизведении музыки пока остаётся неизвестной.

Рейтинг: 0 / 5. Оценок: 0

Продолжение после рекламы

Рекомендуем почитать

Оставьте комментарий

Перед оставлением комментария, пожалуйста, ознакомьтесь с правилами комментирования.