Getting Started¶
Requirements¶
-
CMake 3.20+
-
C++17 compiler
-
JUCE framework (automatically downloaded if not present)
-
Vendored C libraries: miniaudio, tflac, libremidi, midifile (see Vendored Dependencies)
Platform-specific¶
-
macOS: Xcode command line tools
-
Windows: Visual Studio 2019+ or MinGW
-
Linux:
sudo apt install libasound2-dev libfreetype-dev libfontconfig1-dev \
libwebkit2gtk-4.1-dev libgtk-3-dev libgl-dev libcurl4-openssl-dev
Building¶
Python Bindings (recommended)¶
git clone https://github.com/shakfu/minihost.git
cd minihost
uv sync # initial environment setup
make build # build Python extension (downloads JUCE if needed)
make test # run tests
C/C++ Library Only¶
make cli # build C library and tools
# Or manually:
cmake -B build
cmake --build build --config Release
Custom JUCE Path¶
Headless Mode¶
The library is built headless -- without GUI dependencies -- as
libminihost.a. If you need GUI support (plugin editor windows), build the
non-headless sibling archive libminihost_gui.a as well and link that
instead. Both are produced in the same build tree:
JUCE Setup¶
JUCE is downloaded automatically by make. Manual options:
# Cross-platform (recommended)
python scripts/download_juce.py
# Unix only
./scripts/download_juce.sh
# Specific version
JUCE_VERSION=8.0.12 python scripts/download_juce.py
# Point to existing installation
cmake -B build -DJUCE_PATH=/path/to/your/JUCE