Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions 1209/4112/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
layout: pid
title: MacVisor USB Audio
owner: scaleninja
license: MIT
site: https://github.com/scaleninja/macvisor-usb-audio
source: https://github.com/scaleninja/macvisor-usb-audio
---
A software-defined USB Audio Class 1.0 device: a stereo speaker and a stereo microphone at 48 kHz, 16-bit. MacVisor presents it to Windows virtual machines over the USB/IP protocol, and Windows binds its built-in USB Audio driver (usbaudio.sys). So Windows on Arm VMs get sound with Microsoft's own driver, with no third-party or test-signed audio driver.

There is no physical hardware. The device's descriptors, control requests and isochronous streaming are implemented in Swift and run on the Mac, behind a USB/IP server; the guest attaches it with a USB/IP client. All of the device code is in the source repository under the MIT licence.

Why one shared PID rather than one per user: the same device is presented to every virtual machine on every Mac running MacVisor, and Windows keys per-device state (the default audio device, volume, and its driver binding) to the VID/PID. A fixed, properly assigned ID keeps that stable across VMs and releases, without borrowing another vendor's ID.
6 changes: 6 additions & 0 deletions org/scaleninja/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
layout: org
title: ScaleNinja Software
site: https://scaleninja.com/
---
ScaleNinja Software makes MacVisor, a virtual machine manager for macOS on Apple silicon. Its open-source components are published at https://github.com/scaleninja.
Loading