Skip to content

Restore the universal VST3 build, GUI example, and parameter store - #5

Merged
godofecht merged 1 commit into
mainfrom
restore-universal-vst3
Jul 21, 2026
Merged

Restore the universal VST3 build, GUI example, and parameter store#5
godofecht merged 1 commit into
mainfrom
restore-universal-vst3

Conversation

@godofecht

Copy link
Copy Markdown
Owner

Reconstructs work that was destroyed by a git reset --hard on 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-out from the last good build confirmed the exact target layout.

libDanzigGain_arm64.dylib   Mach-O 64-bit dynamically linked shared library arm64
libDanzigGain_x86.dylib     Mach-O 64-bit dynamically linked shared library x86_64
danzig-gain-ui              Mach-O 64-bit executable arm64
                            -> CoreAudio, CoreFoundation, WebKit

Universal VST3 bundle

Behind a vst3 step, since it doubles compile work and is macOS-only.

  • Builds DanzigGain for aarch64-macos and x86_64-macos, merged with lipo so one bundle loads on either architecture
  • Lays out Contents/{Info.plist,PkgInfo,MacOS/DanzigGain}
  • install-vst3 copies it to ~/Library/Audio/Plug-Ins/VST3/
$ lipo -info zig-out/DanzigGain.vst3/Contents/MacOS/DanzigGain
Architectures in the fat file: ... are: x86_64 arm64

$ plutil -lint zig-out/DanzigGain.vst3/Contents/Info.plist
OK

GUI example

examples/danzig-gain-ui survived as untracked files but had no build wiring. A 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.

Verification

zig build              24/24 steps succeeded
zig build test          7/7 steps, 35/35 tests passed
zig build vst3        10/10 steps succeeded

🤖 Generated with Claude Code

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
godofecht merged commit d9b7734 into main Jul 21, 2026
1 check passed
@godofecht
godofecht deleted the restore-universal-vst3 branch July 24, 2026 23:25
godofecht added a commit that referenced this pull request Jul 29, 2026
Restore the universal VST3 build, GUI example, and parameter store
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