Skip to content

Install

midi-sink is one engine with six shells. Pick yours.

Open /marble/. It needs WebGPU in a secure context: Chrome or Edge, Safari 26, Firefox 141+, over https:// (or localhost). Marble mode only — tap, drag, twist, pinch, pen — with a MIDI instrument playing straight in on Chrome and Edge through Web MIDI. Settings live in the panel at the top left and persist in your browser. More about the web canvas →

macOS — Homebrew, from the vibetuned tap:

Terminal window
brew install --cask vibetuned/tap/midi-sink

or download midi-sink-<version>-macos-universal.dmg from the GitHub Releases page and drag the app to Applications. One universal build for Apple silicon and Intel, macOS 12 Monterey or later, signed and notarized — it opens without a Gatekeeper warning. The version in About is the release tag.

Windows — winget:

Terminal window
winget install Vibetuned.MidiSink

or download midi-sink-<version>-windows-x64-setup.exe from the GitHub Releases page — a per-user install (no admin prompt) with a Start-menu entry and a normal uninstaller; your settings in %APPDATA%\midi-sink survive uninstalling unless you say otherwise. Prefer no installer at all? The …-windows-x64-portable.zip is the same self-contained exe — unzip and run. Until the builds are code-signed, the first launch of a new version shows a SmartScreen notice: choose More info → Run anyway (once per version). MIDI arrives through WinMM — plug the instrument in and it appears in the settings window within a second.

Linux — the apt repository (Ubuntu 22.04+ / Debian 12+, x86-64), signed:

Terminal window
sudo install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://midi-sink.vibetuned.com/apt/midi-sink.asc \
| sudo tee /etc/apt/keyrings/midi-sink.asc >/dev/null
echo "deb [signed-by=/etc/apt/keyrings/midi-sink.asc] https://midi-sink.vibetuned.com/apt stable main" \
| sudo tee /etc/apt/sources.list.d/midi-sink.list
sudo apt update && sudo apt install midi-sink

or download midi-sink_<version>_amd64.deb from the GitHub Releases page and sudo apt install ./midi-sink_<version>_amd64.deb. Either way you get the app in the menu with its icon (Wayland and X11), MIDI over ALSA — a ROLI or any class-compliant instrument appears in the settings window within a second; the ROLI Airwave is the exception, it needs ROLI’s macOS/Windows software and does not exist on Linux — and a normal apt remove. Release candidates live in the rc suite (rc main instead of stable main) so a stable line never receives one. Prefer no package? midi-sink-<version>-linux-x64.tar.gz is the same self-contained binary — unpack and run ./midi-sink (glibc 2.34 or newer; no menu entry, that is the package’s job).

Or build it yourself:

Terminal window
git clone https://github.com/vibetuned/midi-sink && cd midi-sink
cmake -B build -G Ninja && cmake --build build && ctest --test-dir build
open ./build/desktop/midi-sink.app # macOS
./build/desktop/midi-sink # Windows / Linux

CMake ≥ 3.24, Ninja, and a C++20 compiler (Xcode, MSVC 2022, gcc or clang). Linux needs the GL/X11/Wayland dev packages GLFW wants plus the ALSA headers (Debian/Ubuntu: libgl1-mesa-dev xorg-dev libwayland-dev libxkbcommon-dev libasound2-dev). On Linux, cmake --install build --component desktop-integration --prefix ~/.local gives the app its icon and name in the dock.

The app launches to a playable instrument: connect a MIDI device and it shows up in the settings window (⌘ , on macOS, Ctrl , elsewhere). The desktop app →

midi-sink on the App Store — for iPadOS and iOS 16 or later. It is made for the iPad and happiest with an Apple Pencil: the Pencil Pro’s squeeze and barrel roll are used when present. The version in Settings → About is the release tag, the same as every other platform.

From source: build libsumi.a for iOS with CMake, generate the Xcode project with xcodegen in ios/, and build the midi-sink scheme — BUILD.md in the repository has the exact commands.

midi-sink on Google Play — for Android 10 or later with OpenGL ES 3 and Android MIDI support. Made for tablets with a stylus (developed on the Galaxy Tab S8 Ultra with the S Pen), and it runs on any device that meets that floor.

From source: cd android && ./gradlew assembleDebug with SDK 36 and NDK r27 — Gradle drives the same CMake tree as the desktop build (BUILD.md).

Nothing, since 2.0: the app carries its own sound engine. On the tablets a first launch sounds the Dan Tranh demo; switch to the Suzu synth or load a Decent Sampler library of yours, and the same bytes that draw the water play it. On the desktop turn Internal sound (Voxo) on in Settings → Sound. The browser is the exception: the web canvas is the picture alone (the Suzu lab beside it runs the synth). Plug an instrument in to see it play (devices), or on a tablet enable an outbound transport and point a synth or DAW at “midi-sink Play Surface” (Play mode) — with Local Control off, the surface sounds only there.

midi-sink 2.0.0-rc.5 · AGPL-3.0 · source