Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

A gem for accessing novation's launchpad programmatically and easily.

tree: 7dcb87785f

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 examples
Octocat-spinner-32 experiments
Octocat-spinner-32 lib
Octocat-spinner-32 test
Octocat-spinner-32 .document
Octocat-spinner-32 .gitignore
Octocat-spinner-32 LICENSE gemification using jeweler November 08, 2009
Octocat-spinner-32 README.rdoc
Octocat-spinner-32 Rakefile
Octocat-spinner-32 launchpad.gemspec
README.rdoc

launchpad

This gem provides an interface to access novation's launchpad programmatically. LEDs can be lighted and button presses can be responded to. Internally, launchpad's MIDI input/output is used to accomplish this.

The interfaces should be rather stable now (sorry, I changed quite a bit since the last release), so experiment with them and comment on their usability. This still is work in progress. If you need anything or think the interfaces could be improved in any way, please contact me.

Sometimes, the launchpad won't react to anything or react to/light up the wrong LEDs. Don't despair, just dis- and reconnect the thing. It seems that some (unexpected) MIDI signals make it hickup.

Requirements

Installation

The gem is hosted on Gemcutter, so in order to use it, you're gonna install the gemcutter gem (for details, see their site):

gem install gemcutter
gem tumble

After that, it's a simple gem install:

gem install launchpad

Usage

There are two main entry points:

  • require 'launchpad/device', providing Launchpad::Device, which handles all the basic input/output stuff

  • require 'launchpad/interaction' or just 'launchpad', additionally providing Launchpad::Interaction, which lets you respond to actions (button presses/releases)

This is a simple example (only requiring the device for output) that switches on all LEDs (for testing), resets the launchpad again and then lights the grid button at position 4/4 (from top left).

require 'rubygems'
require 'launchpad/device'

device = Launchpad::Device.new
device.test_leds
sleep 1
device.reset
sleep 1
device.change :grid, :x => 4, :y => 4, :red => :high, :green => :low

This is an interaction example lighting all grid buttons in red when pressed and keeping them lit.

require 'rubygems'
require 'launchpad'

interaction = Launchpad::Interaction.new
interaction.response_to(:grid, :down) do |interaction, action|
  interaction.device.change(:grid, action.merge(:red => :high))
end
interaction.response_to(:mixer, :down) do |interaction, action|
  interaction.stop
end

interaction.start

For more details, see the examples. examples/color_picker.rb is the most complex example with interaction.

Near future plans

  • interaction responses for presses on single grid buttons/button areas

  • bitmap rendering

Changelog

  • double buffering (see Launchpad::Device#buffering_mode)

  • don't update grid button 0,0 before change_all (in order to reset rapid update pointer), use MIDI message without visual effect

  • (at least) doubled the speed of change_all by not sending each message individually but sending them in one go (as an array)

v0.1.1

v0.1.0

  • first feature complete version with kinda stable API

Copyright

Copyright © 2009 Thomas Jachmann. See LICENSE for details.

Something went wrong with that request. Please try again.