ACMX2 builds and runs on macOS (Intel and Apple Silicon) using OpenGL 4.1 backed by Metal. CUDA, NVENC, and the CUDA-accelerated OpenCV modules are not available on macOS, so the engine is built with -DWITH_CUDA=OFF automatically by the scripts in this directory. All shader-based features still work; only the CUDA GPU-filter pipeline is omitted.
The Apple OpenGL 4.1 driver does not support glProgramBinary, so the shader binary cache is disabled by default at runtime on macOS. The Qt6 interface also greys out the cache-related options on Apple builds.
From an empty working directory:
This runs install-dep.sh (Homebrew packages) and then build-macos.sh (clone, build, and sudo make install).
Install Homebrew packages
Required: cmake, pkg-config, sdl2, sdl2_ttf, sdl2_mixer, sdl2_image, glm, opencv, ffmpeg, qt6. Optional (only if you build with -DAUDIO=ON / -DMIDI=ON): rtaudio, rtmidi.
Build and install the engine + GUI
The script clones libmx2 and ACMX2, builds MXWrite, then the acmx2 CLI engine, then acmx2_interface (Qt6 GUI). All targets are installed to /usr/local/.
Download the macOS-compatible shader pack
The default shader library targets desktop NVIDIA OpenGL drivers and contains shaders that the Apple GL 4.1 driver rejects (or in some cases crashes on). Use the curated macOS pack instead:
Unzip it somewhere and pass the path with -s or set it in the GUI's * File → Properties → Shader Directory *.
Run
build-macos.sh invokes CMake with:
| Flag | Value | Reason |
|---|---|---|
| -DWITH_CUDA | OFF | No CUDA on macOS |
| -DAUDIO | OFF | Toggle on if you brew install rtaudio |
| -DMIDI | OFF | Toggle on if you brew install rtmidi |
| -DCMAKE_PREFIX_PATH | $(brew --prefix);$(brew --prefix)/opt/qt6;/usr/local | Find Qt6 + Homebrew libs on Apple Silicon |
| -DCMAKE_INSTALL_RPATH | $(brew --prefix)/lib;/usr/local/lib | Resolve dylibs at runtime |