Skip to content

v0.0.1 — first preview

Pre-release
Pre-release

Choose a tag to compare

@innerrecess innerrecess released this 09 May 20:00
· 17 commits to main since this release

First tagged preview of VZenit, a native macOS voice editor for the Casio VZ-1, VZ-10M, and VZ-8M synthesizers.

Code-stable preview, not hardware-verified. The codec, library, editor, and SysEx pipeline all compile and pass 28 tests, but no part of this has yet been exercised against a real VZ synth. Treat as ready to test, not ready to use.

What works

  • Bit-accurate 336-byte VZ voice codec with full encode → decode round-trip equality on the default patch
  • CoreMIDI manager with hot-plug-aware port discovery and SysEx F0…F7 streaming
  • Voice editor: signal-flow routing diagram (M1–M8 across Lines A–D), per-module DCO + DCA + key-follow editing
  • Canvas-based drag-to-edit envelope editor — 8 steps with movable sustain and end markers
  • Patch library with JSON persistence + multi-patch .syx import/export
  • Constrained random patch generator (🎲 button next to + in the library sidebar)
  • 28 unit tests across the codec and randomizer, including a property test that any random patch round-trips losslessly
  • App Sandbox + USB + Audio Input + user-selected files entitlements

What's not yet tested

  • Anything involving a real synth. No bytes have flowed between this app and physical VZ hardware.
  • Real-world multi-patch .syx files from the wild (only synthetic round-trip tested)
  • Code signing / notarization — local builds only

Build it yourself

```bash
git clone git@github.com:iraaron/VZenit.git
cd VZenit
brew install xcodegen # one-time
xcodegen generate
open VZenit.xcodeproj
```

In Xcode, set Signing & Capabilities → Team to your Apple ID (or use Sign to Run Locally if you don't have one), then ⌘R.

Requires macOS 14 Sonoma or later, Xcode 15+, and a USB-MIDI interface connected to your VZ.

Known limitations

  • No app icon yet
  • No Operation Editor (multi-timbral mode)
  • No undo/redo, on-screen keyboard, patch compare/morph
  • 64-patch bank dump/restore not yet implemented
  • Local-build-only — no notarized binaries in this release