November 21, 2024, 10:27:44 am
Welcome, Guest. Please login or register
News:

Arturia Forums



Author Topic: Can presets be selected via MIDI, or even sysex?  (Read 8890 times)

pax-eterna

  • Apprentice
  • Jr. Member
  • *
  • Posts: 51
  • Karma: 0
Can presets be selected via MIDI, or even sysex?
« on: May 15, 2016, 10:13:22 pm »
Checked the manual but not much info there...does anyone know if the ten presets on the Keylab hardware can be selected via external midi commands? For example a midi program change message?

Thanks

pax-eterna

  • Apprentice
  • Jr. Member
  • *
  • Posts: 51
  • Karma: 0
Re: Can presets be selected via MIDI, or even sysex?
« Reply #1 on: May 19, 2016, 08:30:46 pm »
Jeez, doesn't ANYONE else want to be able to select presets via MIDI?

And OT: what a forum of deadheads...I don't think in 20 years I have come across a slower forum...what, does everybody not speak english or is it only frequented by "doof-doof" heads who wouldn't know midi from a scratch pad?

And with NOTHING coming from the so-called factory people who are supposed to be available here....sheesh!

bencrossman

  • Apprentice
  • Apprentice
  • *
  • Posts: 11
  • Karma: 1
Re: Can presets be selected via MIDI, or even sysex?
« Reply #2 on: July 16, 2016, 02:28:51 pm »
I'd like to be able to do this too. Haven't looked into it though.
Can you do this it in Analog Lab? If so then it will simply be a case of sniffing out the sysex message it sends same way I worked how to control the LCD screen.

Firebeard

  • Apprentice
  • Apprentice
  • *
  • Posts: 4
  • Karma: 0
Re: Can presets be selected via MIDI, or even sysex?
« Reply #3 on: September 25, 2016, 04:18:02 pm »
I've got the same problem. The only workaround I have at the moment is to send all the setup data as MIDI - there's a relatively straightforward MIDI setup - the sysex header is 'F0 00 20 6B 7F 42 02 00', then there are 3 fields per line of sysex - parameter number, controller number and value. Most knobs have 5 parameters, sometimes more. Each line of sysex has the usual 'F7' at the end.

So if you wanted to reprogram fader 1 to output as CC number 20 on MIDI channel 2, with a range of 0 - 127, you would send the following: (in KeyLab terms, fader 1 is controller number 11, at least on my KeyLab 61). The 01 to 05 are the parameters, the F7 is the standard sysex end code, and the 0B is the hex of 11:

F0 00 20 6B 7F 42 02 00 01 0B 01 F7 - 01 means CC number
F0 00 20 6B 7F 42 02 00 02 0B 01 F7- 01 is hex of channel number - 1, as MIDI starts counting at 0
F0 00 20 6B 7F 42 02 00 03 0B 14 F7 - 14 is hex of CC number 20
F0 00 20 6B 7F 42 02 00 04 0B 00 F7 - 00 is controller range from - hex of 0
F0 00 20 6B 7F 42 02 00 05 0B 7F F7 - 7F is controller range to - hex of 127

Here's a list of all the other controller numbers - I went through all of them in the MIDI Control Centre and worked out what they were:

Knob 1 - 1
Knob 2 - 2
Knob 3 - 3
Knob 4 - 4
Knob 5 - 9
Knob 6 - 5
Knob 7 - 6
Knob 8 - 7
Knob 9 - 8
Knob 10 - 10
Knob 1 - 33
Knob 2 - 34
Knob 3 - 35
Knob 4 - 36
Knob 5 - 41
Knob 6 - 37
Knob 7 - 38
Knob 8 - 39
Knob 9 - 40
Knob 10 - 42
Fader 1 - 11
Fader 2 - 12
Fader 3 - 13
Fader 4 - 14
Fader 5 - 75
Fader 6 - 76
Fader 7 - 77
Fader 8 - 78
Fader 9 - 79
Fader 1 - 43
Fader 2 - 44
Fader 3 - 45
Fader 4 - 46
Fader 5 - 107
Fader 6 - 108
Fader 7 - 109
Fader 8 - 110
Fader 9 - 111
Button 1 - 18
Button 2 - 19
Button 3 - 20
Button 4 - 21
Button 5 - 22
Button 6 - 23
Button 7 - 24
Button 8 - 25
Button 9 - 26
Button 10 - 27
Volume – 48
Params – 49
ParamsPress – 50
Value – 51
ValuePress – 52
Bank 1 – 29
Bank 2 – 28
Sound – 30
Multi – 31
ModWheel – 64
BendWheel
AuxPedal – 83
SusPedal – 80
ExpPedal – 81
Rewind – 91
Ffwd – 92
Stop – 89
Play – 88
Record – 90
Loop – 93
Pad 1 - 112
Pad 2 - 113
Pad 3 - 114
Pad 4 - 115
Pad 5 - 116
Pad 6 - 117
Pad 7 - 118
Pad 8 - 119
Pad 9 - 120
Pad 10 - 121
Pad 11 - 122
Pad 12 - 123
Pad 13 - 124
Pad 14 - 125
Pad 15 - 126
Pad 16 - 127

« Last Edit: September 25, 2016, 04:37:19 pm by Firebeard »

Firebeard

  • Apprentice
  • Apprentice
  • *
  • Posts: 4
  • Karma: 0
Re: Can presets be selected via MIDI, or even sysex?
« Reply #4 on: September 25, 2016, 04:21:15 pm »
I'd just copied that from a program I'm developing. There are 2 lots of knobs and faders - the second group of each is the bank 2 version. Also the pitch bend shouldn't be in there. There's not a way to reprogram that. It works differently to the other MIDI controls and sends two MIDI values.

pax-eterna

  • Apprentice
  • Jr. Member
  • *
  • Posts: 51
  • Karma: 0
Re: Can presets be selected via MIDI, or even sysex?
« Reply #5 on: September 25, 2016, 06:36:46 pm »
Thx firebeard - good info there. I have midiox so I'll have a look using it. I was more asking if anyone has actually done selecting presets via midi at this stage :)

Although your results posted gives me hope :D

Firebeard

  • Apprentice
  • Apprentice
  • *
  • Posts: 4
  • Karma: 0
Re: Can presets be selected via MIDI, or even sysex?
« Reply #6 on: September 26, 2016, 12:46:33 am »
Cool - MIDI Ox is a great tool. And the MIDI console in the MIDI Control Centre will give you all the sysex you need. That's how I got all the controller codes. I'll let you know if I figure out a way of changing the memory settings directly.

pax-eterna

  • Apprentice
  • Jr. Member
  • *
  • Posts: 51
  • Karma: 0
Re: Can presets be selected via MIDI, or even sysex?
« Reply #7 on: September 26, 2016, 08:20:41 am »
Hey thanks, that would be appreciated :)

Lauragrorn

  • Apprentice
  • Apprentice
  • *
  • Posts: 10
  • Karma: 0
Can presets be selected via MIDI or even sysex
« Reply #8 on: November 07, 2016, 07:52:42 pm »
Hi, I use iconnect midi 2 to with Fantom g and Integra 7. For program changes i use sysex via midi learn. You can send combined sysex messages to both synth.

___
NEW XRumer 12.0.19: revolutional method in SEO and SMM

Eric Barker

  • Jr. Member
  • **
  • Posts: 78
  • Karma: 3
  • Progrock/metal Keyboards & Sound Design
Re: Can presets be selected via MIDI, or even sysex?
« Reply #9 on: November 12, 2016, 08:35:58 pm »
pax-eterna: I know it's frustrating, but don't take it out on the individuals here on the forum. I think the issue here is that the KeyLab community is EXTREMELY small. Keep in mind, Arturia is still a small boutique company run out of Grenoble, France. They're one of the few that are dedicated specifically to keyboardists and live performers. Live keyboardists (as opposed to DJs and beat makers), are like unicorns, and software-based keyboardists are even more rare. Put all those things together, and you have a very small group of people in the world that you're dealing with. That said, everyone who does post here usually really knows their shit, we're serious musicians. It may take some time, but people will respond, and as you found first-hand, with very useful information.

As for Arturia's lack of communication? Yeah, that's not good, as much as I love their products, they seriously need to step up their support.
« Last Edit: November 12, 2016, 08:42:56 pm by Eric Barker »

bencrossman

  • Apprentice
  • Apprentice
  • *
  • Posts: 11
  • Karma: 1
Re: Can presets be selected via MIDI, or even sysex?
« Reply #10 on: December 25, 2018, 02:25:24 am »
Hi

Thanks for the sysex info. It was annoying to have to manually load it every time I booted up but I got around to adding the commands to assign everything.
In my setup I just want volume to CC#09 (not CC#07 like normal) which I also put on slider 1. I assign knob 1 to CC#03 (my filter effect). Everything else is disabled (so it doesn't muck up my vst's). The pads are changed to map the bottom few notes on the keyboard and midi channel 1 (not 10). And the transport keys I change to various CC's to change songs.

Here's the C++ code I used to send it all:

void ForteEmulator::SetupKeylab()
{
  for(int m=0;m<60;++m)
  {
    unsigned char mes[12];
    int meslen=0;
    memcpy(mes,"\xF0\x00\x20\x6B\x7F\x42\x02\x00",8); meslen+=8;
    unsigned char parameter = 3;
    unsigned char control = 0;
    unsigned char value = 0;
    // order volume / knob 1 #3 / 9 disable knobs / Slider 1 #9 / 8 disable sliders / 16 pads (midi and note) / rewind (mode and cc) / forward (mode and cc) / stop (mode and cc)
    if (m == 0)
    {
      control = 0x30;
      value = 9;
    }
    else if (m == 1)
    {
      control = 1;
      value = 3;
    }
    else if (m<2 + 9)
    {
      parameter = 1; // mode
      control = m; // knob 2 to knob 10
      value = 0; // disable
    }
    else if (m==2+9)
    {
      control = 0x0b; // slider 1
      value = 9; // also setup slider 1 like volume
    }
    else if (m<2+9+1+8)
    {
      parameter = 5; // max val
      control = (m<2+1+8+4)?m:(m+0x3c);
      value = 0; // another way of disable (didn't work other way)
    }
    else if (m<2+9+1+8+16)
    {
      parameter = 2; // midi channel (defaults to 10 on pads)
      control = 0x70 + (m - 2-9-1-8);
      value = 0; // midi channel 1
    }
    else if (m<2+9+1+8+16*2)
    {
      control = 0x70 + (m - 2-9-1-8-16);
      value = 0x15 + (m - 2-9-1-8-16); // Low A up
    }
    else if (m==54)
    {
      parameter = 1;
      control = 0x5b; // rewind
      value=8; // for some reason this mode value instead of 3
    }
    else if (m==55)
    {
      parameter = 3;
      control = 0x5b;
      value=111;
    }
    else if (m==56)
    {
      parameter = 1;
      control = 0x5c; // forward
      value=8;
    }
    else if (m==57)
    {
      parameter = 3;
      control = 0x5c;
      value=116;
    }
    else if (m==58)
    {
      parameter = 1;
      control = 0x59; // stop
      value=8;
    }
    else if (m==59)
    {
      parameter = 3;
      control = 0x59;
      value=117;
    }

   
    mes[meslen++]=parameter;
    mes[meslen++]=control;
    mes[meslen++]=value;
    mes[meslen++]=0xf7;

    // send to lcd
    vector<unsigned char> message(meslen);
    memcpy(message.data(),mes,meslen);
    m_midiOutLCD->sendMessage( &message );
  }
}





 

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