March 28, 2024, 02:47:48 pm
Welcome, Guest. Please login or register
News:

Arturia Forums



Author Topic: Trying to send program changes to a sound module but I can only use buttons???  (Read 5854 times)

shiny

  • Apprentice
  • *
  • Posts: 21
  • Karma: 0
I am a bit confused here; I read the manual of my sound module, which accept program changes, so I told myself that I can assign buttons to change banks, and a knob or a slider to change the actual value (0-127), but this proven to be impossible from what I can tell.

In the midi editor, I can assign the knob to CC0 which is Bank selector MSB; which in my controller case goes from 86 to 121. Same for the bank selector LSB, which is set to be CC32 and values between 0 and 72.
Now as you may know; changing those 2 values does nothing, because you need to send a program change message to the device, which is the one that hold the value between 0 and 127. And sadly I can't see any CC message that send a program change. Both sliders and knobs have only 2 modes: Control and RPN/NRPN.

The only way to send a program change is to use a button. Although the button, when set as program change, can send only 1 value for bank LSB, bank MSB and program number. You can imagine that if you need to change MSB and LSB aand Program number, even 3x10 buttons are not enough for a 3000+ sound module.

Not sure how to do this; even because I can't see a way to send SYSEX from the arturia keylab MK2; and the midi control center has no option for sysex; so I am stuck.

The idea was to have 3 knobs to set MSB, LSB and program number, or have a button to set LSB and MSB and program 0 to move to the first patch of the bank, and then changing the program number via knob or slider, but this is not possible, or if it is, there is no obvious way to do so.

Any thoughts?

LBH

  • Hero Member
  • *****
  • Posts: 4.920
  • Karma: 261
I don't have the controller as you know. But as far as i can tell, then Keylab MKII can send specific programChange messages using different buttons and pads. You can't step through banks and presets it look like.
A specific change is a bank messages (0-127) and the same range for a programChange. I can also see this is the case in the Midi Control Center. So i don't understand the limited values you mention.
You can also set midi channel for the change - also as the "User" midi channel. ProgramChange work for user presets. In total that give many possibilities for live performances.

In a playing situation i think it's great and i assume best for most people, that you actually can set values for a specific preset. I think that's what's most needed for live performances. This add functionality to synths.
But a way to step through banks and presets could also be nice to have, like a way to assign programChange to sliders and knobs. It does'nt look like that's possible.



shiny

  • Apprentice
  • *
  • Posts: 21
  • Karma: 0
Midi messages are very peculiar, and in some cases, you need multiple messages to perform an action, because you are accessing different registry. This is one of those cases.

Do do a change on the bank; you need to have the most significant byte, the less significant byte and the value of the actual program change. If you change just 2 parameters without the 3rd, nothing happen. It is not a coincidence that the only place where you can assign those 3 values is on a button, and that's where it works. MIDI implementation sadly does not include a program change on a CC message, so each maker does its own thing and have to expose the program change.When you change preset in analog lab using the buttons, this is exactly what it does: it set bank for analog lab and load the first patch of that bank; and the arrows are sending a program change, since at that point you don't need MSB and LSB since you are already on the bank you want.

The problem is that Arturia decided to not actually expose these arrow buttons to the User profiles, nor in the midi editor, nor it allow you to send sysex, like a roland controller would, for example. Why is it a problem? Because you need to send those 3 values together, so even after I pass MSB and LSB via CC 0 and CC32, I have no 3rd value controller because there is no program change assignable control (it require to send a 0-127 value prefixed by hex C0).
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 
Try to browse banks, one parameter at time, and tell me if you can do that. This apply for external hardware of course; if you never use external hardware that require something beside CC messages or CV, then you are covered.

For live performances you create a set, that is true; but you do not have only sets; you have parameters too, so if you consider that you are driving external gear, and you need 2 pages just for the synth controllers and parameters; you are left with one page of controls, and out of these, you can only use the buttons, so only 9 preset. If you can run a live preset with just 9 patches; I am happy for you, but I can't do that even if I was using one single external piece of gear, imagine 3 :)

Other companies with less shills on youtube are able to deliver simple sysex transmission from their midi controllers via their midi editor; which is why I am surprised that Arturia decided that it was a good idea to have only CC in their editor, and not even plan to add things like program change exposed. I bought the keylab to drive external gear; and to use it in a DAW, and so far, bot things have been borderline impossible in the measure I need them, because of limitations mostly on the hardware and software side of things. I bent backwards to make it work, but I am tired to have to compromise, especially after spending 500 dollars for a midi controller, not even a rompler keyboard or a proper synth.

LBH

  • Hero Member
  • *****
  • Posts: 4.920
  • Karma: 261
Hi Shiny,

I've allready confirmed the Keylab MKII functionality you mention.

As you can read in the Keylab MKII manual, then the options for Pads, User buttons, Select buttons and Pedals is this:

-"Channel: Select the MIDI channel output for the selected button, between 1 to 16.
This can also be set to “User”, which will make the button output to the MIDI
channel selected for the MIDI Ch button [p.64].
• Program Number: Select the MIDI Program number the button will send when
activated. Click/drag the knob or enter a value between 0 and 127 in the field
below.
• Bank LSB: Defines the Bank Select value for Least Significant Byte (MIDI CC# 32)
that the button will send when activated. Click/drag the knob or enter a value
between 0 and 127 in the field below. Not all devices respond to Bank LSB, so
consult the documentation of the hardware or software instrument you want to
control.
• Bank MSB: Defines the Bank Select value for Most Significant Byte (MIDI CC# 0)
that the button will send when activated. Click/drag the knob or enter a value
between 0 and 127 in the field below. Not all devices respond to Bank MSB, so
consult the documentation of the hardware or software instrument you want to
control."-

Off course this also is limited to what the unit to be controlled has.
I can't rule out compatibility issues.


Can you please post some examples of controllers that you say can do all the things you mention? I'm interested in knowing them, just like i'm interested in the implemetation of MIDI 2.0 like i've posted about here: https://forum.arturia.com/index.php?topic=100623.0

shiny

  • Apprentice
  • *
  • Posts: 21
  • Karma: 0
Hi,

Let me clarify: you can change program but you can change only 1 program per button/pad. If you assign 16 pads to do program change, you can assign 16 different patches, but you can't use the pads anymore. Same for the buttons. I do not use a pedal so I didn't even try with that.

The problem is simply that you can't send a value dynamically when changing program, it has to be set. While you can assign CC0 and CC32 to controls, that is useless until you send a program change message; which does not have a CC, as you are aware of. The workaround that Arturia made was to hardcode the message of MSB, LSB and program change (the other 2 bytes which are the data and the chanel where to send the change) into a control, so you have 1 button/pad ==  1 patch and that's immutable, unless you change the control where you assign the program change 0-127 value.

As example of controllers that allow you to send different signals, check the roland A500 pro; that one can send CC, sysex and few other parameters from the editor. There are a few more, but I didn't try them yet. The novation SL mk3 does allow you to do the same I believe.

I am writing my own midi CC -> sysex program in python at this point; although it is a bunch of work I never asked for to be honest

LBH

  • Hero Member
  • *****
  • Posts: 4.920
  • Karma: 261
I have allready confirmed that behavior and said i can't see there are other options in Keylab MKII, and i have noted you can use 16 midi channels, that you can change from the keyboard, and there is User presets. It's not too easy to work with no, but there are some possibilities. And i have wished for more possibilities.

Rolands old hardware synths is using sysex, so perhaps that's why A500 can use sysex. It's not a new controller either.
I've just seen that Rolands new A-88MKII come prepared for MIDI 2.0. I can't see sysex is mentioned in it's functionality.
Actually it to me look like Novation have removed sysex from the newest SL MK3. I have it in my old Novation SL MK2.
I thought you had some videos.

I think this is on the way in 2020 https://electra.one/tech-specs
It has no keys. But the specs say: "Support of proprietary SysEx MIDI messages (currently Rhodes Chroma, Yamaha DX7, Roland TB3 are supported)"  Not too much i'd say -
and it say: "Support of Control change, Program Change, Start, Stop, NRPN MIDI messages".
It's not prepared for midi 2.0 it look like.

It's hard to find controllers that can do it all i a way one wan't to work.

Hardware synths and keyboards also have it's own dedicated controls.
« Last Edit: January 10, 2020, 12:30:16 am by LBH »

winddealer

  • Jr. Member
  • **
  • Posts: 56
  • Karma: 0
I am in the same boat. 

I would like to dynamically cycle through any of the patches of my External Tyros/Genos Voice Banks using "any" of the nine MKII faders, or "knobs" (above the faders). 

As described in this thread, a fader or knob should be able to support a static LSB and MSB for the Bank Select and permit bounding  of both High and Low Ranges limits for each entity.  The knob or fader would then dynamically cycle through the bounded values set for the entity (ex. 23,24 or 0-127).   

The KeyLab could potentially then support up to 81 settings (3 Parts (1/2/Live) x 27 entities (9 knobs and 9 faders and 9 buttons)) per User Bank.

Please understand that this is not a one off request from one owner.   Having to purchase another "gizmo" to facilitate what is claimed to be a premium Midi Controller should be capable of doing is a tough pill to swallow.   

For another $350 US you can buy the glorious faderfox EC4 gizmo which does it all! 
http://www.faderfox.de/ec4.html

Merci?
 
   
« Last Edit: January 22, 2020, 10:16:25 pm by winddealer »
KSP, KS, KL61 MkII, VCol7, Faderfox EC4, Peak, Tyros4, Reaper

diehard

  • Apprentice
  • *
  • Posts: 3
  • Karma: 0
I really miss this too. My old Akai MPK249 can do this easily and it makes browsing banks and patches from external synths so much easier so I don't have to have access to the actual synths.

shiny

  • Apprentice
  • *
  • Posts: 21
  • Karma: 0
My only assumption is that Arturia, like many other makers, do things based on what their numbers tell them what is more beneficial and efficient, from the perspective of usage and popularity.

Those features are not important for the majority clearly; as such, they are not implemented.
Which is a shame; I would never imagine to have to praise Akai for being more flexible than Arturia; but the MPK249 is indeed a far superior product under these circumstances. Matter not that it is not solid and well built like the Arturia; but I could buy a bugatti and be happy about how well built is, but if it does not satisfy me when I drive, it is as good as the cheaper car that is not as solid but fun to drive.

chasmo

  • Apprentice
  • *
  • Posts: 8
  • Karma: 0
Unlike most in this thread, I use the Keylab MKII solely in a software environment, but I was also very disappointed to learn that it doesn't support incremental program change - particularly given the many promo vids boasting of "infinitely configurable" user presets.

In a DAW or live-laptop system there's a workaround. There are freeware, third-party utilities allowing you to map two of the Keylab's buttons to "increment" and "decrement" actions, which the utility then translates into the necessary bank and program change messages. Still, stepping through potentially thousands of a soft synth's presets one by one without benefit of a knob or slider is not an ideal way to navigate.

I definitely understand the additional frustration of those using it in a hardware environment where the only option is either adding a laptop or an outboard device to handle the translation of one of the most basic and necessary functions a keyboard should have, particularly when the Keylab was touted as an all-in-one controller bridging MIDI and CV.

How could they have missed this?
« Last Edit: March 01, 2020, 07:51:12 am by chasmo »

shiny

  • Apprentice
  • *
  • Posts: 21
  • Karma: 0
I do not believe they missed it. They just forced their workflow upon users; assuming that they will quietly accept things.

Arturia probably made a research with some individuals that were considered representative or more influential, and took their workflow as gospel and assumed that everyone else will adapt.
I think I rarely buy a product where I spend more time trying to hack the firmware to let it do what I need, but with the Keylab it is fundamentally the only way to use it. The other is to sell it to someone whom is happy with what the device offer out of the box.

It is not working for studio workflow, nor for hardware workflow; unless all you want to do is to use mouse and keyboard all the time, use analog lab or other pre-defined cases. Heck, can't even consider the option to send sysex; something that other midi controllers customization software offer out of the box.

bostonsynth

  • Apprentice
  • *
  • Posts: 19
  • Karma: 0
Unlike most in this thread, I use the Keylab MKII solely in a software environment, but I was also very disappointed to learn that it doesn't support incremental program change - particularly given the many promo vids boasting of "infinitely configurable" user presets.

In a DAW or live-laptop system there's a workaround. There are freeware, third-party utilities allowing you to map two of the Keylab's buttons to "increment" and "decrement" actions, which the utility then translates into the necessary bank and program change messages. Still, stepping through potentially thousands of a soft synth's presets one by one without benefit of a knob or slider is not an ideal way to navigate.

I just signed up here and posted a similar question, not sure how I missed this thread sorry. But I also am struggling to find incremental preset changes using my Keylab and it's data dial center knob. I've never had a synth where the main knob *wouldn't* cycle through presets. Can't this be easily added with firmware maybe?

What utilities do you suggest to workaround this, can you guide me please? I don't know the plugins you speak of, thank you.

bostonsynth

  • Apprentice
  • *
  • Posts: 19
  • Karma: 0
Actually, I was able to solve this in Reaper using JSFX. Now I can switch both PRESET/PATCH and BANK using the center knob on my Keylab MK II. I wish it wasn't tied to a DAW fix but, it's good enough for my main workflow at least. Hopefully they can maybe add this feature with a future update. Seems silly not to have it :)

chasmo

  • Apprentice
  • *
  • Posts: 8
  • Karma: 0

What utilities do you suggest to workaround this, can you guide me please? I don't know the plugins you speak of, thank you.

Most DAW's have some type of native MIDI translation tools, but if yours won't doesn't, there's a collection of utilities by PizMIDI that includes a VST called MIDIProgChange that can take CC input and translate it into a +1 or -1 program change.

I think the wheel transmits on 113 and sends something like 63 (left turn) or 64 (right turn). (Don't hold me to those exact numbers--there are also tools like MIDIox that can tell you exactly what the keyboard's sending.) Using the PizMIDI plugin, you could map those values to increment/decrement program change.

bostonsynth

  • Apprentice
  • *
  • Posts: 19
  • Karma: 0
Thank you for this it's very helpful.


What utilities do you suggest to workaround this, can you guide me please? I don't know the plugins you speak of, thank you.

Most DAW's have some type of native MIDI translation tools, but if yours won't doesn't, there's a collection of utilities by PizMIDI that includes a VST called MIDIProgChange that can take CC input and translate it into a +1 or -1 program change.

I think the wheel transmits on 113 and sends something like 63 (left turn) or 64 (right turn). (Don't hold me to those exact numbers--there are also tools like MIDIox that can tell you exactly what the keyboard's sending.) Using the PizMIDI plugin, you could map those values to increment/decrement program change.

 

Carbonate design by Bloc
SMF 2.0.17 | SMF © 2019, Simple Machines