Midi behaviour note "legato "

(calimerox) #1

Hi there,

it is a weird thing. when i draw in a midi note, sometimes it will be played back “legato” as long as the note is, sometimes it is just the first attack that is sent to the synth plugin and thats it. is there a way to control that behaviour? thank you!

(Rghvdberg) #2

It’s a known bug. Not much you can do about it afaik.

(calimerox) #3

thanks, good to know!

(Robin Gareus) #4

In Ardour 5.12 the four main MIDI issues are

  1. MIDI buffering/read-ahead
  2. Rounding issues muslc-time (bar/beat) to/from audio-time (sample, timeline position)
  3. Plugin automation interfering with MIDI events. VST plugins only
  4. Looping

While there is no proper fix for either in Ardour5, you can mitigate or work-around some of the issues

(1) Preferences > MIDI > Buffering ; lower read-ahead to 0.1sec
(2) The main issue here is with notes that start or end exactly on region boundaries. You can try to extend the region, so that there are no note events on the boundaries. Also try to nudge the region by 1 or 2 samples that may fix rounding issues.
(3) If there is a parameter-automation for a plugin, that may interfere with VST synths (MIDI CC automation is not affected, nor are other plugin standards). Avoid direct automation of VST synths.
(4) Disabling seamless looping in Preferences > Transport can help.

EDIT: 5. Overlapping MIDI notes can also result in stuck notes.

(calimerox) #5

these are helpful tips, thank you so much.

I ll stick to these for the midi stuff i have done so far…

(synthesis) #6

to issue 3:

For me the issue occurs only if i set a automation point to begin or end of a midi note. If i set a automation point before, during or after a midi note all works fine.

(Robin Gareus) #7

Yes, or anywhere in between.

The technical reason for this is, that Ardour splits the plugin’s process-cycle at automation points. This is done in order to reach the value of every given automation-point (and not average it away).

For example: Instead of normally synthesize (duration = 1024 audio samples), Ardour does

  • synthesize 123 samples
  • change automated parameter, inform plugin about parameter change
  • synthesize remaining 901 samples

However, for VST plugins, Ardour sends all MIDI events for the complete cycle (here 1024 audio samples) to the plugin. This can result in lost or duplicate events. Also some plugins cannot cope with smaller cycles. A fix and a workaround for this already in place in Ardour/git.