Skip to content

Use the full power of the Launchpad X in a Linux studio setup

License

Notifications You must be signed in to change notification settings

wvengen/lpx-controller

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Launchpad X Controller

The Novation Launchpad X is a MIDI controller with 80 buttons that connects over USB. By default, Note and Custom layouts can be used, but not the Session layout.

While some software may provide support for this device, it's improbable that all useful packages know about this device. So why not making something that allows music-software to work with the full functionality of this device using standard MIDI messages? That's what this project is.

This program sits in between your music application and the Launchpad X device. It interacts with both, and expands the functionality of a 'stock' Launchpad X with the Session layout and four Mixer layouts (Volume, Pan, Send A and Send B).

When the 'Controller' input and output is connected to your music application, you can use regular MIDI learn functionality to control it with the Launchpad X.

Install

Go to releases and find the latest release. Get the binary appropriate for your system (if you don't know, it's probably x86_64), and install it somewhere in your PATH:

mkdir -p $HOME/.local/bin && \
wget -O $HOME/.local/bin/lpx-controller \
  https://github.com/wvengen/lpx-controller/releases/latest/download/lpx-controller-`uname -i` && \
chmod a+x $HOME/.local/bin/lpx-controller

Alternatively, you can clone this repository and run cargo build --release, after which you can find the binary as target/release/lpx-controller. See Develop for build requirements.

Run

  1. Connect your Launchpad X to the computer.
  2. Run lpx-controller from the command-line.
  3. You should see the Session button light up.
  4. Connect your audio application to Launchpad X Helper's ports named Controller in and Controller out.
  5. When you're done, press Ctrl-C in the console to stop this program.

Note that this program doesn't currently reconnect to the Launchpad X when you plug it in and out. You're probably using a patchbay application already, so you might consider including these too. A later version of the program could perhaps reconnect automatically (and re-initialize without having to press Session again).

Notes

The four mixer layouts are initialized to send the following control change messages:

  • Volume - Channel 5, CC 30 - 37
  • Pan - Channel 5, CC 38 - 45
  • Send A - Channel 5, CC 46 - 53
  • Send B - Channel 5, CC 54 - 61

Note that your music application must not echo received control changes back to the device, because the Launchpad X fades the mixer channels, and on receiving the fade will stop.

Tested with

Feel free you share your usage of this program by submitting an issue or PR.

Develop

You'll need Rust 1.52.0+ with Cargo. The easiest option to get a recent enough Rust is using Rustup.

You also need the ALSA headers. On Debian you would need to run apt-get install libasound2-dev, on Fedora dnf install alsa-lib-devel.

With these in place, running a development version of lpx-controller is as easy as cargo run.

Relevant links:

License

This program is licensed under the GNU GPL v3 or later.