No description
  • C++ 92.3%
  • CMake 4.6%
  • C 3.1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
AorsiniYT 02ba0a066e
Some checks failed
CI / Protocol tests (push) Has been cancelled
Finish host reliability and Windows CI fixes
2026-09-17 11:27:01 -06:00
.github Finish host reliability and Windows CI fixes 2026-09-17 11:27:01 -06:00
codec Adopt the shared protocol and reorganized runtime 2026-09-14 12:41:35 -06:00
host Finish host reliability and Windows CI fixes 2026-09-17 11:27:01 -06:00
include Simplify host networking and Sunshine integration 2026-09-16 07:06:46 -06:00
network Harden protocol, configuration, and web integrations 2026-09-15 15:31:02 -06:00
platform Simplify host networking and Sunshine integration 2026-09-16 07:06:46 -06:00
src Simplify host networking and Sunshine integration 2026-09-16 07:06:46 -06:00
tests Simplify host networking and Sunshine integration 2026-09-16 07:06:46 -06:00
.clang-format Organize host packaging and typing focus support 2026-09-13 18:10:33 -06:00
.gitignore feat: Add Sunshine integration, new GUIs for settings and debug, platform-specific heartbeat monitors, and FFmpeg decoder. 2025-12-04 19:47:09 -06:00
.gitmodules Organize host packaging and typing focus support 2026-09-13 18:10:33 -06:00
CMakeLists.txt Harden protocol, configuration, and web integrations 2026-09-15 15:31:02 -06:00
CONTRIBUTING.md Harden protocol, configuration, and web integrations 2026-09-15 15:31:02 -06:00
INTEGRATION.md Reconcile the post-merge host and client code 2026-09-07 16:22:36 -06:00
LICENSE Harden protocol, configuration, and web integrations 2026-09-15 15:31:02 -06:00
README.md Harden protocol, configuration, and web integrations 2026-09-15 15:31:02 -06:00
THIRD_PARTY_NOTICES.md Harden protocol, configuration, and web integrations 2026-09-15 15:31:02 -06:00
VERSION feat: Enhance audio configuration and version management 2025-11-25 23:02:41 -06:00

Moonmic

Moonmic sends microphone audio from a Moonlight client to a host over UDP. The client library captures and encodes audio; moonmic-host receives it and writes it to a virtual microphone.

Components

  • moonmic: static client library for PS Vita, Windows, and Linux.
  • moonmic-host: Windows and Linux receiver with GUI and console modes.
  • moonmic-guardian: Windows watchdog that restores the previous microphone if the host exits unexpectedly.

The default UDP port is 48100. Audio is sent as Opus or signed 16-bit PCM. Protocol declarations shared by clients and the host are in moonmic_protocol.h.

Layout

codec/       Client codecs
include/     Public client and protocol headers
network/     Client transport
platform/    Client platform implementations
src/         Client implementation and private headers
host/        Host application, resources, and virtual audio drivers

Dependencies used by the host are Git submodules under host/third_party.

Client build

cmake -S . -B build -DBUILD_CLIENT=ON
cmake --build build --target moonmic

The client requires Opus and the platform audio API. PS Vita builds also require VitaSDK. A parent CMake project can use:

add_subdirectory(third_party/moonmic)
target_link_libraries(your_target PRIVATE moonmic::moonmic)

See INTEGRATION.md for the client API and host/README.md for host setup.

Host packages

The host GUI needs curl and SpeexDSP at runtime; both build from submodules, nothing to install by hand.

The manual Create release GitHub Actions workflow reads VERSION, builds the Windows and Linux hosts, and publishes:

  • moonmic-host-<version>-windows-x86_64.zip
  • moonmic-host-<version>-linux-x86_64.tar.gz

Contributing

See CONTRIBUTING.md for contribution and validation guidance.

License

Moonmic's own source is distributed under the terms in LICENSE. Bundled drivers and submodules retain the terms listed in THIRD_PARTY_NOTICES.md.

Credits

  • Valve Corporation — Steam Streaming Microphone driver
  • VB-Audio Software — VB-CABLE driver
  • Xiph.Org — Opus and SpeexDSP
  • Dear ImGui and GLFW — host interface
  • AorsiniYT — Moonmic and vita-moonlight integration