Encoder Program Changes

Jorgalad

2015-03-02 08:25:31

Hey Everybody,

I've been working with BomeMT for a few months now and I realy like the software, together with ClyphX and remote scripts it enables me to do awesome stuff for my liveset!

There are just a few more things I need to figure out though.
I'm playing a lot of different synth patches live with my MIDI keyboard and want to be able to switch between them.
Initially I learned the chain selector in Ableton, but this was very CPU heavy becasue I needed 15 different copies of the same synth.
So I've been looking into program changes and found a cool Max device to learn those to an encoder, but I would like to set this up through Bome so that I don't have to use Max.
Sending fixed program changes is pretty straightforward, but it only allows you to send one. How can I set up the encoder so that every new CC goes to the next program in the bank?
I'm also open to other options, even thought about running the softsynths outside of Ableton in a standalone application of some kind, I just want everything as efficiently and error proof possible :)

Thanks!
Oh btw I'm on OSX and my keyboard is an Arturia Keylab61

DvlsAdvct

2015-03-06 15:12:25

This is totally doable. I am going to show you how to do this every 5 steps of the encoder, but you can change the rate depending on your preference. I'm assuming the keylab is using endless encoders.

Code: Select all

Translator 1: Knob Turn Counter Clockwise
Incoming Message: B0 30 3F
Rules: g0=g0+1
if g1>0 then g1=0
if g0!=4 then exit rules, skip outgoing action
if g0==4 then ga=ga-1
g0=0
if ga<0 then ga=0
Outgoing Action: C0 ga

Translator 2: Knob Turn Clockwise
Incoming message: B0 30 41
rules: g1=g1+1
if g0>0 then g1=0
if g1!=4 then exit rules, skip outgoing action
if g1==4 then ga=ga+1
g1=0
if ga>127 then ga=0
Outgoing Action: C0 ga
So this will count the knob in each direction, and reset the count when the knob is turned the other way. Every 5 steps the knob will trigger a program change, and then reset the count as well. The count can never go below 0, and never go above 127. Does this make sense?

I'm also flying blind, typing this up without a reference. Let me know if you have any issues.
Jared

Jorgalad

2015-03-07 19:05:42

Thanks Jared!
This looks awesome, gonna try it as soon as I get home, and will let you know how it works out!

Jorgalad

2015-03-09 10:24:50

Allright, tried this one today but having some difficulties.
When I spy on the output of Bome I get a invalid message that I've never seen before, but it could be that I'm doing something wrong.
I'm not very sure what you mean with 5 steps, you mean the whole range of 127 devided by 5 or for every new CC. (0 to 4).
I think there might be something wrong with the outgoing MIDI message, what exactly does the variable ga say?
Is that just the program change?
Screen Shot 2015-03-09 at 10.20.12.png
Screen Shot 2015-03-09 at 10.20.12.png (34.91 KiB) Viewed 6707 times
Screen Shot 2015-03-09 at 10.24.09.png
Screen Shot 2015-03-09 at 10.24.09.png (66.74 KiB) Viewed 6707 times

DvlsAdvct

2015-03-09 14:24:55

Every five steps as in every five clicks of the knob, so 0-4, then 5-9, etc.

I can't see what the messages are in the first image, unfortunately. Can you screenshot the log window in MT itself?

There are two different CC messages in the Capture MIDI window you attached, BC 15 and BD 01. Are those sending when you turn one knob, or are those sending when you turn two knobs?

florian

2015-03-09 14:38:37

the "invalid" 1-byte message might be due to a known MT bug on OS X (where it sends a zero byte after a program change message under certain conditions). It will usually be ignored by programs.

Jorgalad

2015-03-10 07:54:20

So I did some more testing today, still not working unfortunately.
When I use just the counterclockwise action it will send program changes according to my MIDI monitor, but when I use them both it doesn't send anything, it just sees control messages.

But even though I see the control change inside the monitor it will still not work in Ableton.
I'm probably messing up somewhere so here's the Bome Log.

edit: Yes those two different types in the MIDI learn window where from two different knobs
Clockwise.png
Clockwise.png (98.56 KiB) Viewed 6661 times
CounterClock.png
CounterClock.png (73.5 KiB) Viewed 6661 times

DvlsAdvct

2015-03-10 14:16:05

You're using an endless encoder, right? Does it send a standard relative message (turn it left it gives you a small range less than 3F, right it gives you a small range greater than 41) or an absolute message (0-127)?

Jorgalad

2015-03-10 14:47:52

Absolute but i can change it if necesarry

DvlsAdvct

2015-03-10 14:50:11

The problem we have is that it's Absolute. I was under the impression it was relative, cause it was an endless knob. If you switch it to endless, we should be able to figure this out.

Jorgalad

2015-03-10 19:35:45

Yes! I changed the settings to relative, and I'm getting the correct program changes now in the monitor, Ableton is still not responding though.
I've done some test and this seems to be a problem with my Ableton, the same problem persist for several different methods of sending program changes, including sending fixed messages straight from the hardware.

So I'll have to take a look at that first, thanks for the help! At least I've got the Bome part fixed now :D