Transform an incoming MIDI stream to automatically send MIDI off messages?

I’m using a Freedrum virtual drum controller. https://freedrum.rocks

When I attempted to record their MIDI output into Cubase, I discovered that they don’t send MIDI off messages.Is there a way to transform an incoming MIDI stream to automatically send MIDI off messages after a certain duration? I’ve tried to figure it out using MIDI transform, but I get lost in the options.

Just to double check, did you open a MIDI Part in the MIDI List Editor to verify the lack of Note Off messages?
I don’t know of any features that would add a Note Off message in real time, sorry.
Have you tried contacting the manufacturer?

I used MIDI monitor to look at the MIDI stream and verified that there are no note off messages.

And I have contacted the manufacturer.

Do you really need Note Off?

A Note On message that has a velocity of 0 is considered to actually be a Note Off message, and the respective note is therefore released. See the Note Off entry for a description of such. This “trick” was created in order to take advantage of running status.
A device that recognizes MIDI Note On messages must be able to recognize both a real Note Off as well as a Note On with 0 velocity (as a Note Off). There are many devices that generate real Note Offs, and many other devices that use Note On with 0 velocity as a substitute.

Source: MIDI Specification: Note-On

Cubase uses Note On with velocity=0.

If triggering drums they are usually one shot anyway. I don’t know of many that do send note off

I guess Note On with velocity=0 would be alright as well. Is there a way to make it happen?

The Cubase MIDI monitor displays text in red saying “OverlappingPitch” so it seems it doesn’t like that.

Basically what happens is that any MIDI note recorded creates an event that starts at 0 and runs as long as the part no matter when it was actually played.

I’ve just used a trial copy of Bome MIDI Translator Pro and it’s basically solved the problem.

I’ve created a patch that outputs a MIDI note off message 1 millisecond after the MIDI note one message. There are still a few stray notes that seem to escape and become infinite in length, but they have the right start point so all I have to do is use the logical editor to change all the notes to the same length.

If the controller only creates Note On with velocity >0 then you should contact the maker of that product and complain about the midi implementation from their side. Sending a “note is finished” is so elementary to MIDI since the 80’s that I cannot believe Freedrum is not doing this correctly.

2 Likes

Freedrum was very responsive and have released a firmware update so that the kit now sends MIDI Note Off messages.

I’ve tested it in Logic, Garageband, Reaper, and Live, and it works perfectly.

The weird thing is that it’s still broken in Cubase. But it’s broken differently now. Instead of creating notes with infinite length starting at 1.1.1.0, it now creates notes with a length of 0.0.1.6 starting at 1.1.1.0.

It’s really strange. For some reason, Cubase sees the Note On and the Note Off arriving at the same time. Even though MIDI Monitor shows that there is time between them.

I’ve attached a screenshot showing MIDI Monitor and the Cubase MIDI Monitor side by side, and you can see the difference.

And even more odd - I can get it to work running it through Bome MIDI Translator into Cubase using only the MIDI through function with no translation at all - simply passing the MIDI from the input to the output with no modification. For some reason, Cubase then recognises the time between Note On and Note Off.

My setup:
Cubase Pro 12 12.0.6
MacOS 13.2.1

Nice to hear that the good folks at Freedrum released an update fast.
Your new issue looks weird to me. Unfortunately as I don’t have the product myself I cannot check if it is a general problem with Cubase or possibly based on whatever is happening on your system.

My advice at this point would be to elevate this to Steinberg support directly (open a ticket). However, they have a reputation for working at glacial speed. Rumors are that recently a snail overtook Steinberg support on the highway.

You might try turning on Use System Timestamp for […] or switching the method

image

Thanks. I’ve opened a ticket, we’ll see what happens.

I’ve tested it with Cubasis on iPad, and it works with no problem. Completely different codebase though.

I’m on MacOS, and unfortunately there are no configuration options at all in the MIDI Port Setup area

What I’m seeing via MIDI Monitor is about a 30ms gap between Note On and Note Off, which should be just fine - it works in everything except Cubase.

The strange thing about it working with the Bome->Cubase setup using only MIDI Thru is the Note Offs are being sent at the same time but the Note One coming from Bome is one millisecond later than the one coming directly from Freedrum - but not consistently. Sometimes they’re perfectly in sync.

I can see no significant difference in the two MIDI streams - there really should be no reason for it not to work correctly in Cubase.

What is odd is that all other drum controllers work with Cubase fine. I know all the Roland/Yamaha/Pearl/2box/Alesis etc electronic drums work no problem and on the vdrum forum there has never been a mention of this problem from any drum module used for triggering. Freedrum must be doing something different ?

… this may be a silly question, but do you have an automated quantize turned on in Cubase ?

Not a silly question at all!

I double checked, and AQ is not turned on. I even tried turning it on to see if that made a difference, but unfortunately I didn’t.

It’s very odd. And it’s odd that it works in Logic Pro, Live, Garageband, Reaper, Cubasis, and Garageband on PadOS, just not in Cubase on MacOS.

I seem to recall in the back of my mind that I had a similar “infinite note” problem in Cubase years ago, but I don’t remember the cause or the solution, and Googling has not helped me find it.