Sendspin VST3 plugin implemented in Rust.
- Requires Music Assistant 2.8.0b15 or newer.
- VST3 instrument plugin with stereo output
- Custom plugin editor (
egui) for server selection and status - Background Sendspin WebSocket client
- Automatic discovery of Sendspin servers
- Timestamped playback scheduling on the audio thread using an SPSC ring buffer
- Underrun-driven sync state reporting (
synchronized/error) - Live diagnostics counters in the editor (
queue_overflow,decode_error,late_chunk)
Server URL can be configured in the plugin GUI:
- Pick a discovered server from mDNS
- Choose
Other...and enter a custom URL - Click
Refreshto re-query mDNS - Set a custom client name and click
Apply Name
A persistent client_id UUID is stored under your user config directory:
- macOS:
~/Library/Application Support/sendspin-vst/client_id - Linux:
~/.config/sendspin-vst/client_id - Windows:
%APPDATA%\\sendspin-vst\\client_id
cargo check
cargo build --releasecargo test
cargo clippy --all-targets --all-features -- -D warningsFor live server smoke tests (ignored by default):
# In another terminal: start a real server (example using sendspin-cli)
cd ../sendspin-cli
uv run sendspin serve --demo
# Back in this repository
SENDSPIN_SMOKE_SERVER_URL=ws://127.0.0.1:8927/sendspin \
cargo test network::tests::live_protocol_client_connects -- --ignored --nocapture
SENDSPIN_SMOKE_SERVER_URL=ws://127.0.0.1:8927/sendspin \
cargo test network::tests::live_smoke_connects_to_sendspin_server -- --ignored --nocaptureTo produce an actual .vst3 bundle:
cargo xtask bundle sendspin-vst --releaseThe bundle will be written to:
target/bundled/Sendspin.vst3
