Notes “dropped” when generated by MIDI plugins

1. Summary/Title
Notes are audibly dropped from MIDI plugins which generate consecutive notes.

2. Description

  1. Start a new project
  2. Create a MIDI track
  3. Add a MIDI effect plugin which can generate notes, e.g. Atom 2
  4. Add consecutive quarter notes to Atom, up to the loop point, e.g.

  1. Make sure Launch is enabled in Atom and hit play in Cubasis.
  2. You should be able to hear that there are dropped notes as the Atom pattern loops.
  3. To confirm this you can use another Atom instance after this one in the chain to record the output, e.g.

Observations:

  • EDIT: I forgot to mention a very important point that when freezing a track then all notes are present and correct. This includes when I’m using one Atom sending to another Atom in the chain to trigger Atom patterns. I hear problems with patterns being triggered correctly when just hitting play on the transport but everything is perfectly rendered if I freeze the track. I need whatever is happening under the covers when freezing to happen when playing realtime.

  • The same MIDI played from the CB3 timeline records into Atom without dropping notes:

  • I see this issue when using other plugins as the note producer and recorder. For example, Helium as the producer or recorder. ChordJam as the producer and either Atom or Helium as the recorder. Basically any app which can output the same note consecutively can be affected by this issue.

  • I do not see this issue in, for example, AUM. Here one instance records MIDI perfectly from the other:

3. Expected Results
Data generated by MIDI plugins should be transmitted through the MIDI chain with the same accuracy as MIDI being sent from the CB3 timeline. This is especially important when using Atom for pattern triggering as this relies on consecutive notes being reliably sequenced so that patterns are reliably triggered.

4. Actual Results
Notes are either seemingly dropped or their lengths are incorrectly very short.

5. Environment
Air 4, latest CB 3.3, iOS 14.4.2

Further testing suggests that this issue is caused by CB3 sometimes getting the order of note on/off confused when passing on the output from a MIDI generator in the effects chain. Here is the output of StreamByter for a note which I can see was “missed” in the recording output:

I have highlighted the notes which I think have been received in the wrong order.

I reported this issue already shortly after release of 3.3. I have this issue with my external sequencer Arturia BeatStep pro. Sometimes notes are dropped. If it happens to a note off message then you have a hanging note. AFAIK the fix for this is scheduled for the upcoming 3.3.1 release.

Thanks @krassmann , fingers crossed!

And the 3.3.1 update is planned to arrive sometime soon…

@LSlowak I’m afraid the 3.3.1 release did not fix this issue for me. The recreate as described in my post still fails. Here is a new screenshot from 3.3.1:

If it helps any then I no longer see the issue when using Helium as the MIDI generator but do when using Atom 2.

I also noticed that MIDI records from the producer plugin to the CB3 timeline correctly. As mentioned in the initial bug report, the track freeze also renders all notes.

Hi @misplaced,

Thanks for your additional report, which helped our engineers to reproduce the problem, which is planned to be resolved in the next update (CBT-2680: Skipped notes when passing from MIDI effect to the next MIDI effect).

As a workaround, does it help to resolve the problem via shortening the notes by a tiny bit?

Best,
Lars

Hi @LSlowak, thanks to you and your team for getting to the bottom of this!

Technically, it does help to shorten the notes but in this scenario the note length is significant as the notes are used as a trigger for Atom 2 patterns. As long as the note is held then the pattern plays so cutting it short would also cut short the pattern being played. In practice this is rarely a problem and so in theory I could work around it by adding a very small gap between notes but for now I am more than happy to wait for the fix from your team.