Correct. Bank Select is literally a hack to extend the range of the Program Change message.
Not. Again, I prefer Elektron to resolve this issue properly, even for gear that has implemented bank select incorrectly, or that has an insane number of banks!
what he said (implying for other manufacturersā devices)
if Elektron want to abuse the spec to fit their devices thatās their prerogative - you canāt just assume the functionality is there for all āstandardā usage cases
Elektron donāt use/support the āstandardā CC message for Pedal Sustain (and Iāve no issue with that)
Again - as I said in the first post - it needs an āintended useā comment - and as I also said - I think if itās for patch selection (w other non Elektron gear) then itās not been done in a useful way
How old is the OT ?! These guys have had ample time to change such a simple āoversightā - itās a no-brainer in terms of coding - but it persists - Iāve just been suggesting, wait, to see if thereās a reason for that being that (less than ideal) way
ā is it conceivable that the MSB message was adopted instead of the LSB message in error - yes - especially as itās the first one you āseeā - is that case closed then - no
yāall are pouncing on my words like Iām trying to stop a fix - Iām just offering counter-thoughts and Iāve made my preference clear (CC32 would be more useful) and if I had a DT iād certainly want that even more as the prg change messages are viable to use creatively
I think we can safely assume that on the Digitaktās MIDI tracks the intended usage case of the BANK knob is indeed primarily patch changes on external synths.
Sorry to make you feel like that. I think our goal here is to make the issue as clear as possible in the hope that the development team at Elektron picks up on it and fixes things.
The goals was not to make you feel bad, and I was not under the impression that you were trying to stop a fix.
Thatās how iād use it all day - but maybe itās legacy ā¦ for mapping Elektron patterns
Otherwise why have such a useless implementation in the OT - thatās certainly not useful for patch hopping - but itās perhaps (slightly)better for re-mapping patterns if users donāt want to go ālinearā by allowing the prg change messages out in the global āsyncā menu (for all pattern changes)
Thereās perhaps less justification for adopting CC0 to extend the pattern range (even if you never intended a device would send patch changes) ā¦ it might easily have been done with CC32 by default (but I only suggest that CC0 may be used as itās less likely to do something on an external synth if youād only envisaged using that bank/prg functionality to sync up your own products)
repeat point : iād want the CC32 followed by Prg change message too - it may also be an error - but itās not a given
I donāt feel bad - Iām just frustrated that thereās no flexibility in the insights offered - iād be disappointed if Elektron said āitās mainly for mapping patterns on our boxesā but I (obviously) wouldnāt be surprised - you guys just donāt seem to entertain this is even feasible, no matter how unpalatable
being able to change bank/prg as advocated above (using 32) would be better (but I donāt know the interoperability implications with older Elektron boxes or why CC0 was chosen, assuming it was (and it may not be) chosen carefully)
to be fair - I donāt expect the Elektron guys will be able to indulge us here in any case - theyāre just back from Namm , catching up and obviously shipping new gear etc
I would prefer Elektron to stick to the midi specs. Whats the point of having standards when manufactures do whatever they want? Imagine if they would do that with USB or HDMI or something. If you implement stuff that has a spec then stick to that spec.
The point of having the Bank Select and Program Change associated with the Part would be that the Part is like a āKitā of settings for both the audio tracks and the MIDI tracks. Not having Program Change per step on the OT is a separate issue, especially now that there is Program Change per step on the DT and DN.
The idea of including Bank Select for changing patterns only seems improbable given that the OT is the only Elektron device that has more than 128 patterns (which can be all selected using PC, no need for BS).
If a manufacturer only considers syncing with its own products, it wouldnāt be paying attention to what was implemented on another manufacturerās products.
The reason for that is the actual responses that we have received from Elektron that either say that itās the other manufacturers who are doing it wrong (see post 25) or that there is a problem with their own implementation but no prediction for whether it will be corrected. To my knowledge, there hasnāt been any statement to say that implementing BS MSB only has any advantage.
Sending CC 32 only would have problems for the OT. My suggestion of being able to send both CC 0 and CC 32 (but to switch off one or both, in the same way that BS can be set to āOffā on the DT and DN) would be compatible with all Elektron gear and all other gear.
youāre missing the essence of the discussion entirely; itās beyond specs, letās just assume everyone understands specs - now letās go beyond them and adapt solutions to the options available
should Elektron forego using CC38 (or whatever) just because itās āmeantā to be for pedal sustain on the A4, no - they donāt want to use that feature so the CC is re-used for something of benefit to the owners (with potential misunderstandings, but itās still a benefit)
itās too easy to look at specs and be rigid - if company X want to shoehorn a feature into a device by misusing a MIDI command then so be it - so long as everyone understands whatās what - itās not been done to trip folk up ā¦ thereās usually a reason for things that folk canāt/wonāt see beyond in my experience, but thatās not to say thereās not an oversight here
we could have a discussion all day about whether people should be using the midi note off message as per the specs - but things have adapted to cater for the common usage of Note On Vel 0 and the spec may even acknowledge this - but it still pops up from time to time as an issue
weāre not berating anyone for not catering for Note Off messages . .specs are just part of the picture
Iām not advocating status quo, an alternative solution or debating the need/benefit of improvements ā¦ Iām just saying hold on with the 100% wrong judgements, case closed ā¦ itās not yet clear whether there is any conceivable reason why the MSB value is used in preference to the alternatives we all agree would be more useful LSB or MSB/LSB and from my first post I havenāt discounted error, Iāve even tended a reason for the origin of it
perhaps Iāve just learned from my own black/white judgements before, itās always best to consider all possibilities (greys) rather than being tram-lined by your own preconceptions/desires
Iāve said enough here in any case ā¦ if nothing else itād be good to have an official word on this although it seems to have been made clear itās a logged feature request already to have the all encompassing option ā¦ perhaps thatās what we have to work with (and the months/years of waiting) ā¦ there are quite a few logged issues/requests still outstanding, so I wouldnāt hold my breath although this would be an easy āfixā
Sorry, nuance wasnāt relevant for my point/post
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?
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.
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.
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.
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
Youāre welcome! Exactly why I posted it. I always appreciate when others post the answers on their specific questions. Cheers!
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?