Ben Evans

Virtual Console for the AKAI LPK25 MIDI Keyboard

7th November 2016 - 2 min read
Virtual Console for the AKAI LPK25 MIDI Keyboard

Before university I worked as a sound engineer. I’ve always loved music and this seemed to fuel the passion. More recently I’ve been unable to get my fix playing behind a mixer… so time to look into other parts of music tech. The software!

With a AKAI LPK25 keyboard laying around, I wanted to make use of it somehow and rediscovering the brilliance of the iDaft (Daft Punk) Soundboard for PSP. I decided to make another Daft Punk soundboard using the keyboard.

The project’s written in JavaScript/CSS & HTML. JavaScript is pretty good for this due to the event based nature — we want to emit sounds when a key is pressed and make use of the enormous amount of npm modules available to avoid reinventing the wheel.

Directly connecting to the keyboard from a website wasn’t initially possible but now may work using WebMidi. At the time Electron (atom-shell) bridges the gap brilliantly, allowing access to more of an underlying system from it’s Node.js integration.

Electron brings Node.js and Chromium into one for building cross-platform applications. For a more in-depth look into Electron and the alternative node-webkit, Cross-Platform Desktop Applications by Paul Jensen is worth checking out.

The code is available under the MIT licence on GitHub, if you’d like to try the project (requires an AKAI LPK25 keyboard) follow these steps:

# Download a copy of this repository
$ git clone https://github.com/bencevans/lpk25-console.git

# Enter the cloned project
$ cd lpk25-console

# Install dependencies
$ npm install

# Download sound clips from the iDaft soundboard
$ npm run download-sounds

# Plug In Keyboard
# Start the Electron app
$ npm start