Skip to content

About

Music, mic, and local listening for X Spaces hosts and speakers. A compact floating audio mixer. macOS developer preview.

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

9 Commits

Folders and files

Repository files navigation

Spaces Mixer

Your Space. Your sound.

Built by @brotherxyz_ on X.

Music, microphone, and local listening — in one floating mixer.

macOS developer preview · Bun + TypeScript + Swift · MIT licensed

Get started · Walkthrough · FAQ · Roadmap

Spaces Mixer on macOS: music, microphone and local-output controls, with the mix stopped and both sources muted.

The actual Mac app. Mix stopped; sources muted.

Built for X Spaces hosts, co-hosts, and approved speakers who want music and voice controls within reach. Choose a music app, pick your mic and speakers or headphones, and manage the mix without leaving your conversation.

  • Music on your terms. Capture one app, adjust its level, and keep voice separate.
  • Devices you already use. Select your microphone and local output directly from the mixer.
  • Deliberate sharing. Start with sources muted; stop audio with one clearly labeled action.
  • A compact desktop companion. Drag, resize, and keep the panel above your other windows.

Developer preview: current code runs on macOS and requires OBS, BlackHole and developer tools. Windows support and signed installers are planned. This app does not create or join an X Space. Review the verification and security limits before testing.

Start here

What it does today

Control What changes
Music Level and mute for one selected app sent to the mix
Mic Choose a physical microphone; adjust its level and mute in the mix
Local output Choose speakers/headphones and adjust the Mac’s default output volume; local listening only
Music source picker Retargets a CoreAudio process tap to another app
Setup Selects a microphone and builds the Spaces Mixer scene collection in OBS

The Mic and Local Output strip labels are device selectors. Stop sharing before changing the mic; it stays muted until you start sharing and deliberately unmute it. Local Output changes the Mac’s default listening device and uses that device’s existing volume. Display/digital outputs without software volume show “Use device volume.” See device selection.

It does not mix several independent music apps, route arbitrary device channels, or supply an X login/integration. Those are potential future features, not controls that exist today.

Music app → CoreAudio process tap → BlackHole 16ch ─┐
                                                 ├→ OBS → BlackHole 2ch → browser microphone
Physical microphone ─────────────────────────────┘

The recorded working configuration uses Firefox for music and Brave for the Space. Keep music and the Space in separate browsers: echo cancellation can remove a browser's own playback. Capture targets an app's processes, including relevant child processes, rather than OBS's per-app capture; other music apps can be selected, but compatibility must be verified per app.

Who this is for: people already on the speaker panel as a host, co-host, or approved speaker. Setup assumes that speaking role is established. On your Mac, confirm that the client you use for the Space can select BlackHole 2ch as its microphone; that device-routing check is part of setup and release testing.

Windows and Mac download goal

The intended setup is download → install → choose music, mic and headphones → test → start sharing. End users should not need Terminal, Git, Bun, or Swift tools. A guided installer handles missing audio components with explicit OS approval where required.

Windows support needs a platform-specific capture/device backend and desktop shell; it is not available in the current Mac code. Signed Windows and Mac packages and guided setup are planned in the installer specification.

Build from source

Read Getting started first. Source builds require macOS 14.2+ APIs, compatible OBS, both BlackHole drivers, Bun, and Swift command-line tools. The actual baseline is macOS 15.7.4 and Bun 1.3.10 on one Mac; other versions and architectures are unverified.

From the downloaded source folder:

bun test
./start.sh

The panel uses http://127.0.0.1:4780. There are 131 tests in the current working tree. Tests do not require OBS and do not certify that audio reaches a Space.

Hardening

The existing implementation has localhost binding, foreign-Origin rejection for mutations and sockets, JSON-only mutation intent, authenticated OBS preparation, config backups and atomic replacement, OBS timeouts/reconnect serialization, acknowledged mute, final fader flush, offline keyboard guards, and no wheel/scroll fader control. The panel uses local fonts.

The current implementation also validates Host/Origin and request schemas, bounds request/socket resources, restricts native navigation, isolates OBS profile changes, rejects unsafe setup during active outputs, and verifies Stop sharing before quitting. Startup leaves capture stopped and both mixer inputs muted. Credentials and backups are private; preparation rotates the OBS password while OBS is closed.

131 tests pass. The native window, startup persistence, live Firefox music capture, stable trim, source selection, verified close and OBS restart were observed on the test Mac. Spoken-mic/listening acceptance, clean-machine testing, OBS incoming-network isolation and independent review remain open. These results are not a security certification. See current status.

License and distribution

The mixer’s own source is licensed under MIT. See dependency and distribution notes. OBS and BlackHole are installed separately; their source and binaries are not bundled here. No affiliation with X, OBS, or BlackHole is implied.

Coming later: v2 soundboard

A collapsible sound-pad drawer, independent effects volume, imports and curated sound packs are recorded in the v2 notes. Deferred; not implemented in this preview.

About

Music, mic, and local listening for X Spaces hosts and speakers. A compact floating audio mixer. macOS developer preview.

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages