Restore the universal VST3 build, GUI example, and parameter store - #5
Merged
Conversation
I destroyed this work earlier with `git reset --hard` on a dirty tree.
It was never committed, so none of it was recoverable from git. This
reconstructs it.
Recovered rather than guessed where possible: stale artifacts left in
zig-out from the last good build confirmed the target layout
(DanzigGain_arm64 as arm64, DanzigGain_x86 as x86_64, danzig-gain-ui as
an arm64 executable linking CoreAudio, CoreFoundation and WebKit).
Universal VST3 bundle, behind a `vst3` step:
- Builds DanzigGain for aarch64-macos and x86_64-macos, then merges
them with lipo so one bundle loads on either architecture.
- Lays out Contents/{Info.plist,PkgInfo,MacOS/DanzigGain}. The plist
validates with plutil; the binary reports as a 2-architecture fat
Mach-O.
- `install-vst3` copies it to ~/Library/Audio/Plug-Ins/VST3/.
Kept off the default install: it doubles compile work and is macOS-only.
GUI example (examples/danzig-gain-ui, which survived as untracked
files): webview front end over CoreAudio, with ui/index.html embedded so
the binary is self-contained. Needs the webview dependency, hence the
new build.zig.zon. The Zig bindings are declarations only, so it links
the dependency's webviewStatic artifact for the C++ implementation.
Parameter store: src/params.zig also survived untracked, but its
re-exports in root.zig and its tests were lost, leaving it orphaned and
unreachable. Both restored, taking the unit suite from 22 to 35 tests.
Also adds run-gui and run-standalone steps, and gitignores the .wav
files the standalone processor writes.
Verified: 24/24 build steps, 35/35 unit tests, 10/10 vst3 steps,
lipo reports "x86_64 arm64".
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
godofecht
added a commit
that referenced
this pull request
Jul 29, 2026
Restore the universal VST3 build, GUI example, and parameter store
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Reconstructs work that was destroyed by a
git reset --hardon a dirty tree. It had never been committed, so none of it was recoverable from git.Where possible this is recovered rather than guessed: stale artifacts left in
zig-outfrom the last good build confirmed the exact target layout.Universal VST3 bundle
Behind a
vst3step, since it doubles compile work and is macOS-only.DanzigGainforaarch64-macosandx86_64-macos, merged withliposo one bundle loads on either architectureContents/{Info.plist,PkgInfo,MacOS/DanzigGain}install-vst3copies it to~/Library/Audio/Plug-Ins/VST3/GUI example
examples/danzig-gain-uisurvived as untracked files but had no build wiring. A webview front end over CoreAudio, withui/index.htmlembedded so the binary is self-contained. Needs the webview dependency, hence the newbuild.zig.zon. The Zig bindings are declarations only, so it links the dependency'swebviewStaticartifact for the C++ implementation.Parameter store
src/params.zigalso survived untracked, but its re-exports inroot.zigand its tests were lost, leaving it orphaned and unreachable. Both restored, taking the unit suite from 22 to 35 tests.Verification
🤖 Generated with Claude Code