Digitakt not sending bank select (patch works)

Sorry, nuance wasn’t relevant for my point/post :grinning:

My thinking when it comes to standards is binary. Either you follow the spec or your don’t.

But I understand it’s more nuanced, just wanted to add my 2 cents. Thats what forums are for right?

2 Likes

The MIDI specification is about the interoperability of devices.

The problem for the subject of this topic, based on the replies we have received, is that we can’t assume that the decision-making part of Elektron on this matter does understand the MIDI specifications for transmission of Bank Select.

The official word that you cited here says “Mininova expects CC 32 and not Bank Select” which is further illustration that Elektron’s misunderstanding is the cause of the problem.

Regarding the handling of incoming messages, that’s up to Elektron to decide. If they choose not to implement a feature in a specification, and break convention for their own instrument, so be it.

The problem here is that the outgoing Bank Select message feature is implemented, but not implemented correctly.

That’s exactly the point! A transmitter that implements “Note On at zero velocity” for Note Off is confirming to the MIDI spec and a receiver that does not respond appropriately to this is harming interoperability.

1 Like

Using Control Change message numbers below 120 for purposes other than those listed in https://www.midi.org/specifications/item/table-3-control-change-messages-data-bytes-2 is not in violation of the MIDI specification. The specification does recommend that “the manufacturer informs their users of the fact that a device is using non-standard controller assignments”.

There are a lot of undefined and general purpose CC numbers available, so in almost all cases there’s really very little need for what you describe in your example.

The MIDI specification has always clearly and explicitly stated that a Note On message with velocity 0 is equivalent to a Note Off message.

In general, I think a lot of confusion regarding MIDI comes from assumptions people make based on their personal experience with their own setup. Reading the specifications can really help understand why things work in a certain way, and how some things can be done in more than one way.

1 Like

And indeed the guidelines on this very forum

I’ve done some testing and bank select sure is one of those things were every manufacturer has done pretty much its own thing.

Roland D-05

When you change a patch using the buttons on the D-05 itself, it always sends a bank select. The D-05 never sends only a Program Change message, even if you choose a patch within the same bank.

When changing to P1-11, the D-05 sends:

0xB0, 0x00, 0x57  (bank number MSB)
0xB0, 0x20, 0x08  (bank number LSB)
0xC0, 0x00        (program change)

And when changing to U2-88, it sends:

0xB0, 0x00, 0x57  (bank number MSB)
0xB0, 0x20, 0x01  (bank number LSB)
0xC0, 0x3F        (program change)

Even though the preset banks come before the user banks on the hardware, the user banks are numbered before the preset banks in the bank number LSB.

What’s seems rather weird to me is that it sends a MSB with a fixed value. This means that using the full 0-16383 range according to the MIDI specifications, the U1-U8 and P1-P8 banks would be numbered something like 11136 - 11152 which seems inconvenient.

The Roland D-05 will still happily change banks when you leave out the MSB. This means that sending the following is equivalent to the examples above:

Instead of the above, you can also change to P1-11 on the D-05 by sending:

0xB0, 0x20, 0x08  (bank number LSB)
0xC0, 0x00        (program change)

And you can also change to U2-88 on the D-05 by sending:

0xB0, 0x20, 0x01  (bank number LSB)
0xC0, 0x3F        (program change)

However, when you try to perform a bank select with the MSB set to a different value, the D-05 will ignore any further program changes until you send a bank select with the MSB set to 0x57.

Pioneer Toriaz AS-1

When you change a patch using the knobs on the AS-1 itself, it always sends a bank select. The AS-1 never sends only a Program Change message.

When changing to U1 P1, the AS-1 sends:

0xB0, 0x20, 0x00  (bank number LSB)
0xC0, 0x00        (program change)

And when changing to F1 P99, the AS-1 sends:

0xB0, 0x20, 0x05  (bank number LSB)
0xC0, 0x62        (program change)

As you can see, the AS-1 leaves out the MSB entirely.

The AS-1 will still happily change banks when you include any MSB value. It just seems to simply ignore this completely.

Roland SE-02

I haven’t found a way to make the SE-02 send program changes, but I might be overlooking something obvious.

The SE-02 will respond to bank select, but it uses the value of the MSB to change banks and completely ignores the value of the LSB!

You can for example change to bank C, patch 3 by sending:

0xB0, 0x00, 0x02  (bank number MSB)
0xC0, 0x02        (program change)

The SE-02 will still happily change banks when you include any LSB value. It just seems to simply ignore this completely.

Summary

D-05: Requires LSB. MSB is optional, but must have the value 0x57 when included.
AS-1: Requires LSB. MSB is ignored when included.
SE-02: Requires MSB. LSB is ignored when included.

Given these results, I am now convinced that @PeterHanes suggestion to have two separate bank knobs, one for the MSB and one for the LSB, that can both be enabled and disabled independently is indeed the only way in which bank select can be made to work for everyone.

Something I forgot to mention before…

This thread contains something of a “workaround” that allows you to change banks on some external devices using a knob on the DT by setting up CC 32 for that knob.

This can be used for manual remote control, but it can not be used to change banks when changing patterns because the DT sends the program change before the CC that’s locked to the first step of the pattern (which is in itself sensible behavior, but not for bank selects…):

I sincerely hope this issue will be resolved in the DT update that @Ess announced yesterday. And if not, that Elektron is aware of the intricacies of the bank select issue and plans to fix it later.

The DT is a lot of fun for live perfomances, and it works really well as a quick MIDI sequencer for external gear for me, if only I could rely on that gear switching to the correct patch in the right bank when I change patterns.

With regard to using Note On messages with value zero, instead of using Note Off messages, this is more efficient and hence is adopted by most sequencing applications.

1 Like

thanks so much for sharing this.

It’s sold my bank change issues with various VSTs that I’m controlling from the digitakt.

Yes it might seem a bit of a backward step but I love having the digitakt as the hub and Ableton as the slave that is simply hosting my favorite VSTs.

Dream setup. Thanks again this is a massive problem solved

1 Like

You’re welcome! Exactly why I posted it. I always appreciate when others post the answers on their specific questions. Cheers!

1 Like

A post was merged into an existing topic: Midi bank change

I’m having this same issue, it looks like the Bank parameter on my Digitakt is not working with any of my gear in the way that it should. Diving through all these posts, it seems that Elektron is not conforming to the spec that other manufacturers are. Why don’t they change this? Has anyone gotten an answer?

The DT transmits Bank Select values from 1 - 128, but my Roland XV expects values in LSB/MSB format. Any ideas how to convert it?

1 Like

same problem with the JV-2080

@krunchr @jaw
You can set the DT’s MIDI parameters to send these messages.
On the AMP page, set one knob to MSB and one to LSB (I think these are CC 6 and 38 but you might need to double check this - they are actually labeled as MSb and LSB in the DT when you get to the right one so shouldn’t be too hard to find)
On the FILTER page, hold FUNC + press the encoders that match up with the ones you set on the AMP page, to enable them. Then set them to whatever MSb and LSB values your equipment needs.
Can’t comment on your specific equipment and you’ll probably need to mess with it some until you find the “magic numbers”
I had to do this to send program changes to the Roland MC-303, but one of the numbers was off by 1, I forget which, but say for example in the MC-303 manual it had something listed as “bank 1, sound 30”, I had to send like, bank 0, sound 30, or bank 1, sound 29, I forget which was off, but something was off. Also not sure if it was because of quirks in the MC-303 implementation or in the DT, or just a difference in approaches since decades have gone by :slight_smile:

Just last night I was experimenting with sending NRPN to my Micromonsta, that was even more tricky, but finally had success, so all the MSB/LSB/NRPN stuff is definitely possible

6 Likes

Solved it ! I was about to give up, and tried a last time to play with CC after reading your message, and finally found the right combination.
thx ! :smiley:

2 Likes

Hi guys,
On my Digi I send midi program changes to Minilogue - choose bank 1 and program 20 for example[SRC].
It works great when I choose presets 1-100, but when I try preset 101 I can’t because it stops changing on preset 100. I tried to switch bank to 2,3,… , but still can’t acces presets above 100 on my Minilogue;/
how idea what’s the problem?

Thanks!

If I remember correctly the digitakt has to send CC 32 to the minilogue (as well as program change as usual) to be able to select patches 100+

2 Likes

I believe that this is correct; if you send CC 32 with value 1 immediately before the Program Change message, the Minilogue should choose the correct program in the upper 100 locations.

Send CC 32 with value 0 immediately before a Program Change message to select a program in the lower 100 locations.

1 Like

14 posts were split to a new topic: Alesis NanoSynth problem

Thanks Peter! It works:)

1 Like