Install battuta
battuta is a desktop application. It reads and writes MEI files on your own disk, needs no account, and makes no network requests — nothing you open leaves your machine.
Download a build
Section titled “Download a build”Bundles are attached to each GitHub release.
Two bundles, both 64-bit x86:
battuta_<version>_amd64.deb— the small one (~6 MB); it uses the WebKitGTK already on your system.Terminal window sudo apt install ./battuta_0.0.1_amd64.debbattuta_<version>_amd64.AppImage— self-contained (~81 MB, WebKitGTK bundled); no install step.Terminal window chmod +x battuta_0.0.1_amd64.AppImage./battuta_0.0.1_amd64.AppImage
MIDI input goes through ALSA. The .deb declares that dependency, so it comes
in with the package; if you use the AppImage on a minimal system and the status
bar never finds your keyboard, install your distribution’s ALSA runtime.
Download the .dmg, open it, drag battuta to Applications.
The disk image is not signed with an Apple Developer ID, so Gatekeeper warns you the first time. Open it from Finder’s context menu → Open to get the “open anyway” choice, or clear the quarantine flag yourself:
xattr -dr com.apple.quarantine /Applications/battuta.appVerified on Apple Silicon: the app launches, .mei files open by
double-click, and MIDI keyboards hot-plug through CoreMIDI.
Download the NSIS installer (battuta_<version>_x64-setup.exe). It
bootstraps Microsoft’s WebView2 runtime if the machine doesn’t have it.
Opening .mei files by double-click
Section titled “Opening .mei files by double-click”The Linux packages register *.mei as application/x-mei+xml and hand the
clicked file to battuta, so double-clicking a score in your file manager opens
it in a new tab. macOS does the same through the app bundle. If a file manager
still opens .mei in a text editor, set battuta as the default application for
the type once — the association is registered, the preference is yours.
Run from source
Section titled “Run from source”Useful for trying the editor without installing anything: the frontend is a plain web app and runs in any modern browser (Chromium and Firefox both work; Web MIDI needs Chromium).
-
Get the sources and dependencies — Node 22 or newer:
Terminal window git clone https://github.com/vibetuned/battuta.gitcd battutanpm install -
Start the editor:
Terminal window npm run dev --workspace @battuta/editor -
Open the printed URL. In a browser, open file… and ctrl + s fall back to a file picker and a download instead of native dialogs; everything else behaves the same.
Building the desktop shell
Section titled “Building the desktop shell”The desktop app is Tauri 2. Building it needs Rust plus the platform’s webview and audio headers — on Debian/Ubuntu:
sudo apt install libwebkit2gtk-4.1-dev libgtk-3-dev libasound2-dev \ librsvg2-dev build-essential curl wget file libssl-devThen:
npm run build -w @battuta/corenpm run build -w @battuta/editorcd apps/editor && npx tauri buildThe bundles land in apps/editor/src-tauri/target/release/bundle/. The binary
prints at startup whether it is serving embedded assets or talking to the dev
server, so you always know which one you launched.
What’s next
Section titled “What’s next”- A tour of the window — every control, named.
- Your first score — from blank to a phrase you can hear.