README.rdoc in launchpad-0.2.2 vs README.rdoc in launchpad-0.3.0
- old
+ new
@@ -1,29 +1,49 @@
= 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.
+{<img src="https://travis-ci.org/thomasjachmann/launchpad.png?branch=master" alt="Build Status" />}[https://travis-ci.org/thomasjachmann/launchpad]
+This gem provides a ruby 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.
+== More Info
+
+If you don't know what launchpad is, visit:
+
+* Novation's site at http://de.novationmusic.com/products/midi_controller/launchpad
+* my demo videos for this library at http://www.youtube.com/thomasjachmann
+* other demos on youtube http://www.youtube.com/results?search_query=novation+launchpad
+
+If you're into other languages or want to know what goes on behind the scenes MIDI wise, have a look at:
+
+* Novation's MIDI programmer's reference at {www.novationmusic.com/support/launchpad}[http://www.novationmusic.com/support/launchpad/] (bottom of the page)
+* Tobi Tobes' port of my gem to processing at http://github.com/rngtng/launchpad
+
+
== Requirements
* Roger B. Dannenberg's {portmidi library}[http://sourceforge.net/projects/portmedia/]
* Jan Krutisch's {portmidi gem}[http://github.com/halfbyte/portmidi]
-== Installation
+== Compatibility
-The gem is hosted on Gemcutter[http://gemcutter.org/], so in order to use it, you're gonna install the gemcutter gem (for details, see their site):
+The gem is known to be compatible with the following ruby versions:
- gem install gemcutter
- gem tumble
+* MRI 1.8.7
+* MRI 1.9.3
+* MRI 2.0.0
-After that, it's a simple gem install:
+== Installation
+
+The gem is hosted on RubyGems[https://rubygems.org/], so in order to use it, you're gonna gem install it:
+
gem install launchpad
== Usage
@@ -32,11 +52,10 @@
* 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
@@ -44,11 +63,10 @@
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))
@@ -61,17 +79,23 @@
For more details, see the examples. examples/color_picker.rb is the most complex example with interaction.
-== Near future plans
+== Future plans
-* interaction responses for presses on single grid buttons/button areas
* bitmap rendering
* internal tracking of LED states for both buffers
== Changelog
+
+=== v.0.3.0
+
+* logging
+* reworked multi threading for action handling
+* compatibility with ruby 1.8.7 and 2.0.0
+* interaction responses for presses on single grid buttons/button areas/columns/rows
=== v.0.2.2
* single threading fix: prevent ThreadError when Launchpad::Interaction#stop is called within an action response