Skip to content

Add PID 1209:A7D0 for GpuVM Audio - #1335

Open
alenj0x1 wants to merge 2 commits into
pidcodes:masterfrom
alenj0x1:gpuvm-audio
Open

alenj0x1 wants to merge 2 commits into
pidcodes:masterfrom
alenj0x1:gpuvm-audio

Conversation

@alenj0x1

Copy link
Copy Markdown

Requests 1209:A7D0 for GpuVM Audio, a USB Audio Class 1 speaker implemented in software by GpuVM (MIT, LICENSE in the repo root).

  • Source of the device: guest/audio/UsbAudioServer.cs — device and configuration descriptors, the USB/IP 1.1.1 server and the isochronous pacing.
  • What it is: GpuVM creates Hyper-V virtual machines that use the host GPU. Those VMs have no sound card, so GpuVM serves this speaker over USB/IP inside the VM and usbip-win2 attaches it; Windows drives it with its built-in usbaudio.sys, and the VM's sound is streamed with Sunshine.
  • Why a PID of its own rather than letting users pick one: the device is created automatically on every user's VM by the same software, so every installation needs the same, stable VID:PID (it is what Windows' Device Manager shows and what GpuVM looks for). It currently uses the 1209:0001 test PID, which isn't meant for distribution.

No custom hardware: software only, as allowed with justification.

alenj0x1 added a commit to alenj0x1/gpuvm that referenced this pull request Oct 28, 2026
… audio

Guest:
- UsbAudioServer.cs: VID:PID 1209:A7D0, requested to pid.codes (pidcodes/pidcodes.github.com#1335), instead of the 1209:0001 test ID, which isn't meant for distribution.
- The server counts underruns (the queue ran dry while audio kept coming) and how much audio is queued when a transfer arrives, and writes them to status.json; SET_INTERFACE marks the start or end of playback so pauses are not counted.
- Install-GpuVMAudio detaches the speaker and removes the devices and outputs left by the previous server before attaching the new one; otherwise Windows numbers the new output ("2- GpuVM Audio").
- Remove-GpuVMVBCable uninstalls VB-CABLE (driver, devices and package folder) once the speaker works, only when GpuVM installed it (C:\GpuVM\VB-CABLE exists).

Tests and docs:
- Test that the server uses the new PID.
- Streaming (English and Spanish): the speaker's USB ID, its status file and the VB-CABLE removal; CHANGELOG entries under Unreleased.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant