An Apple Silicon macOS CLAP plug-in bundle for editing the Roland MKS-7 from compatible CLAP hosts. It exposes the MKS-7's synthesis parameters as automatable, modulatable controls and saves their state with the host project. Bitwig Studio is the currently documented and tested host.
The bundle provides three note effects:
MKS-7 Melody ControllerMKS-7 Chord ControllerMKS-7 Bass Controller
The plug-ins send parameter changes directly through CoreMIDI. They are controllers, not software instruments: use Bitwig's HW Instrument after each controller for notes and audio return.
- Melody, Chord, and Bass synthesis controls, including the hardware-verified packed switches
- Chord four-voice/six-voice Whole Mode
- Configurable MIDI output and receive channel for each part
- Automation, modulation, remote-control pages, and project state restoration
- Rate-limited and coalesced MIDI output
- Best-effort note and MIDI event pass-through to the following device
There is no custom interface; Bitwig's parameter and remote-control panels are the front panel. Rhythm mapping, program changes, hardware state reading, bulk tone writes, preset management, and MIDI destination hot-plug refresh are not implemented.
Development and CI use Rust 1.98.0, pinned in rust-toolchain.toml. Rustup automatically installs
the required formatting and linting components and Apple Silicon target.
cargo test --workspace
cargo run -p xtask --releaseThe Apple Silicon bundle is written to target/clap/MKS-7 Controller.clap, targets macOS 11.0
or newer, and is ad-hoc signed. Use cargo run -p xtask -- --debug for a debug build.
Only macOS is supported because the MIDI transport uses CoreMIDI. Other targets are rejected at compile time until they have a verified transport and packaging path.
Download the Apple Silicon macOS archive and checksum from GitHub Releases, then verify it:
shasum -a 256 -c MKS-7-Controller-*-macOS-Apple-Silicon.zip.sha256The release bundle is ad-hoc signed on GitHub Actions, not Developer ID signed or notarized. Before installing it, fully quit Bitwig, extract the archive, clear the downloaded file attributes, replace the CI signature with a local ad-hoc signature, and verify the result:
xattr -cr "MKS-7 Controller.clap"
codesign --force --deep --sign - "MKS-7 Controller.clap"
codesign --verify --deep --strict --verbose=2 "MKS-7 Controller.clap"Only clear the attributes and re-sign a bundle you built yourself or downloaded from a release you trust. If Bitwig previously rejected the bundle, keep Bitwig closed while running these commands so that restarting it clears the cached rejection.
Place or symlink MKS-7 Controller.clap in:
~/Library/Audio/Plug-Ins/CLAP/
Then restart Bitwig and rescan plug-ins.
- Add the controller for the required MKS-7 part.
- Add Bitwig's HW Instrument immediately after it.
- In HW Instrument, select the physical MIDI output and the part's receive channel.
- In the controller, select the same MIDI output and channel.
- Move
VCF Cutoffslowly and confirm that the hardware responds.
New instances have no MIDI output selected. Select or load the desired parameter values before choosing an output if sending the initial zero-valued continuous parameters would be undesirable.
MIDI destinations are read when an instance is created. Reload the instance after connecting or
renaming a destination. Saved destinations are restored by CoreMIDI unique ID and fall back to
None if unavailable.
Each instance sends at most one successful message about every 25 ms. Melody, Chord, and Bass have independent senders, so using all three can exceed 40 messages per second in total.
Note and MIDI events are forwarded unchanged when the host accepts them. CLAP does not provide a retry path when the host's output event queue is full, so queue exhaustion can drop pass-through events rather than interrupting real-time processing.
See docs/MKS-7_DEVELOPER_REFERENCE.md for the implemented MIDI
protocol and hardware-verified encodings.
Contributions are welcome. See CONTRIBUTING.md for setup, required checks, and
hardware-validation expectations.
This is an independent, unofficial project and is not affiliated with or endorsed by Roland or Bitwig. Roland, MKS-7, Bitwig, and Bitwig Studio are trademarks of their respective owners.
This project is available under the MIT License. Dependency license texts are listed in
THIRD_PARTY_LICENSES.html.