MIDI: How to enforce a minimum note duration

Hi Forum,
being a pretty bloody beginner with Cantabile (Performer), here’s my problem:
I’d like to play MIDI files back to a Disklavier (a real piano with MIDI input to activate its keys) and I notice that some notes simply don’t sound because they are too short in combination with their velocity to overcome the inertia of the magnetic actuators. So in order to make them sound they need to have a minimum duration no matter what the MIDI file says. Ensuring a minimum velocity for MIDI output is easy, but -
here’s my question: Is there a way to achieve a minimum Note-On duration with Cantabile, and how?

  • Ideally there should be a live solution, i.e. monitor each Note-On event and postpone a related Note-Off event until the defined minimum duration for this note has elapsed.
  • The second-best solution (because this would need touching each MIDI file) would be to automatically edit the MIDI file in advance to move Note-Off to ensure the minimum note duration.
    Any hints for either of these approaches? Possibly some existing solutions or templates to get started?
    Thanks in advance - Peter
1 Like

Hi @PetMei,

There’s nothing built into Cantabile that can do this. Best bet would be to try and find a plugin that can do it but it sounds like a very one off specific issue which I’d be surprised if there’s something available.


This would be helpful for EWI players, too. My Yamaha is soo bloody sensitive I get a lot of extraneous noise.

I wonder… would VeloScaler be of help in this?

1 Like

The only solution I can think of ATM would be to write a script for ReaJS that does that. You’ll need to know basic programming, and it’s a bit fiddly, because ReaJS works in buffers, and to enforce minimum length, you’ll need to work across buffers. No easy solution, unfortunately.



Is there any reason why you need to increase Duration, and not Velocity?

Velocity would be easier to fix.