🔥 Lifetime deal! Get Control Surface Studio for Just £67 👉 Click Here To Get It
Time left... mailtimers.com
⚠️ Lifetime licenses are ending soon, get yours before they're gone ⚠️
Your shopping cart is empty.

Recreating Session Box LED Functionality For 2023 APC Series

Submitted by DJThrodownDC on Mon, 04/24/2023 - 17:27
DJThrodownDC
Control Surface Studio User

1 of 3:

Hey all,

Relatively new CSS user here. I'm trying to recreate the stock LED colors & trigger states of the APC Key 25 mk2's clip matrix in a script, so that I can then add some more advanced functionality to it.

On the APC the physical MIDI input occurs on channel 0, but messages dictating the specific levels of brightness, as well as specific tempos of pulsing and blinking states, occur on other channels. The CSS Session Box mapping type, while helpful to an extent, only allows for sending feedback on the physical input's MIDI channel, and that single outcome is static color feedback on the pads at about 10-25% brightness. :P

Topic Category: 

11 Responses

Comments

DJThrodownDC
Control Surface Studio User
#1

2 of 3:

So, I've tried to resolve this in two ways:

1.) The first attempt involved adding a Session Box mapping, and then making a few Reactions addressing [track 1, clip 1] relative to the Sesh Box. I've attached a .png example of the first Reaction (dictating play & record states)...

This Reaction broke the script, and made the Log issue notifications of syntax errors, "Non-ASCII character," "no encoding enabled" and such. I also made 3 other Reactions; clip triggered to play/record, empty clip slot triggered to play/record, and clip triggered to stop; all with the same result.

2.) The second idea was simpler (dumber?), and involved adding 4 Session Box mappings to the same mode; in the 1st mapping I selected the physical inputs for each clip slot in the Sesh Box with all the feedback set to none, and in the other 3 mappings I selected the appropriate color values and buttons for 100% brightness, pulse at 1/4, and blink at 1/4, respectively. This idea didn't end up breaking the script at least, but the stacked Session Box mappings and their differing feedback messages all cancelled each other out.

DJThrodownDC
Control Surface Studio User
#2

3 of 3:

With my very limited coding/scripting experience I'm out of ideas here. Would someone have a few minutes to school me on how to properly accomplish this, step by step perhaps? It would mean a WHOLE lot, I’ll even PayPal you a tip or something :]

Many thanks!!

Btw, CSS absolutely rules, it's a TOTAL game changer. Been fantasizing about something like this for years. John, you have done the world a huge, huuuuuge solid! \\m//

trololololol
Control Surface Studio User
#3

Do you have the APC in the right mode? On my APC 40 Mk2 i have to send a sysex string to get the APC into alternative mode.

DJThrodownDC
Control Surface Studio User
#4

Thanks for the reply. Ahhh, interesting. That didn't even occur to me as an option, because frankly I can't yet wrap my head around anything to do with SysEx messages. So you're suggesting that I may have to trigger it into some sort of alternative mode like you did with your full size APC? Please elaborate, haven't yet encountered anyone who knew enough to break it down for me.

trololololol
Control Surface Studio User
#5

Which APC do you use? MINI?

DJThrodownDC
Control Surface Studio User
#6

Yes, it's a mini. More specifically it's an APC *Key* 25 mk2, if that makes any difference in the way that Akai programmed it vs. the rest of the APC series.

The documentation provides tables describing how to trigger various tempos of pulsing or blinking behavior based on what MIDI channel a note is sent on:
MIDI channel 0 = on at 10% brightness
...
MIDI channel 6 = on at 100% brightness
...
MIDI channel 9 = pulsing at 1/4
MIDI channel 10 = pulsing at 1/2
...
MIDI channel 14 = blinking at 1/4
MIDI channel 15 = blinking at 1/2

I've created several CSS Modes in which the pads control things like track mutes, solos & record arms, on/off buttons for FX chains etc, and on these Modes I've succeeded in getting the pads to blink or pulse with whatever color value, all using Reactions. But when it comes to programming the pads for their main purpose of clip launching (again using Reactions), I just can't get it to work, it always breaks the script.

DJThrodownDC
Control Surface Studio User
#7

For clip launch LED states I'm using a lot of Listeners and Conditions in a pad's Reaction mappings, since each pad has multiple states/colors to reflect depending on what it's doing; playing, recording, triggered, stopped, empty, etc. Idk, I'm using the same build logic that I applied to the parameters on the other Modes, which all worked great. But something about the Listener and Condition menu options involving Clips or Clip Slots, they always come back with Log errors when I try to install the script. Perhaps clip launch features require lines of custom code to function properly, as opposed to many lines of Listeners and Conditions...

DJThrodownDC
Control Surface Studio User
#8

To share/demonstrate, I've split my script into 2 separate example scripts: the first is strictly Mute & Solo button LED feedback for SeshBox tracks, while the second is SeshBox Clip Slot LED feedback (Trk1, Clip1 only). I separated them because the first one works; but the second one doesn't, Ableton won't open it, and the CSS Log generates many errors (this is the one I really need help/guidance for). I'm sharing both so you can see that I'm using the exact same boolean logic to build both Modes, but it only works for one of them (arrgghh!).

Attached are two .json files with the slimmed down example scripts if you want to take a look. Hopefully it's glaringly obvious to you what I'm doing wrong. Big thanks for your time man!!

trololololol
Control Surface Studio User
#9

I look into it.
Here is further Detail for your controller, it seems like no extra mode needed.

https://www.google.com/url?sa=t&source=web&rct=j&url=https://cdn.inmusic...

trololololol
Control Surface Studio User
#10

1. I need your controller template. i have errors because i use different controller. I wont build it myself ;-)

2. The clip launching (without the blinking) is maybe better set in the session box.

3. I checked your script so far, cant see where the problem else could be, but i dig deeper if you do the template.

DJThrodownDC
Control Surface Studio User
#11

Woops! Yes, you'll probably need the controller template to go with it, lol. Thanks man, here it is: