Filtering short duration notes


I really tried to do this myself but ended up with errors in the rules section and am not sure how to solve it.

Basically, as part of my ongoing mission to reduce glitch notes on the EWI, I am going to experiment with filtering out very short duration notes (which are usually the blips). I noticed a thread on double triggered notes, would it be something along the lines of this? I’m not a programmer or coder so this is all quite technical for me.

This type of manipulation would be very difficult to do for Bome MIDI Translator. First we would have to wait for the note to finish before we did anything so you would be introducing latency. Then we would have to keep track of the length of all incoming notes and then regenerate the notes of the proper length (with the latency introduced).

Probably better to work with the manufacturer to get the product working correctly if in fact it is the problem. Bome MIDI Translator Pro can do a lot of things well, but this isn’t one of them.

Steve Caldwell
Bome Customer Care

Also available for paid consulting services:

Thanks Steve, I have spoken to the manafacturers and they are aware of this problem with a firmware upgrade planned (but no idea when). Noted about latency, I’ll think of others ways to tackle this problem.

I agree with Steve that trying to remove very short notes will introduce overall latency, so probably not a good solution. But what about making very short notes longer? so that they aren’t short notes anymore? That could work in MT Pro.

1 Like

You can try the below.

The first translator (0.0) captures the note-on note number in ga, the velocity in gb and sets the note state to 1 (On) in gc.
The global variable ge is set to zero meaning the note has not fired. We set gd to the minimum amount the note must be on in order to send the note. I set it for 100ms.

On output I fire a one-shot timer ‘Note-OnTimer’ (0.2) with the delay I set in gd.

0.1 simply sets the value of gc to 0 meaning note-state is no longer on, then it sets the note-off timer with the same delay so the note-off will get delayed by the same amount as the note-on (if fired)

0.3 is the note-off timer. The rules set the note-fired state to 0 (not fired). If the the note has been released (gc==0) then the note-on doesn’t fire. If the note is still on se set fired (ge) to 1 and send the note.

Theoretically I think it should work but give it a try. You may need to mess with the delay amount in translator 0.0 (gd)

As stated earlier, in this case, we introduce a minimum latency of the value of gd. In my experience, if you are monitoring your performance, any thing over 10ms is going to be quite aggravating so you should probably have some method of monitoring the performance (with stray notes) before the latency occurs or not monitor at all.

Suppress-Short-Notes.bmtp (1.9 KB)

Steve Caldwell
Bome Customer Care

Also available for paid consulting services:

Thanks Steve for unpacking a possible way, I will give this a shot!