Need to get Hotcue State LEDs to stay on after pressing them on APC40

Need to get Hotcue State LEDs to stay on after pressing them on APC40

I have been messing around with my APC40 for the last couple of days.

I am really struggling with the LED output. I understand the whole concept that the square pad buttons are momentary and that these buttons send themselves an LED off command of ‘0’ after they are released.

I would like to be able to set up a pad to be a hotcue. When the APC40 first turns on, I would like it to be red. Then when I load a track, I would like it to turn green if there is a cue point saved on it. If there is no saved cue point, any subsequent pressing of this button will turn it green, since it is setting the cue point.

I tried using the Hotcue State, and this works great when you load the track, the cue will light up correctly. It’s just that when you press it, the button goes dark on release, since it is sending itself that off message. Checking ‘Invert’ has no effect.

Has anyone been able to do this on their APC40?

The leds are a pain to get working how you want them to. I pretty much gave up on trying to make one button do more than 2 functions with the leds. I m just happy that they are on and stay on at this point.

Traktors midi mapping system as far as LED’s go is pretty poor, you need to use a midi translator to get the most out of your mappings when it comes to LED support.

Could you post an example on how I can use Bomes MT to accomplish this particular LED behavior on the APC40?

It seems from reading other threads on this forum, Launchpad users have been able to do this and I thought the Launchpad worked almost identically to the APC40 in it’s ‘generic’ mode.

Ran into the same issue with my padKontrol because after the button is pressed, traktor doesn’t resend the midi message telling it to turn back on. The only way I was able to get this working correctly at load and after pressing the button was to use Bomes and a bunch of variables to store the states.

You can use modifiers (which get used up quickly if you’re dealing with hotcues), or you can use Bomes. In Traktor you can also use an inverted “send monitor state” command, as long as all your outputs are mapped correctly. This sends a message to update led states on button release. In Bomes its also pretty simple. As long as a midi out is sent from bomes to the APC, you can define the behavior. Example: Button down note goes to a Bomes virtual out, which goes to Traktor (with bomes set as the In), executing the command. The button release note goes to the APC, which updates the led. The velocity (or midi range) part of the note is 01=green, 02=flash green, 03=orange, 04=flash orange, 05=red, 06=flash red, 07-127=green

Another helpful trick for the APC is that you can define the led ring behavior too. Sending a message of the CCknob + 8 with a value of 01-03 will initialize the ring. Say you want knob CC10 to display in pan format. You would have a button send the message CC18, value 03. The APC intializes rings according to 01=single style, 02=all leds (like in Live), and 03=pan style. Keep in mind if using Bomes, the messages are in hexidecimal, so the format is channel, cc/note number, value/velocity. B0 10 01 means "channel 1, controller 10, value 1. Hex numbers go from 0-9, then A-F, so while 10 means controller 10, and 19 means controller 19, controller 20 is designated 1A.

I’ve got a combo of Bomes and Traktor controlling led output on my APC, and everything works great. But for most tsi’s, you can do it all in Traktor. Trust me. Actually I’m amazed that people are still using APCs without feedback in dark environments. I would surely hit the wrong button and f@*& it all up. I have heard of people returning their APCs because they couldn’t get the leds to work. Don’t despair! It can be done!!

I actually did read all your posts about using the ‘send monitor state’ command to light up the APC40 LEDs after button release.

Here is an example of the commands I have on one button, Ch. 01 Note F3
This doesn’t work for me- While the LED does correctly light green upon load, the LED on the pad doesn’t come back on after I release it, even when using an inverted Send Monitor State.

In
Select/Set Store Hotcue, Hold, Deck A, HotCue1

Out
HotCue1 State
Controller range = -1 to 5
Midi Range = 1 to 1
Invert checked = NO
Blend checked = NO
Assignment = DECK A

Out
Send Monitor State
Controller range = 0 to 1
Midi Range = 1 to 1
Invert checked = YES
Blend checked = NO
Assignment = Global

Now, I did just see something that Buzz33 posted –

I’m at work now, so I can’t really test this, but do you think this would work?

I would actually revise this and say:

Out
Select/Set+Store Hotcue
Controller range = -1 to 0 (does this say that -1 = off and that 0 = hotcue 1?)
Midi Range = 3 to 1 (3 = red and 1 = green)
Invert checked = YES
Blend checked = NO
Assignment = Deck A

Zac, would you mind posting up a snippet of your APC40 TSI file and Bomes file that shows an example of an ‘intelligent’ Hotcue pad, and also an ‘intelligent’ volume style knob? I haven’t even gotten around to the knobs yet, but that is my step…I’d like to have the knobs all light with the volume style LED rings and I would like them to all light up with their specific knob positions volume style when I load that particular FX preset combination.

Send Monitor State needs to be an IN, not an Out
The midi range may need to be tweaked as well, right now that says that the only option is solid green on release (but that might be what you want, no)?

I’ll see what I can do about an example - the rings I can show you right away, for the pads I’d have to build something. Personally I light the pads based on modifiers (not per pad, but in terms of global changes, ie pad is red in transport mode, flashing green in browse mode) - and with that, you don’t need the send monitor state command.

In this particular example, I was referring to using the Send Monitor State as an OUT. I was focusing in on using the Midi Range and Controller Range values for lighting the Hotcue pad the way I want. Incidentally, this doesn’t work either.

The only thing I can get to work on the APC40 is the buttons to light up permanently a particular color. I can do that. I can also make the Play button flash when a track is playing by using the Play/Pause modifier in conjunction with two OUT Play/Pause controls.

That would be great if you could supply an example of the Hotcue pads (and light rings, although I haven’t tried yet at all and these may be super easy), preferably not using Bomes, if possible.

So what do you want to do, in a nutshell?

I want ‘intelligent’ Hotcue LED indicators.

I want my hotcue pads to be all red when I first turn on the APC40 and load Traktor.

When I load a track, I want the hotcue pad to light up green, if there is a cue in that spot. I want that button to STAY green after I press it.

When I hit one of the red hotcue pads that doesn’t have a cue associated it, it gets set and should turn to green. I want that button to STAY green after I press it.

When I load a new track, all the hotcues should re-initialize to either red or green, depending on how many cuepoints are set on that track.

That would be pretty cool if you can get something that works like this going for me. If not, no big deal! I’ve about given up on anything on the APC40 fancier than just being lit or flashing a certain color!

Just got this working on my LPD8. Assign these commands to the respective button and LED and you will have the “intelligent” hotcues you describe. I’ve been wanting to do this forever! Done completely with Traktor, no BOMES needed.

IN
Select/Set+Store Hotcue
Type: Button
Interaction: Hold
Assignment: Deck A
Set to value: Hotcue 1
(set to the button midi value)

IN
Send Monitor State
Type: Button
Interaction: Trigger
Assignment: Deck A
Invert YES
(set to the button midi value)

OUT
Hotcue 1 State
Type: LED
Interaction: Output
Assignment: Deck A
Invert NO
Blend YES
Controller and Midi range will have to be set for your specific device on this command.

(set to the LED midi value)

SOLD.

This works!

Excellent.

I changed my Hotcue1 State around a little bit to work the way I want it to where it is solid red if no cue exists, but solid green if the cue does exist in the slot. A solid red will also turn solid green when a cue is set. It will also go back to red if the cue is deleted. Solid.

OUT
Hotcue 1 State
Type: LED
Interaction: Output
Assignment: Deck A
Invert YES
Blend YES
Controller range: -1 to 0
Midi range: 1 to 3

I guess what I was missing was the fact that the ‘Send Monitor State’ has to be an IN and not an OUT.

The djtechtools forum pulls through again…thanks for the assistance djstormeagle and zac.

Now my next question -

How can I get the LED rings to light up volume or pan style?

When I output the LED for a knob using a midi range of 2 to 2 (which is supposed to activate volume style), the LED ring freaks out and I can’t get the knob to turn.

What is the trick for this?

Cool. Glad you got it to work! That’s what I was saying about the send monitor state needing to be an IN. As for the knobs, the message you need to send the APC is a one time thing, so you just need to figure out what button(s) you hit when you need the rings to change. That button will send an output message. Remember I said the CC# you need to send is the the CC# of the knob plus 8, so for example, the knob that is normally CC10 would be CC18. The range 01-03 initializes the behavior.

So don’t have that knob assigned with an output of CC+8, have a button send an output to the knob’s CC+8. Does that make sense?

As an aside that you may run into - I’ve noticed something weird about Traktor output commands vs. the APC. If you have outputs assigned normally to the knobs: that will work fine with fx outputs, but the APC doesn’t handle outputs from Gain/Eq right. This may be a Traktor bug. So the take away is that if you can avoid having Gain/Eq have an output, do it. The Fx should be good, and you can put that to good use by using the APC’s bank memories (track selection buttons) for various fx units. Remember too, that you want the leds to update when you change banks, so assign regular outputs to the knobs you use in each bank.

Zac, this works great as well. Thanks again.

Now I just need to figure out a ‘one-time’ button to initialize this. I’d like for all LED rings to just initialize once when I first open up Traktor (without having to press a button). Any ideas on how I can do this? Through Bomes using a one time if check or something? Can you give me an example of how you are using Bomes with the APC40? I’m really starting to like the APC40 now with Traktor!

Yeah, actually I’ve gotten really into it too, after months of mapping, testing live, throwing things out, remapping, etc. Once you get something that works really well for you, the APC’s massive amount of controls really starts to shine.

As for your question, with Bomes it’s cake. You can set up translators that execute when the project is opened, and that’s that. As for Traktor, I’d just set up say, the play button on deck A to send the ring data. It’s not a lot of info to clog up midi traffic, and the APC doesn’t react visually if it already received it, so what the hell. Otherwise, how about a seldom used key on your keypad?

Sorry, forgot the “how I use Bomes +APC” part.
I use a hybrid setup I developed that uses Traktor in conjunction with the “handshake” being maintained in Live. So, I use a shift state to toggle between the APC surface controlling only Traktor, to controlling only Live, but with some functionality kinda cross pollinating between the two. Since I maintain the handshake, (that was a bitch to figure out) Live updates the APC automatically when in the Live layer. Everything comes from the controller, goes through Bomes, and is sent to the respective applications.

So the general work surface is toggling between 4 Traktor decks, and 4 Live Tracks, but the volume controls are dedicated. The Master channel fader controls the level of this drum machine style rack I’m building in Live (not done yet, but I’m getting pretty excited about how it’s going!) Its basically this mega rack that scrolls through full drum kits, and 16 apc pads send the notes to bang out patterns on the fly. Then I just hit record on an empty track and get my loops on. (Honestly though, I’m still trying to figure out if this function even works for me in terms of a live flow).

Thanks again Zac. Things are starting to come together, slowly, but they are coming together.

Edit:

I was finally able to figure out my next question:

How do you get the APC40 toggle buttons, such as the Solo/Cue buttons, to act as momentary or trigger like? I am trying to use them for loop ins and outs and I have to keep pressing them several times to react, dependent upon the on or off position of the button.

I have to think back, to my pre-bomes tsi… Don’t quote me on it, but try setting the buttons to hold for trigger functionality? As for the leds, it’s tricky, since the apc is naturally turning leds on and off in a toggle fashion. Again, you might try setting outputs and using the inverted send monitor state IN to update on button release. Keep Traktor in mind tho - things like loop in are always going to be a trigger no matter what, so there’s no point trying to make a toggling led, etc. And it took me a while to decide on how I wanted to handle loops visually. I decided the best method for me was to set loop in as a trigger, loop out as a toggle, where after I have set a loop, pressing out again just deactivates the loop, but the loop stays where it was so I can jump back to it later, and a separate loop activate toggle button - so if im coming up to a loop I can just activate it without having to set in and out again. The loop out button just turns off Active along with the Active led if a loop has already been set. My system just leaves the loop in and out leds on all the time, while the activate toggle led changes accordingly.

For the fx (device ctrl) buttons, the top row acts as toggles, and the bottom are triggers in the apc’s default state. So they have to be programmed differently to act the same way. I’m not going to kid you, it was a total bitch trying to sort those out, esp with changing fx, but it can be done.

Let me know how it goes!

Alright, I was able to get the Loop Set/Loop Out buttons to work by setting both the in’s and out’s to invert.

The Beatjump forward/backward buttons needed an invert on the Out.

I don’t know why I couldn’t figure it out earlier, but thanks.

Good to go for now.

Another thing that bothers me is the fact that the knobs are always in the 0 position whenever you turn on the APC40. It seems you have to turn them to get them where they were before, or use soft takeover. It would be nice if, when you load up a new set of effects, that the knobs and rings initialize to what is set on the screen immediately. Is this possible?