[2.2.64] Controller Tracking and Program Change

Hi team,

I believe I’ve identified an issue regarding enabling Controller Tracking and the Program Change message stored as a MIDI event in MIDI tracks at position 0001.1.1.

Let’s assume the simplest case, that is, having three songs, each with a MIDI track, and all three with the output port routed to an external device (but this also applies to any PGC sensitive VST):

  • Song 1

    • MIDI Track
      • 0001.1.1 PGC 001
  • Song 2

    • MIDI Track
      • 0001.1.1 PGC 002
  • Song 3

    • MIDI Track
      • 0001.1.1 PGC 003

ControllerTrackingAndProgramChange v1.zip (12.4 KB)

With Controller Tracking disabled:

  1. Load the project starting with Song 1 → The external device receives PGC 001
  2. Move to Song 2 → The external device receives PGC 002
  3. Move to Song 3 → The external device receives PGC 003
  4. Move to Song 1 → The external device receives PGC 001
  5. Move to Song 2 → The external device receives PGC 002
  6. Move to Song 3 → The external device receives PGC 003

With Controller Tracking enabled:

  1. Load the project starting with Song 1 → The external device receives PGC 001
  2. Move to Song 2 → The external device receives PGC 002
  3. Move to Song 3 → The external device receives PGC 003
  4. Move to Song 1 → The external device doesn’t receive PGC 001
  5. Move to Song 2 → The external device doesn’t receive PGC 002
  6. Move to Song 3 → The external device doesn’t receive PGC 003

Drilling deeper into the test with tracks containing the usual PGC at measure 0001.1.1 and other PGCs with values ​​different from the one at the start of the track, we note that the first PGC is ignored after being sent once for each song and, sometimes, even the second event contained in the trace is sent.

Let’s assume the project is structured as follows:

  • Song 1

    • MIDI Track
      • 0001.1.1 PGC 001
      • 0001.1.1 PGC 002
  • Song 2

    • MIDI Track
      • 0001.1.1 PGC 003
      • 0001.1.1 PGC 004
  • Song 3

    • MIDI Track
      • 0001.1.1 PGC 005
      • 0001.1.1 PGC 006

ControllerTrackingAndProgramChange v2.zip (12.4 KB)

With Controller Tracking enabled:

  1. Load the project starting with Song 1 → The external device receives PGC 001
  2. Move to Song 2 → The external device receives PGC 003
  3. Move to Song 3 → The external device receives PGC 005
  4. Move to Song 1 → The external device receives PGC 002 or nothing
  5. Move to Song 2 → The external device receives PGC 004 or nothing
  6. Move to Song 3 → The external device receives PGC 006 or nothing

Hoping I’ve provided enough information to address this issue, I look forward to your feedback.

2 Likes

Thank you, you are right.

The bug crawled in with version 2.2.57 where tracking was applied to plugins.

Please try again with the next version, sorry for the inconvenience and thanks a lot for helping with your projects!

1 Like

Hi @musicullum,

unfortunately, after testing version 2.2.66, I was very disappointed to find that when I enable Controller Tracking, no Program Change messages contained in the MIDI track seem to be transmitted at all.

When Controller Tracking is disabled, everything seems to return to normal operation.

The test involved both an external device and a VST. :roll_eyes:

For both of your projects, tried output to Virtual Midi Out 7 and MIDI Monitor to Virtual Midi In 7 to observe output. With, or without Track Controller setting, it transmits all Program Changes just fine, no matter which Song is selected in which order.

In fact, without Track Controllers enabled, it sends the Program Changes twice, which appears to be a bug (it locates twice when a Part is selected, and Chase Events chases twice, provided “Chase on Start” is disabled). But that should not cause any problems - ironically, this is where Track Controllers “shines” by omitting that 2nd (repeated) message :slight_smile:

Hi @musicullum,

first of all, thank you for your quick response. :blush:

I’ve redone all the tests with my two small projects, extending the cases to include the use of Virtual Ports and MIDI Monitor.

Although I had to revise a result I reported (the one related to VSTs), I still see an issue regarding a specific important scenario.

Below are the use cases and the test results.

First, I used the following configuration:

and all events in the MIDI track are correctly sent to the output port and everything connected to it.

Using the preferences instead:

I get:

  • OUT PORT: Virtual Port → The MIDI messages in the track are sent correctly, with the correct logic applied to avoid resending the same event (even when playback is interrupted :slightly_smiling_face:)
  • OUT PORT: a PGC-sensitive VST → The MIDI messages in the track are sent correctly, with the correct logic applied to avoid resending the same event (even when playback is interrupted :slightly_smiling_face:)
  • OUT PORT: an external deviceNone of the MIDI messages in the track appear to be sent to the device (I understand that this applies to both PGC and CC, and I’ve tested it on more than one external device).

I’m confident you can easily replicate what I’m observing and that you can provide a quick explanation/solution.

Looking forward to your further feedback.

VST Lives’ Virtual MIDI ports take exactly the same path as physical devices, whatever is beeing sent there is sent in precisely the same way to any other physical system port. Pls check the receiving device.

What you’re saying makes perfect sense, but, as I wrote, I tried more than one external device and got the same behavior.

By the way, just go to Preferences and uncheck Controller Tracking to immediately get the expected behavior from external devices.

It’s rather strange that you can’t replicate what I reported. :pleading_face:

We’ll check with other devices/MIDI Monitors.

1 Like

Thanks @musicullum, I eagerly and confidently await the outcome of this new test of yours. :crossed_fingers: