Open-source macOS VM hypervisor with per-VM audio device routing. Route each VM's audio to a different host device -- something no existing macOS virtualizer supports.
macOS Guest VM macOS Host
+------------------------+ +------------------------+
| App -> CoreAudio | | VsockAudioBridge |
| -> HAL plugin | TCP | -> AudioRouter |
| -> shared memory | ----------> | -> AudioOutputUnit |
| -> VortexAudioDaemon | | -> BlackHole / USB / |
+------------------------+ | any CoreAudio dev |
+------------------------+
Guest audio bypasses Virtualization.framework entirely. A HAL AudioServerPlugin captures PCM in a lock-free ring buffer, a daemon sends it over TCP to the host, and the host routes it to a specific CoreAudio device per VM.
git clone https://github.com/lovon-spec/Vortex.git && cd Vortex
make # Build + sign + guest tools
./sign-and-run.sh --gui # Launch GUICreate a VM from the GUI or CLI:
./sign-and-run.sh create-vm --name "Dev VM" --cpu 4 --memory 8192 --disk 64
./sign-and-run.sh install-macos --vm <uuid> --ipsw /path/to/macOS.ipswInstall GuestTools/build/VortexGuestTools.pkg inside the VM, select "Vortex Audio" as the sound device, and choose your target host device in Audio Settings.
- macOS 14+ (Sonoma), Apple Silicon (M1+), physical hardware (no nested virt)
- BlackHole or similar virtual audio device for routing
- Per-VM audio output/input to any host CoreAudio device
- Host defaults never touched
- Native SwiftUI GUI with dark theme, VM library, display windows
- Audio device selection with persistence and live hot-swap
- Device hot-plug detection and recovery
- Guest tools: HAL AudioServerPlugin + LaunchDaemon (
.pkg) - CLI for headless operation
- Latency instrumentation
- Sample rate negotiation and format conversion
| Module | Purpose |
|---|---|
| VortexCore | Models, protocols, errors, logging |
| VortexAudio | Per-VM CoreAudio routing, AudioQueue capture, ring buffers |
| VortexVZ | Virtualization.framework VM manager, TCP audio bridge |
| VortexGUI | SwiftUI app: library, display, audio settings |
| VortexCLI | Headless CLI |
| VortexHV | Hypervisor.framework VMM (Linux/Windows guests) |
| VortexDevices | Virtio device emulation |
| GuestTools/ | HAL AudioServerPlugin (C) + audio daemon (Swift) |
make # Debug build + sign + guest tools
make release # Optimized build
make dmg # Distribution DMG
make clean # Clean all- 2-VM limit: Apple Silicon kernel restriction on concurrent macOS guests
- Guest tools: manual install required (
.pkgcopied into guest) - TCC: mic access requires launching from
.appbundle, not bare binary - Latency: ~5-15ms one-way via TCP bridge (adequate for DAW capture, not real-time monitoring)
- macOS Guest Audio Analysis -- virtio-snd driver discovery
- macOS Boot Analysis -- boot chain feasibility
- vmapple Device Model -- Apple's private VM platform
MIT