I Need Help From A Launchpad Owner

Hi there. I’m currently working on a small program to use the Novation Launchpad with Linux (http://github.com/jiyunatori/launchpad, will update soon). It works pretty well already, but I need to double-check a few things to be sure it behaves properly.

Here is my request: I need to know precisely what midi messages the LP sends to compare it to my output.

This is what I get when I dump the midi messages with aseqdump. the key pressed are: (1,1), arm (bottom right), learn and mixer.

  
Source Event Ch Data  
129:0 Note on 1, note 0, velocity 127  
129:0 Note off 1, note 0  
129:0 Note on 1, note 120, velocity 127  
129:0 Note off 1, note 120  
129:0 Control change 1, controller 104, value 127  
129:0 Control change 1, controller 104, value 0  
129:0 Control change 1, controller 111, value 127  
129:0 Control change 1, controller 111, value 0  
  

I’m asking this, because in a previous version of my program, the output was

  
Source Event Ch Data  
129:0 Note on 1, note 0, velocity 127  
129:0 Note off 1, note 0, velocity 0  
  

notice the “velocity 0” on the note off message.

I am asking this because as is, I can control my Launchpad with Duplex, but I can’t control Duplex with my Launchpad. There are several explanations:

  1. I am “doing it wrong” ™
  2. There’s a bug in my program (hence the question)
  3. There’s a bug in Duplex

A note-off can also be send as message 0x8x (where x is the channel number 0 to F). This is a pure note-off signal according to the GM standard, most controllers simply use a 09x note-on sign with velocity 0 to trigger a note-off.

What snippet of your program does the translation?
I tried to look at diffs of different “forks” but github is not as comprehensive as a normal SVN based system. ( http://github.com/jiyunatori/launchpad/commit/9e4f59cad707c9180daf972e8b9b4dd4d3e61719 )
If you have differences in output between the latest and an older version of your program, most likely your new version forgets something indeed.

Best advise imho would be to add your program to your git-library and then diff it with the older version. It might give you some hints what may be wrong. (perhaps having a certain routine inside a condition that should be outside a condition or loop, etc.)

@vV

thanks for the precision about the noteoff thing.

My question was not really about the difference between the two outputs of my program. I know precisely what I did to get the two different behaviours. I’m asking which of those behaviours is consistent with the behaviour on windows and Mac OS, so my program would play nicely with Duplex or any crossplatform program designed to use the launchpad.

By the way, I’ve just updated my repository - you saw an old version of the code.

Update: I found the bug in my program - I was sending events on the wrong channel (which are numbered on 0-F, and not 1-16). Silly me. Now Duplex is working nicely !