explaingit

jcalebbr/smk25v2

Analysis updated 2026-05-18

1JavaScriptAudience · generalComplexity · 3/5LicenseSetup · moderate

TLDR

A Bitwig Studio controller script for Linux that connects the M-VAVE SMK25 II MIDI keyboard over USB or Bluetooth and maps its knobs, pads, and transport buttons.

Mindmap

mindmap
  root((smk25v2))
    What it does
      Bitwig controller script
      Supports USB and Bluetooth
      Maps knobs and buttons
    Tech stack
      JavaScript
      MIDI
      ALSA
    Use cases
      Connect SMK25 II to Bitwig
      Control arpeggiator and tempo
      Capture custom MIDI bindings
    Audience
      Musicians on Linux

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Connect an M-VAVE SMK25 II keyboard to Bitwig Studio over USB on Linux

USE CASE 2

Route the SMK25 II over Bluetooth into Bitwig using a virtual MIDI device

USE CASE 3

Use capture mode to log button and knob values for custom MIDI bindings

USE CASE 4

Control Bitwig's arpeggiator, tempo, and transport directly from the hardware knobs and buttons

What is it built with?

JavaScriptMIDIALSABitwig Studio

How does it compare?

jcalebbr/smk25v20xmukesh/docusaurus-tutorial1tsmejp/palworld-docker-wine
Stars111
LanguageJavaScriptJavaScriptJavaScript
Last pushed2021-12-27
MaintenanceDormant
Setup difficultymoderateeasymoderate
Complexity3/52/54/5
Audiencegeneraldeveloperops devops

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Bluetooth setup requires configuring a virtual ALSA MIDI device and routing it with qpwgraph.

GPL-3.0: you can use and modify this freely, but any distributed modified version must also be released as open source under the same license.

In plain English

This project is a controller script that lets a specific piece of MIDI keyboard hardware, the M-VAVE SMK25 II, work properly with Bitwig Studio, a digital audio workstation used for making music. It is written for Linux and supports connecting the keyboard either over USB or Bluetooth. Installation is straightforward: you download the repository, run an install script from a terminal, then add the controller inside Bitwig's settings by selecting M-VAVE as the vendor and SMK25 II as the device. Bitwig automatically detects new controller scripts without needing a restart in most cases. For USB users, there are specific recommended port names to select. Bluetooth users need a few extra steps, including creating a virtual MIDI device on Linux and routing the Bluetooth connection through a tool called qpwgraph so Bitwig can see the incoming signals. The repository includes an optional custom preset file that changes some of the keyboard's internal button and knob behavior, which the script's default settings are built around. Without loading this preset, users can instead use a built in capture mode that logs exactly what each button, knob, and pad sends, so they can manually match those values to Bitwig's own binding settings. Once set up, the keyboard's keys and pads act as normal music input into Bitwig, while dedicated knobs and buttons control things like the arpeggiator mode, octave range, tempo, and transport functions such as play, stop, and record. The README also includes a troubleshooting section covering common problems like ports being selected in the wrong order, transport buttons not responding, and general Bluetooth connectivity setup. The project builds on an earlier community project for M-VAVE controllers and is released under the GPL-3.0 license.

Copy-paste prompts

Prompt 1
Walk me through installing this Bitwig controller script for my M-VAVE SMK25 II on Linux.
Prompt 2
Help me set up Bluetooth routing for the SMK25 II using qpwgraph and a virtual MIDI device.
Prompt 3
Explain how to use Capture mode to map my keyboard's buttons into Bitwig's MIDI bindings.
Prompt 4
Why aren't my Play, Stop, and Rec buttons responding in Bitwig with this script installed?

Frequently asked questions

What is smk25v2?

A Bitwig Studio controller script for Linux that connects the M-VAVE SMK25 II MIDI keyboard over USB or Bluetooth and maps its knobs, pads, and transport buttons.

What language is smk25v2 written in?

Mainly JavaScript. The stack also includes JavaScript, MIDI, ALSA.

What license does smk25v2 use?

GPL-3.0: you can use and modify this freely, but any distributed modified version must also be released as open source under the same license.

How hard is smk25v2 to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is smk25v2 for?

Mainly general.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.