Note On with Velocity 0 not recognized by BMT

sjcaldwell

2016-12-22 23:09:13

In BMT 1.8.1 build 138 for Windows. If I try a translator (either incoming or outgoing action) with Note On at velocity 0 (which my launchpad mini sends). I get an error that the velocity is out of range. A work around is to look for Raw midi. In this case 90 28 00.

I spent many hours today trying to figure out this one.

florian

2016-12-22 23:42:12

Sorry for the confusion here. In fact, according to the MIDI standard, Note On with 0 velocity does not exist. Instead, it is equivalent to sending Note Off with Note-Off-Velocity 64*). Therefore, to capture Note On with 0 velocity, use the Note Off message in MT Pro. The Launchpad sends this when releasing a button, i.e. Note Off.

Florian

*) the reason is that on the MIDI-DIN transport, the so called Running Status scheme will compress better if Note Off is sent using the Note On status byte. Sending a Note On message with 0 velocity instead of a dedicated Note Off message does not make sense on USB, but it is perfectly valid MIDI, and some manufacturers also do it on USB.

sjcaldwell

2016-12-23 00:32:15

Unfortunately this is not what Launchpad mini sends. It sends note on at zero velocity upon button release so I have to use this.
I validated what it was sending using the BMT log.

florian

2016-12-23 01:01:24

hmm, I don't understand, because that's what I said (or at least what I meant): the Launpad sends a Note On status byte (90) with 0 velocity, but that's, per definition, interpreted as a Note Off message. Therefore, just select Note Off in MT Pro and you'll catch it. Also, using MIDI Capture in MT Pro for the Launchpad buttons will give you Note On for press, and Note Off for release.
So, for once, I do say: it's not a bug, but a feature (as in: both Launchpad and MT Pro behave correctly per the MIDI standard).
Makes sense?
Florian

sjcaldwell

2016-12-23 01:05:05

I can do that but since I have a work around using raw midi, I'm OK. Thanks!

Again, my launch pad mini is not sending note off messages. It is sending note on with velocity of 127 for push and note off velocity 0 for release. I'm not sure what full size launchpads send because I don't have one.

florian

2016-12-23 01:24:42

I believe we're still misunderstanding each other. Have you actually done MIDI Capture with your Launchpad Mini?
Then you'll see, e.g., this:

Code: Select all

MIDI 90 05 7F
Note On on ch. 1 with note 5 and velocity 127
Note On on ch. 1 with note 5 set 'pp' to velocity

MIDI 90 05 00
Note Off on ch. 1 with note 5 and velocity 0
Note Off on ch. 1 with note 5 set 'pp' to velocity
The first 3 messages for down press, and the other 3 messages for release. There's the Note Off!

As you know, there is also the dedicated Note Off message (with status 80 hex). MIDI Translator will trigger the Note Off action for all "80 xx yy" Note Off messages, but also for all "90 xx 00" messages, because it's equivalent to Note Off, by definition. "90 xx 00" is not ever interpreted as Note On.

Of course, you can use "90 xx 00" in your incoming action, but your project will not work with devices which send the explicit 80h Note Off message for releasing a button.

Thanks,
Florian

sjcaldwell

2016-12-23 02:06:41

Yes I understand,

LP Mini is sending 90 05 7F for note on and 90 05 00 for note off.

When setting up midi translator I was checking for Note on with velocity 0 which doesn't work but midi capture of
90 05 00 does.

Based on what you explained, I suppose the following will also work

Note Off
either
90 05 00
or
80 05 XX

What didn't work is trying to capture Note on with velocity zero which as you explained is not in the midi spec.

I just capture raw 90 05 00 on that device to initially solve the problem and I don't think it will have any side affects since I'm only
monitoring my LP mini for this message.

The incoming midi messages from the LP mini is as you described. I just can't capture with note on velocity 0

sjcaldwell

2016-12-23 18:54:34

This is to confirm that note off message also works in place of note on with velocity 0.

I usually do not mess with stuff once it is working like I want however in this case I made an exception so I would have this info for future reference. I simply disabled the old translators in case I ran into trouble.

Thanks Florian for your explanation!

florian

2016-12-28 16:27:24

Hi sjcaldwell,
thanks, that's great to hear. I feared I'd upset you by being too stubborn!
Best,
Florian

sjcaldwell

2016-12-28 16:54:18

It takes a lot more to upset me. :)