A macOS GUI editor for the Nord G2 modular synthesizer. Work in progress.
Binary beta releases: https://github.com/chrispurusha/G2-Edit/tags
If anyone is interested in helping, especially with the GUI side of things, please drop me a line.
Since I'm now incurring costs (I recently started using LLMs) which would be good to at least cover, I now have a Buy Me a Coffee page:
https://buymeacoffee.com/chrispurusha
Thanks for any donations!
Install the following via Homebrew (https://brew.sh):
brew install cmake autoconf automake libtool uncrustify
- cmake — builds glfw and freetype
- autoconf / automake / libtool — builds libusb
- uncrustify — code formatter (optional, only needed when editing source)
Xcode and its command line tools are also required:
xcode-select --install
The third-party libraries (glfw, freetype, libusb) are nested submodules inside SynthLib. The --recurse-submodules flag is required — without it the build will fail.
git clone --recurse-submodules https://github.com/chrispurusha/G2-Edit.git
If you already cloned without --recurse-submodules:
git submodule update --init --recursive
SynthLib is a shared library submodule pinned to a specific commit. If SynthLib has been updated since you last pulled, advance the pin before building:
git submodule update --remote SynthLib
git add SynthLib && git commit -m "Update SynthLib"
Do not manually copy files into the SynthLib/ directory — this will cause conflicts on the next update.
All commands run from the root of the cloned repository.
glfw:
cmake -S SynthLib/ThirdParty/glfw -B SynthLib/ThirdParty/glfw/build \
-DBUILD_SHARED_LIBS=OFF \
-DGLFW_BUILD_DOCS=OFF \
-DGLFW_BUILD_EXAMPLES=OFF \
-DGLFW_BUILD_TESTS=OFF \
-DCMAKE_OSX_ARCHITECTURES="arm64;x86_64" \
-DCMAKE_OSX_DEPLOYMENT_TARGET=15.1
cmake --build SynthLib/ThirdParty/glfw/build
freetype:
cmake -S SynthLib/ThirdParty/freetype -B SynthLib/ThirdParty/freetype/build \
-DBUILD_SHARED_LIBS=OFF \
-DCMAKE_OSX_ARCHITECTURES="arm64;x86_64" \
-DCMAKE_OSX_DEPLOYMENT_TARGET=15.1 \
-DFT_DISABLE_BROTLI=ON \
-DFT_DISABLE_BZIP2=ON \
-DFT_DISABLE_HVF=ON \
-DFT_DISABLE_PNG=ON \
-DFT_DISABLE_ZLIB=ON
cmake --build SynthLib/ThirdParty/freetype/build
libusb:
cd SynthLib/ThirdParty/libusb
export CFLAGS="-arch arm64 -arch x86_64"
export CXXFLAGS="-arch arm64 -arch x86_64"
export LDFLAGS="-arch arm64 -arch x86_64"
autoreconf -fi
./configure --disable-shared --enable-static
make
cd ../../..
Open G2 Editor.xcodeproj and build normally.
After editing source files, run from the repository root:
./do-uncrustify
Many mechanisms yet to implement — including copying, etc. 200+ modules to test. Graphical representation of filter curves / oscillator waves etc.
See THIRD_PARTY.md for open-source acknowledgments.