February 19, 2020, 06:41:28 pm
Welcome, Guest. Please login or register.
Did you miss your activation email
News:

Arturia Forums



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

shiny

  • Apprentice
  • *
  • Posts: 19
  • 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: 2.797
  • Karma: 50
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: 19
  • 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: 2.797
  • Karma: 50
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: 19
  • 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: 2.797
  • Karma: 50
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

  • Apprentice
  • *
  • Posts: 13
  • 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 »

 

Carbonate design by Bloc
SMF 2.0.13 | SMF © 2016, Simple Machines