Skip to content

feat: run the music server on macOS (Metal, unified memory) - #51

Open
stalexxx wants to merge 7 commits into
timoncool:mainfrom
stalexxx:macos-support
Open

stalexxx wants to merge 7 commits into
timoncool:mainfrom
stalexxx:macos-support

Conversation

@stalexxx

@stalexxx stalexxx commented Oct 6, 2026

Copy link
Copy Markdown

Summary

  • Non-Windows builds skip the VC++ runtime check (nothing to fetch).
  • macOS hardware detection: chip name from system_profiler (sppci_model), unified memory reported as total RAM.
  • Auto backend on macOS lets the engine pick its device (Metal), never Vulkan; falls back to CPU if that start fails.
  • Windows-only tests gated with #[cfg(windows)]; device_chain test is platform-aware.

Windows behaviour is unchanged.

Test plan

  • cargo test -p music-server --lib on macOS (281 passed, 4 ignored)
  • Windows CI / regression check

🤖 Generated with Claude Code

stalexxx and others added 4 commits October 6, 2026 14:23
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…data)

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

stalexxx commented Oct 6, 2026 •

Copy link
Copy Markdown
Author

Besides the macOS support in music-server, this PR now includes the engine and app builds for macOS (Apple Silicon):

  • scripts/build-yue-runtime.sh + a macos entry in engines/yue2-cpp-source.json: builds the pinned yue2.cpp commit with Metal (see README, "Building from source").
  • scripts/build-release-macos.sh: builds an ad-hoc-signed .dmg with the engine bundled. The engine is looked up in Contents/Resources, data goes to ~/Library/Application Support/YuE2 Studio.

Built from scratch on Apple Silicon: the engine builds and starts, the dmg builds (53 MB), its signature verifies, and cargo test -p music-server --lib passes (281). The dmg was installed and run on an M2 Max: the engine from Contents/Resources starts, engine.log shows the Metal device (MTL0 (Apple M2 Max), unified memory), and a song was generated end to end (39.4 s of audio in 108.6 s) and saved to the library.

Audio to MIDI (ace-midi) is built with Metal by scripts/build-midi-runtime.sh and bundled in the dmg; transcribing a generated song on the M2 Max works (476 notes in ~30 s).

Not verified: Windows (behaviour unchanged by design).

stalexxx and others added 3 commits October 6, 2026 15:25
…ndows .exe)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…r for child tools

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
… snapshots

Co-Authored-By: Claude Sonnet 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