Digitakt not sending bank select (patch works)


#21

Great! Do post your solution if you can in case it will help other people in the same situation.


#22

A user on the Gearslutz Deemind12 thread provided the solution.

“In the SRC page, leave Bank empty (X). P-lock PROG for your Trigs with the respective Program number.
For the Bank switch, go to the AMP page and use BSEL LSB (32) for e.g. SEL1.
Go to the FLTR page and P-lock VAL1 with the Bank number (0=A, 1=B, etc.).”

I had everything but the leave bank an empty X set up so that is finally what did the trick!


#23

Can someone help me please. I have an Access Virus and Digitakt works fine with the Bank select and sound select knobs. But when I try to change the bank of my SH-32 after switching the bank, I try to chose a sound and then the screen on the SH-32 displays three lines - - - and the sound cuts out. I have no idea what this means. I have to press the value button on the SH in order to bring up the Bank and sound numbers. then the sounds play again. I can scroll through the sounds with the value knob on the Digitakt but as soon as I fiddle with the bank knob and then back to the sound value knob it glitches out. - - -


#24

This is the same problem as discussed above. The Digitakt does not send the correct Bank Select message for the SH-32.

The fiddly workarounds listed above may also work for the SH-32.


#25

I never got an email for this, but apparently they answered:

Hi, Have you tried using CC32 instead? The Mininova expects this instead of the regular Bank Change method. https://d2xhy469pqj8rc.cloudfront.net/sites/default/files/novation/downloads/9558/mininova-midi-implementation.pdf Regards, Simon M

Sadly, this makes it seem like the problem lies with Novation (and Acces, Behringer, Alesis, Clavia, DSI, Emu, Moog, Roland, Waldorf, Yamaha, etc), and it completely clears them of any responsibility.


#26

Really, their only responsibility is that it works across elektron devices as those are the only devices they produce. Yes, a lot of other synths send bank change differently than the elektron OT and DT but by the many replies in the thread there is a functioning way to make everything play nicely together.
Just my thoughts


#27

Elektron can choose how to handle program changes however they like, but I don’t like how they’ve implemented it at all. It’s just a source of problems, and forces everyone to have to use an awkward workaround when using the DT/OT with popular Roland, Novation, Berhinger, etc. gear.

I see zero benefit in the way Elektron chose to implement this feature. Sadly, this seems like one of those things that will never be improved because it’s not even considered an issue to them.


#28

I don’t know whether what you quoted is an official response from the developers at Elektron. Whatever the source, it is contrary to the actual MIDI specification, which states:

Control Change numbers 00H and 20H are defined as the Bank Select message. 00H is the MSB and 20H is the LSB for a total of 14 bits. This allows 16,384 banks to be specified. The transmitter must transmit the MSB and LSB as a pair …

Both Octatrack and Digitakt fail to do this. The implementation of the Bank Select by all the other manufacturers listed above is correct. It’s a great shame that Elektron doesn’t recognize this, not least because the problem should be easily rectifiable within the UI constraints of the two instruments.


#29

It’s an official reply. I’ve told them to look in this thread, but they clearly didn’t bother.
I’ve received another reply to a request for at least a setting to make it work for non-Elektron devices:


#30

Another reply:


I’ve only cut off the name, because there was a whole thing about privacy on here a while back.


Digitakt to Octatrack upgrade: Cons?
#31

So, at least the issue is on their feature request issue, even if the message you received does not quite acknowledge the actual details of the MIDI specification. Let’s hope they can get to it at some point.


#32

Thanks for pointing to this thread for the MIDI patch bank issue. I would really like to see my SH-32 operate at its full potential while switching tracks on my DT. Hopefully they will be able to generate a quick fix and implement that into the next big OS update = )

Please Elektronites!


#33

Just ran into this issue as well and it’s indeed rather annoying. The current behavior of the DT is clearly not following the MIDI specifications.

I just submitted the following ticket and I strongly urge anyone who has the same problem to submit a ticket as well. Feel free to use the same explanation, but make sure to only include references to synths you actually have tested with yourself:

Subject: MIDI Bank Select implementation is incomplete and doesn’t work with a lot of synths

It looks like the MIDI Bank Select implementation on the Digitakt doesn’t comply with the MIDI specifications. As a result, bank select doesn’t work with most synthesizers that support it.

I’ve tested bank select from the Digitakt with a Roland/Studio Electronics SE-02, a Roland D-05, and a Pioneer Toriaz AS-1 and it does not work from the Digitakt with any of these synths. On the Roland D-05, trying to do bank select even results in subsequent program change messages no longer working.

I can successfully perform bank selects on all these devices from other gear and from my computer by sending the correct sequence of MIDI messages according to the MIDI specifications.

 

If you’d allow me, I would like to first describe how MIDI Bank Select should be performed according to the MIDI specifications.

A bank select should always consist of two Control Change messages followed by a Program Change message. The Control Change messages select the bank number (0 to 16383), while the Program Change message then selects the program number (0 to 127) within that bank.

The control numbers for the Program Change messages are 00 and 32 respectively. CC 00 is used for the MSB (Most Significant Byte) and CC 32 for the LSB (Least Significant Byte) of the bank number.

Please note that a bank select must include both the MSB and the LSB sent using two Control Change messages (CC 00 and CC 32), even when the LSB is always zero because the receiving device doesn’t have more than 127 banks.

Also note that a bank select is not complete unless it also includes a Program Change message (sending a Program Change on its own is of course perfectly fine).

As an example, a complete bank select for program 13 in bank 3 should consist of the following 3 MIDI messages in sequence:

  1. Control Change message with control number 00 and value 00
  2. Control Change message with control number 32 and value 02
  3. Program Change message with value 12

 

Let me now describe the current behavior of the Digitakt:

When you turn the “BANK” knob (after enabling it), the Digitakt sends a MIDI Control Change message with control number 00 and the value the knob is changed to.

This means that the Digitakt does the following things incorrectly when the “BANK” knob is turned:

  • It only sends the MSB of the bank number.
  • It does not include a Program Change message.

When you change patterns to a pattern where the “BANK” knob is enabled, the Digitakt sends a MIDI Control Change message with control number 00 and the value the knob is set to, followed by a Program Change message with the value the “PROG” knob is set to.

This means that the Digitakt does the following thing incorrectly when patterns are changed:

  • It only sends the MSB of the bank number.

 

I would like to suggest the following changes to the behavior of the Digitakt to bring it in line with the MIDI specifications:

When the “BANK” knob is turned:

  • Always send both the MSB (CC 00) and the LSB (CC 32) of the bank number.
  • Always follow with a Program Change message.

When patterns are changed:

  • Always send both the MSB (CC 00) and the LSB (CC 32) of the bank number.

Personally, I don’t think it’s needed to extend the range of the “BANK” knob beyond 127. A benefit of not changing the range of the knob might be that the LSB (CC 32) can be hardcoded with a value of zero.


#34

It appears that some manufacturers have implemented bank select incorrectly, and that Elektron has followed that incorrect implementation because bank select behaves a little differently from CC messages in general.

On page 13 of the “MIDI 1.0 Detailed Specification 4.2” (page 45 of the “The Complete MIDI 1.0 Detailed Specification” PDF you can download from http://midi.org) the correct behavior for bank select is described in detail:

Bank Select is a special controller. […]

Control Change numbers 00H and 20H are defined as the Bank Select message. 00H is the MSB and 20H is the LSB for a total of 14 bits. […]

The transmitter must transmit the MSB and LSB as a pair, and the Program Change must be sent immediately after the Bank Select pair. If their [sic] is any delay between these messages and they are passed through a merging device (which may insert another message) the message may be interpreted incorrectly. […]

What’s confusing is that the same document earlier states that with CC messages in general, you can simply leave out the LSB to get 128 steps of resolution without also mentioning that bank select is a special case that always requires both the LSB, MSB, and the Program Change message in that order.


#35

I can’t speak about the DT, but as the OT was mentioned above i’d like to add/repeat a thought

The OT can send the Bank Change MSB (CC 0) paired with a Prg Change from the MIDI note setup page - i think this is maybe sent when the part is changed (and when you change values)

I am rather bemused that the CC 0 message is used in this place as it’s far more likely (that i am aware of) that a manufacturer would use the LSB data (CC 32) to switch banks in conjunction with a prog change message

The question is why - there may be a reason, yes, you can use a CC lock (if you can coordinate the messages) to send CC32 from either of the Ctrl pages and use 1 of your 10 cc slots ahead of a PRG change which can only be sent from the setup page (or part swap ?)

Take Clavia or DSI, big players in the MIDI world, they do not even send the MSB part of the message when selecting banks/programs (at least on my gear) and the MSB message is not needed (and is unlikely to be so if you think that 128*128prg worth of patches is sufficient) - so these devices work on the MSB being implicitly zero

:small_blue_diamond:Which devices if any actually use/need the CC 0 message ?


remember - Elektron can adapt prog change messages whichever way they like, they use them to change patterns and in the OT these are split amongst (perhaps confusingly) banks - so 1st bank uses 16 progs then the next bank uses the next 16 program numbers

But when it comes to real world patch selection (if that is what these messages are intended for (in OT Midi Note Setup page) ) i am a little unsure - please note - it is common when messages like bank select are used to only send those when banks are changed, this reduces midi blockages - a similar scheme exists for NRPN messages (4x size of CC msg) so you only need to send the varying part to minimise traffic

However - if you want your OT to select the patterns in banks 9 and up (the OT has 8 bits worth of patterns, so it NEEDS a bank select message, this (CC 0) is ONLY sent for changes between patterns in the upper half to the lower half of the 256 possibilities) … so there’s a possible reason why the CC0 is used - but i’m assuming this is so that the mapping between two Elektron devices can be different - rather than following a one to one mapping if you select to output Prg Chg messages from the Main MIID config options in the project menu

So there’s nuance to this debate

The question is whether the adoption of CC 0 (and only that, there are three blank dials there to use) in this MIDI Note Setup page is deliberate or a case of using the MSB (through habit) as opposed to the LSB which would be more useful - as per some of this discussion


Sending repeat messages to support is not the way to improve things imho (for people awaiting support on other matters) - it’s a well known logged issue; can i respectfully ask for @Olle or @Ess to pass comment here as to the intentions of the Bank select found at Fn+Note in MIDI mode and perhaps clarify for the purposes of DT users here if the implementation on the DT is following the same logic (i don’t know what the DT UI looks like) … btw, the OT manual only references a parts association


BANK
can be used for sending out a bank change message. Bank 0 to 127 can be sent. The maximum parameter value is OFF, which will make the track not send out any bank change message. The setting made here is sent every time a pattern linked to another part becomes active.
PROG
can be used for sending out a program change message. Program 0 to 127 can be sent. The maximum parameter value is OFF, which will make the track not send out any program change message. The setting made here is sent every time a pattern linked to another part becomes active.

The off-topicness of this can be tidied later, i suspect the issues are related


#36

I think there are very, very few manufacturers that have a CC 0-only approach. In my experience, only Mutable Instruments Shruthi-1 and some aspects of some Korg gear do not use CC 32.

I strongly suspect that this is the origin of Elektron’s mistake in implementing Bank Select.


#37

I suspect that Elektron simply misunderstood the MIDI spec.

A large amount of Korg, Roland, Yamaha gear and a few others. As you pointed out, so does the OT (although Elektron could just have easily used CC 32).

This is absolutely correct and appropriate for Elektron instruments when handling incoming Program Change messages. The problem occurs in the DT’s MIDI sequencer tracks when wanting to send Bank Select messages to other gear that requires CC 32.

This problem began on the OT and was continued on the DT and it’s a reasonable assumption that it is also implemented on the DN.

The solution would be to add another Bank Select control for LSB on the MIDI sequencer pages of each instrument.


#39

How is the Bank Select Prog Change scheduled on the DT - does it have more than just CC control for each the 8 encoders or it is analogous to the OT and is something only sent at specified changes (not that useful in some senses, which is why I think the intent is different from the presented usage cases) ?

The OT can freely schedule both Bank Messages (which other devices can use/abuse as they please), just not the program change messages ! But this was iirc possible with the MNM - so there may be method to the perceived madness


#40

Even though the MSB is not needed to represent the first 128 values, it appears to be required by the MIDI specifications.

I can confirm that my Pioneer Toriaz AS-1 (which is for all practical purposes a DSI synth) does not send the MSB (CC 00), but only the LSB (CC 32).

I can’t think of a synth with more than 128 banks. I guess that when they added bank select, they wanted to make absolutely sure nobody would ever run out of 16384 banks times 128 programs…

That‘s correct, but the MIDI specifications make it very clear that bank select is supposed to be a special case. It seems that the incorrect implementation done by Elektron is the result of exactly this confusion.

Well, I don’t want anyone to break existing functionality, but I am currently unable to use the DT to do bank select on any of my synths. I’d love that to work. :slight_smile:


#41

I’m not sure if I understand your question, so excuse me if this reply is not useful, but the DT’s (and presumably DN’s) MIDI tracks can set default BS and PC values associated with the pattern and also p-lock these values on every step of the sequence.

MM and MD could also p-lock PC messages on every step. It’s only the OT that restricts the circumstances in which the PC messages are sent.