Retaining control assignments across all banks of controller

Lrr

2015-06-03 18:03:45

i'm using Ableton Live with an OhmRGB and manually mapping controls inside Ableton and assigning LEDs in the livid editor.


The livid editor provides four banks of controls for every encoder, fader and button. Using MT I was able to make the eight faders the master volume for eight tracks across all banks by mapping bank one faders to each track respectively, and making each bank of faders send the same midi as bank one and I did the same thing for some of the knobs.

The bottom two rows of the button matrix are used as track arm (bottom) and solo (next row up), but getting the same "across all banks" effect, including led feedback is where I run into problems. Ableton sends led on/off feedback automatically for track on buttons on bank one, but when I translate the same button on other banks, I lose the led feedback( I expected this would happen and planned on addressing it) but MT also sends the original midi message along with it, resulting in another message and triggering a note on the instrument I have armed and only sometimes toggling the track on button.

I'm completely new to Bome and thought I was doing well until this hump in the road. Any help is much appreciated. I'll probably try putting this on the livid forums as well.

.... Sorry for the novel.


Also, if anyone has a link that explains how to have the same effect with the solo buttons with led feedback it would save me tons of headaches. I'm sure someone's already asked for that solution, I'm just having a hard time finding it. Thanks!

-K

DvlsAdvct

2015-06-03 18:48:04

Hi Lrr (Ruler of the planet Omicron Persei 8) (sorry, I couldn't resist)

How do you have your project set up? Are your extra banks in different presets?

Thanks
Jared

Lrr

2015-06-03 19:02:55

8) no, I'm just some guy... RULER OF THE PLANTET OMICRON PERSEI 8.


Ok, remember I said I'm new here so don't laugh. I have a preset for the fader translators, a preset for the knobs, I was making one for the track on buttons, and I was planning on making one for the solo buttons when I got to it.

Thanks for getting back so quick by the way.

DvlsAdvct

2015-06-03 19:28:42

I'm not gonna laugh. I do most of the support around here, but it took me a lot of practice to dig into the various functions of MT and optimized a few of the workflows (with help of other users and the boss-man himself)

Now, you have your four banks from Livid, but do you need them if you're running everything through MT? Can't you set everything to be a static value, and control all of your banks, as needed, in MT Pro? That would be a lot easier and avoid a lot of the duplication we're going to have to work with. The page function that Livid offers is very useful, but once you start getting granular on each control in something like MT, it becomes a burden.

If you're going to keep everything as you have it, this is what I'd recommend (if you decide to change it the theory I'm working with still applies, though):

Think about the presets differently. Instead of thinking about them by feature (faders, knobs, etc) think about them by layer. When you switch layers you want the controller to update. That's the command to listen for. The way you're doing it isn't wrong, it's just not how I would set it up. If it's easier for you, then we can work around that as well. You can also get more granular and separate out your Presets with sort of sub-presets. So you'd have a preset for Bank 1, then Fader 1, Knob 1, Button 1; Bank 2, then Fader 2, Knob 2, Button 2, etc. There are a lot of translators, but visually it's a good way to start to understand what's happening.

So you have four banks, right? You'd have four core presets, one for each bank. What I have a tendency to do is split the presets, one for what goes from the controller to my software, and one for the signals that go back to my controller to update LEDs and message positions. This is some extra work, but it allows me to segregate my messages and control flow. You're going to need a switching preset as well, one that is always active that holds all of the commands for swapping the different pages, since you'll never want to deactivate it. And finally, I put in a preset dedicated to what messages are coming in. Each incoming message gets assigned a global variable, because every related preset is going to reference it. We'll get to that later.

The problem we run into is you need to update every fader and knob you'll need to have a different translator in a different preset to make sure they all communicate. If you drop the modal set up and control everything in MT Pro, you end up with a much more elegant project, and you can break out the entire controller with functions that interact differently based on the modes you select.

Does all of that noise make sense?
J

Lrr

2015-06-03 20:12:47

Yes I absolutely notice you provide most of the advice here, and that's why invest my money in companies like your's and livid, and why you're awesome. (I wish Ableton shared this trait)

Yeah it makes sense, and the different perspective is interesting.
I feel like you might need to know how I'm using the ohm: it is in charge of my drum controls. The button matrix represents four banks of different drum loops I have recorded (I use a Push for the rest of my clip launching), the faders are the mixer for all instruments (which is where I might have some issue using the "track one, fader one knob one" idea), knobs control things from drum sample selector, to clip controls to other effects that I want accessible on all banks. So the only thing I really need to "bank" is the button matrix except the bottom two rows.

It's also worth noting that up to this point I've only used the livid editor to control the LEDs for the placement of the drum loops and cue/solo buttons. Everything else is still default.

Lrr

2015-06-03 20:14:37

Sorry to get to specific. I usually like to keep my questions broad so others can benefit as well

DvlsAdvct

2015-06-03 20:17:10

Oh, your needs are definitely a part of this, since you are building this for your workflow specifically. So, let's break down what we need.

You aren't going to be changing the Fader or knob assignments, correct? They will always control the same parameters of Ableton.

The pads will be changing, as these represent your four drum banks. Depending on the bank you're in, some of the knob functionality will change.

The bottom two rows of the button matrix is excluded from the banks, as they are always the same.

You should be able to put the OhmRGB in a flat mode and use the velocity messages to change the button colors, like I do on my Base, correct?

Lrr

2015-06-03 20:38:22

Yeah, that's all correct. Is it obvious that I HATE banks? I'm willing to have all the knobs control the same params across banks just to keep it minimal.

I haven't heard or seen of a "flat mode" in the editor but by default you can control the led color with incoming velocity with the ohm.

DvlsAdvct

2015-06-03 20:52:16

Yeah, that's what we want. We just want to control the LED colors with velocity. We don't need Livid's banks at all, and can instead control those almost 100% with MT Pro, which requires a little bit more work but allows a lot more control.

The only complication could come in if you are using any direct integration with Ableton on the Ohm. The Push is fine, totally separate, but what we're gonna do can lend itself to a lot of issues with direct Ableton scripts. Just want to make sure before we get started.

Lrr

2015-06-03 20:55:20

yeah the only script I'm using is for the Push.

DvlsAdvct

2015-06-03 22:01:32

There are a bunch of different ways that just require getting a grasp of Ableton's... eccentric MIDI functionality.

Regardless, though, let's get this stuff working the way you want.

So, for anything that isn't changing, that is always going to be the same, we are just going to put it into one preset. Call it whatever you want, but this preset will never turn off. You're going to store all of the translators dedicated to individual features here. You will also put your page swaps in here, to switch the presets. How do you plan on switching pages? Do you have two buttons to move up and down, or four dedicated buttons?

I would create a second translator that will always be on, and this will be for receiving all MIDI messages from Ableton. You should be able to send and receive play states for individual cells. You want this to be always on because MT will be listening regardless of what cells are in focus on your controller. That way, if you stop a cell manually with your mouse, it naturally ends, or what have you, the controller will be updated appropriately when you change focus for your drum triggers. You should fill this as you create your mode presets, so it stays up to date. Each button will need its own dedicated global variable (g0, g1, g2, g3...gx, gy, gz, h0...hz, i0...iz.......n0, nz).

Then you should start building your pad structure. You will have four pages, so you'll want 8 presets (2 for each page, one for input one for output). Label them something like Drum Page 1 In and Drum Page 1 Out, etc. Be sure to use the Default MIDI In and Out ports for the presets so everything passes through accurately, to where you want it to go (Ableton, or the controller).

In the In preset, you want to create a bunch of translators with the incoming action: On Activation of This Preset. The outgoing action for each will deactivate the other three In presets (So when Drum Page 1 In activates Drum Page 2-4 In deactivate). You will have one that will activate the related Out preset (when Drum Page 1 In activates Drum Page 2 Out activates) and then a separate one to deactivate as well (when Drum Page 1 In deactivates Drum Page 1 Out deactivates).

Does that make sense?
J

Lrr

2015-06-03 22:44:20

Hmm, kind of. If i'm not going to use the Livid's banks do i even need to translate anything other than the grid buttons and the bank select buttons? I have been using the Livid button to cycle through banks, but using the four buttons on the bottom left would be ideal.

When you say that you would create a second translator for cell state i understand i would recieve from live, and send to the ohm, but what do i tell it to look for? I assume that's what you mean by "abletons eccentric midi functionality"?
You should fill this as you create your mode presets, so it stays up to date. Each button will need its own dedicated global variable (g0, g1, g2, g3...gx, gy, gz, h0...hz, i0...iz.......n0, nz).
Thats where you lost me. each bank button, solo/mute button, or have we moved to the grid?

DvlsAdvct

2015-06-03 22:53:13

If nothing needs to be translated other than the grid buttons then no, you don't need to. In fact, since you mention it, you can use the MIDI Router to send everything from the Ohm to Ableton (just draw a connection from the Ohm In to whatever virtual Out you're using in Ableton), and MT will only worry about the translators in the project and let all other MIDI functionality pass through.

You can use those four bottom buttons on the left to swap the four modes, definitely. That makes things a whole lot easier, actually.

That note about variables only applies to the grid of buttons.

You will need one translator to listen to feedback from Ableton. So, first thing's first, build your presets, and get your grid communicating with Ableton. Once that's moving you can start listening for feedback from Ableton and have buttons light up accordingly.

Or, if you want to see what it'll look like, create your LED preset, and set the Default Input port to whatever Virtual Port Ableton is sending Out to. Assign a MIDI command to a cell in session view. Create a translator and select Capture. In Ableton play a cell, and you should see MT Pro receive a MIDI message. Stop the cell and see what MT Pro receives. What we're going to do is assign global variables to store what that state is so when you change pages on your Ohm the LEDs update appropriately. Does that help?

Jared

Lrr

2015-06-03 23:32:06

I'm not getting an option to send from Ableton to MT. Am I overlooking something?

I've got the the grid of buttons mapped to the clips I want for the first bank, but like I said I can't get an output option for my on able tons midi settings. Or is it able to intercept the messages from Ableton the the ohm somehow? Also I don't have an option to set 'ohm controls' to the output within MT.

Both of those things need to be possible right? Sorry if this should be simple stuff... I'm pretty good at overlooking important details.

DvlsAdvct

2015-06-03 23:34:54

Commuting home now. I'll get you screenshots when I'm in front of my computer

Lrr

2015-06-04 00:55:20

I think I'm making progress. It's been a while since I've used iac drivers but hopefully everything will make more sense here soon.

With the iac set I'm getting the signals from Ableton on MT.

Lrr

2015-06-04 01:32:48

Launching a clip assigned to the top left button of the grid results in the following messages from live:

90 00 40
BE 0B 7F
B0 17 79
90 00 00
B0 17 72
B0 17 73
B0 17 7F

Stopping the clip hasn't resulted in any messages when using an empty cell or when using the track stop button. if i map an unused button on the ohm to stop the clip all i get is the on/off message.

i know the two starting with 90 are the on and off messages from the controller, but should those be showing up if i only have the input set to the iac?

DvlsAdvct

2015-06-04 01:39:41

So humor me for a second, and do the same thing with another clip and post what comes in? I just want to see what comes up different.

Thanks
J

Lrr

2015-06-04 01:49:10

the same thing, only the button id for the on/off was different..
i must have been doing something wrong. i was getting those messages when i had the remote on for the iac out, which i thought i wasnt supposed to do, and that was causing me a ton of new problems (clicking the mouse would send a midi signal). but thats the only way i was getting messages from the iac in that wasnt just the on/off. also everytime the loop restarted the same messages came up so i though i was doing the right thing.

Lrr

2015-06-04 01:55:00

it seems like the midi notes from mouse clicks on tracks or instruments are coming from the push. i turned it off and they didnt happen anymore.
it seems weird, is that weird?

DvlsAdvct

2015-06-04 02:16:36

That isn't totally weird. The Push is probably sending things back and forth as well, and it's freaking MT out. It shouldn't be a big problem, though, because we are going to ignore those messages from the Push anyway.

So I get a few more messages than you do. When I activate a clip I get the message

94 20 7E

Then the clip triggers due to quantize and I get

94 20 7F

Every time it cycles (or restarts) I get

94 13 01

and then when it stops (not when I press the stop button mind you, when it stops) I get

84 13 00

Now the message is obviously based off of the controller I'm using, but are you not seeing all of those messages? Are you on Ableton 9?

J

Lrr

2015-06-04 02:38:24

yeah, im on 9.
I was trying to do this in the set i plan on using this in, but it's throwing me too many curve balls, i guess because of some other mapping i have going on.

so in a new set, after launching a clip i recieve:
90 00 7F
80 00 00
80 00 00
90 00 7E
80 00 00
90 00 7F

and after it loops
90 00 01

whats pissing me off is that i wasnt getting any of these in the set i actually need to be working in. is this going to be a problem or am i getting angry too early?
will all the mappings i've made for launching drum clips so far have to be changed?
and do i even need the iac driver or is there another way? because its causing more problems than id like to deal with, im pretty sure that where those notes are being generated whenever i click on a track or instrument.

DvlsAdvct

2015-06-04 16:43:31

The challenge is getting everything to communicate. It's easiest to test this without the Push connected, cause I'm sure that's getting messages as well, and making this more confusing. It is sending messages to the Push every time you select something in Ableton, and without the Push those messages shouldn't be sending.

I don't think you need IAC drivers. You should just need to connect the MT Virtual Ports to and from Ableton.

You're not getting angry too early. This stuff is hard and we are going to get it working. :)

Lrr

2015-06-04 19:30:49

Ok, without the iac driver on I have no way of getting data from Live to MT. I have inputs for MT in Live's prefs, but no out. It seems like every time I restart my computer I get new input options in MT, then after closing and reopening MT, some are not available anymore. Like right now I have no option to recieve input from the ohm.. I've reinstalled MT twice now, is this normal? I feel like I've gotten really far off track just trying to set this up.. I'm at a loss.

DvlsAdvct

2015-06-04 19:36:24

That's not normal at all.

What version of MT Pro are you on?

Lrr

2015-06-04 19:47:20

1.7.2
I just restarted MT and everything showed up available in inputs again.. I have no idea what's going on here.
But now with Ableton outputting to the iac and MT receiving from the iac I get no messages from a button push on the controller and only the resetting message when I hit the stop button.. Are the problems coming from MT?
It also indicates it's sending output when I haven't designated one.

DvlsAdvct

2015-06-04 19:51:36

If you have the Router connected it's going to send everything from the Ohm, whether or not you've created any translators.

It might be easier if we could schedule a skype call or something tomorrow and I can give you a short walkthrough. A lot of this I'd also need to see, to know whether or not I need to send it up to the boss man.

I'd just put everything to 0, disconnect the IAC, disconnect the Push, disconnect MT Pro from Ableton, disconnect the Ohm from the computer, and connect one at a time and see where the problems are.

Lrr

2015-06-04 20:20:04

Ok, apparently live doesn't send any messages when clips are triggered as a group. I have the main drums on one track and on an adjacent track is another layer of drums. Both tracks were being triggered by a group track. I guess I could just map each button to the two corresponding clips. Will this become a problem?

As long as I have an instance of MT with the correct connections I should be somewhere where I can make things work. So the messages I was getting that started with B0 were transport commands I think.
After mapping one button to two corresponding clips (one in each track of the drums group) MT receives the following:
80 00 00
80 00 00
90 00 7E
80 00 00
80 00 00
90 00 7E
80 00 00
90 00 7F
80 00 00
90 00 7F

When I map an empty clip slot in each track to a button to stop I get
80 00 00 x4


Sorry, I'm just trying to move on. I can't believe I'm getting stuck on I/O BS.

DvlsAdvct

2015-06-04 20:26:32

That looks a little better.

Just to explain, the 80 00 00 messages are probably because when you trigger a clip, Ableton is sending an off message to the controller, probably to change the LED state. The 90 00 7E is because the clip has been triggered outside of the quantize, and then the 7F is it actually triggering. It should still loop with that same MIDI message, though, 90 00 01, which we can use if we want. I don't know why so many messages are getting sent out, but that's okay because we can just ignore them in MT Pro.

Does that make sense?

Lrr

2015-06-04 20:28:20

Yeah totally. Are there so many messages because Im triggering two clips with one button in the controller?

DvlsAdvct

2015-06-04 20:29:49

That's why we're seeing two sets with the same MIDI message. I'd discourage that for now, mainly because it'll make mapping LEDs and having MT remember your play states a little more complicated. but in this example, yeah, that is probably why that's happening.

Lrr

2015-06-04 20:32:08

Ok, I won't do that for now, but will it be possible later? It's pretty essential, unfortunately.

Edit: if it's not possible I think I'll have a workaround, so it's not as essential as I thought

DvlsAdvct

2015-06-04 20:35:03

If those two buttons are always triggering the same two cells every time, then yes. It gets complicated if you are going to use another control for them, like your mouse or the Push. but if those two buttons are the only way you will interact with those cells then it's doable.

Think about it this way. We are going to have MT Pro update with the state of the cells when it changes. Both of those cells are going to send the same MIDI message back to MT Pro for it to store its state. If you use something like your mouse to stop the clip then MT Pro will get that same message.

Does that make sense?
J

Lrr

2015-06-04 20:36:48

Yeah, it does.

DvlsAdvct

2015-06-04 20:39:00

Well, keep us informed as to how this goes. I'm curious how your setup builds, if you can continue using this and all that.

Lrr

2015-06-04 23:41:24

Thanks a ton For your help!
I'm in the process of getting the desired color feedback for each button on the first bank and making the button housing the playing clip turn white, and go back when it stops. Going smooth.

But I haven't figured out how to make the banks work yet and get different midi from the grid buttons for different pages. I also haven't been able to wrap my head around how to use the global variables for this, do I use it on the channel or the button I'd. I don't want to get to far if I've been setting up my translators wrong without any global variables if I'm going to need them in there like you said.

So far I have one preset housing translators controlling the LED feedback for the first bank on the ohm. The buttons turn white when activated and go back to the color I assigned the, when they're off. :lol: I'm proud of myself, I feel like I've climbed a mountain, but haven't gotten very far, actually.

Lrr

2015-06-09 22:21:45

ok, sorry to keep this thread going for so long, but i can't get a grasp on how to use the global variables the way that was being explained.
I've got my bank buttons to activate/deactivate the in/out presets for the four banks im working on in their own preset so only one bank can be activated at a time. it's a little different than how Jared suggested, but it was the only way i could figure out how to make it work.
What we're going to do is assign global variables to store what that state is so when you change pages on your Ohm the LEDs update appropriately.

This is where I'm stuck. as of now they're hardly banks. all i can think of doing is, somehow, making it so if the presets "bank 2 in" and "Bank 2 out" are active, the grid buttons will send the same cc but on a different channel, and so on for the other banks. then assigning led properties accordingly... somehow. But I'm pretty sure there's an easier way, and im going to need to understand global variables more. I've spent a lot of hours reading about this, but i guess nothing that's made it "click" in my head so far.