Understanding Program Change messages

I’m trying to understand the program change options on OT. The manual doesn’t seem to describe what I’m seeing with midi monitor. There seem to be two types of program change messages I can send: those that I configure on a midi track and those that are sent when I set a specific program change channel in the settings (instead of AUTO).

If I have 2 patterns/tracks assigned to separate parts, each one set to channel 1 but different midi programs, and send channels = AUTO in settings, when I switch patterns I see:

07:41:33.705	From UMC404HD 192k	Program	1	11
07:41:34.406	From UMC404HD 192k	Program	1	21

As I would expect. It sends them on the channel assigned to the track to the programs I set.

But if I set send channel = 16 in settings I get:

07:47:28.166	From UMC404HD 192k	Program	1	11
07:47:28.167	From UMC404HD 192k	Program	16	1
07:47:29.620	From UMC404HD 192k	Program	1	21
07:47:29.621	From UMC404HD 192k	Program	16	2

So when you set a specific program change channel OT will send PCMs on BOTH the configured channel and the track’s channel!? At first I was confused by the program number for channel 16, why the program number wrong? But if I switch to bank ‘B’ it starts to make sense:

22:32:15.332	From UMC404HD 192k	Program	16	17

I got program 17 because i switched to B01 (bank B pattern 1 which corresponds to the 17th overall pattern). (I didn’t get a program change for channel 1 because it’s an empty bank so nothing on channel 1 changed.) But the super interesting thing is that the PCMs on the configured channel are hard coded to match the bank/pattern on the OT. Did I miss this in the manual? I see that it has to be this way otherwise you wouldn’t know which track’s program to choose send if they all had different values but nothing explains it.

That brings me back to the AUTO setting. What it seems to mean is “disable the extra channel sending hard-coded PCMs”. I don’t understand what’s “auto” about it.

There are actually 2 different program changes on elektron machines, you guessed it right.

One is the “elektron” one and is specially designed to be sent between all connected elektron boxes. It has fixed numbers which correspond to banks and pattern numbers. Same pchg value will always call the same pattern in the same bank on each machine. especially usefull if you work with corresponding structures on every elektron devices you use. ( OT pattern B09 is meant to be played with DN pattern B09 and A4 pattern B09 for exemple ).

The ones you setup in the midi seq are more inclined to be used with other manufacturer’s synths and are freely modifiable ( IE independant from pattern/bank number ). There are sent at pattern switches ( step 1 ) only if different from previous pchg from same channel and at part change ( at the moment you switch ).

1 Like

Awesome thank you! Do you know what “AUTO” is supposed to mean? Also, where might I have seen the “elektron program change” documented?

For pchg : Projects/midi sync. Page 40 in the manual.
Auto channel is the channel used to control active track. Page 41 in the manual.

Beware! In SYNC page, AUTO doesn’t mean Auto Channel, but the lowest audio track midi channel (default is 1) not shared with another midi track channel?! (Check manual)

Clear as mud? In other words, don’t use that AUTO setting, and choose a channel 1-16.

1 Like

My bad, I thought OP was talking about the auto channel… :face_with_hand_over_mouth:

1 Like

Here is the mysterious section from the manual:

PROG CH SEND will when checked send out program change MIDI messages when the active pattern on the Octatrack MKII changes. Which channel the messages are sent on is controlled by the setting below.

CHANNEL sets which channel the Octatrack MKII should send program change messages on. The LEVEL knob is used to change this setting. If AUTO is chosen the first MIDI channel used by the audio tracks, and not used by any of the MIDI tracks, will be used. If CHANNEL is set to a specific MIDI channel, that channel will be used to transmit program change messages.

Re-reading this now, I understand that they are talking about the “elektron” program messages only. It has nothing to do with PCMs from on the individual midi channels. Those are sent regardless of these settings - they’re sent even with “send” unchecked. I think my whole misunderstanding centered around this. I do wish the manual were somehow more clear about it.

Previously I had disabled all the audio midi channels in the MIDI CHANNELS page so that explains why I didn’t get “elektron” PCMs with the AUTO setting. Now I’m able to get PCMs on the channel assigned to the lowest numbered audio track in in the TRIG CH section of MIDI CHANNELS.

So AUTO means: use the channel assigned to the lowest numbered audio track that isn’t already assigned to a MIDI channel.

Why would anyone want to do that? How are the audio track’s midi channels related to “elektron” program change messages (other than this strange setting)?

This is a mystery. It’s best to simply ignore this “AUTO” setting, as @sezare56 advised.

3 Likes

Yes, even knowing perfectly the rules, much simpler / safer to choose the Sync page PC send midi channel yourself. I’d remove that AUTO setting.

For me there is only one type, midi standard.
Just 2 different ways to send them.

  • In Sync page to sync patterns.
  • In Midi Tracks to change synths/fx patchs.
2 Likes

Related :

HOW MIDI IS ROUTED
If an audio track and a MIDI track share the same MIDI channel, the MIDI track will block the audio track from sending out data while the audio track will block the MIDI track from receiving data.

1 Like

It is standard midi Indeed , but one is obviously less flexible which sets it apart from a more general use. Hence why I call it "elektron program change"in a way that it is especially best suited for chained elektron devices…
It will be very unlikely that I would need to send a different program change for each pattern I play, in my workflow at least.

1 Like

They do result in midi standard messages of course. The difference maybe hinges on what you think of as “type”. There are several aspects that distinguish them so for me a “type of thing” works here. Maybe a name change will help. How about Sync and Track?

Sync type:

  • Always sent when pattern changes
  • Always sent on Bank 0
  • Program number linked to pattern number
  • Is sent on channel configured in Sync page settings
  • Can be disabled in Sync page settings

Track type:

  • Only sent when program or bank changes value on the same channel
  • Is tied to the track/part
  • Is sent on configured channel
  • Always sends configured program/bank
  • Is always sent regardless of Sync page settings

Also the fact that they can both be happening simultaneously leads to situations where it is handy to be able to name them independently, like in the logs from my first post.

Yeah, another type of type then. :content:

I guess you mean Sync page settings.
Better to precise imho.

1 Like

Fixed thanks!

1 Like

Not sure if you mentioned it clearly : A Midi Track PC require a Part Change to be sent (unless you change it manually).

Also, a similar PC is not sent consecutively, ie you can’t recall the same patch with 2 different patterns having different parts.

To be verified. I think I did, a while back.

1 Like

I find this “type” distinction misleading.

They’re all programme change messages, and as such will have whatever effect on the receiving device is defined by that device (and its configuration). Any conflict/problem/strangeness which occurs at the receiving device happens precisely because it can’t distinguish between the “types”.

Perhaps it’s a terminology thing, but I struggle with the idea of “types” when the thing in question is the same format and definition in all circumstances.

All this aside, I agree the OT (and other Elektrons) send these messages in two circumstances. If you want to call those circumstances “types”, that’s fine.

I think we have two strange things going on here:

  1. Elektron’s choice to use Programme Changes to trigger pattern changes (it only makes sense if you remember patterns have a kit or part associated with them). I’m surprised they’re not CCs.

  2. The OT’s “blocking” behaviours of Audio and MIDI tracks. I’ve not encountered it in a DAW. I can’t decide if Elektron have done a clever thing, that helps you, or an annoying quirk that’s more trouble than it’s worth.

1 Like

That’s great for midi loopback!

Most annoying things for me : Part changes needed to send Prog Changes with midi tracks

Impossible to plock Prog Change (was already possible on Machinedrum, Monomachine)

Similar midi messages not sent twice consecutively, except notes, clock…

1 Like

I’ll try that out one day! :wink:

1 Like

Yes! To further elaborate for those new to OT: each Pattern is assigned a Part and Parts store all of the Track settings (including midi tracks in this case). If two Patterns are assigned to the same Part then no PC messages will be sent when switching between them because nothing will be changing. The OT is diligent about not sending redundant PC messages. For example, if you change to a part with a different program but the same bank only the program change message will be sent.

This has the consequence of not being able to “restore” a patch to it’s saved state on the receiving machine even if that’s what you wanted. Is this what you were pointing out @sezare56?

I’ve verified it at least 100 times in the past day :smiley:

1 Like

Or any other midi message, which is annoying.
Ok it can reduce midi data, but I know how to.
Option please !

1 Like