|
Post by squirrelchucker on May 21, 2015 20:44:46 GMT -5
As from a huge lack of support from Ableton I'm on a constant mission to customize Push to better suit my needs. This has led me to pick up PXTlive and do some custom multi-coloring of clip colors when launching, recording and looping along with pads set to "blink" or "pulse" for certain functions. That and recoloring my drum rack for mute/solo and pad color of selected mute and solo.
Anyways, on PXT Live when in Poly Sub-Mode, if you hold down "Shift" Push allows you launch clips from Session view which is great. What's even better are the clips "blink" repeatedly from the clip color to black very fast, (which I prefer to Push's default slow-pulsating green, which I've changed to blink from green to blue). I'm looking to duplicate the clip blinking action used in Poly-Sub Mode while holding down shift. I've looked around in a few decompiled pyc files and am hitting a wall as to what I need to change in the script and how to change it. I don't need a super detailed explanation, just what script this command lies in and what the command for such action would be.
The reason I would like to do this is because my eyes are kind of bad and anything to help me see what Push is doing would be a huge improvement. Especially in large live sets where I use a multitude of colors to differentiate between track type, notation density, and song separation.
Hope that made sense and thanks in advance for reading my post and any info one might be able to share.
Best, squirrel chucker
|
|
|
Post by squirrelchucker on May 21, 2015 23:44:52 GMT -5
I'm guessing this can be changed in the SkinDefault.py under "class Session:" under "ClipStarted". Not sure what command would make it so the pads on Push stay the same color as the clips in Live though.
|
|
|
Post by Stray on May 22, 2015 6:16:49 GMT -5
SkinDefault.py just allows for static values (such as single color/LED state to represent a particular clip state), so that wouldn't work for you're looking to do. Instead, you'd have to modify SpecialClipSlotComponent within SpecialSessionComponent.py. And that, unfortunately, is not straightforward due to the way its base class works as well as how Push's LEDs work. In short, there are two (inherited) methods responsible for updating an LED. There's _feedback_value, which returns the color/value to use. And then update, which actually sends the value to the LED. update calls _feedback_value.
To further complicate things, you need to send two MIDI messages to Push in order to pulse an LED. That can be handled by the Pulse(AnimatedColor) class found in Colors.py, but you'd need to define one of those for each possible clip color, which is inefficient IMO. But it would make it so you'd only need to override _feedback_value.
A more efficient approach (IMO) is to override both _feedback_value and update. This way, _feedback_value can return the corresponding clip color and can set a variable that determines whether the LED should pulse. update can then send out the two MIDI messages for pulsing depending on the state of the variable set by _feedback_value.
|
|
|
Post by squirrelchucker on May 22, 2015 16:48:27 GMT -5
Thanks for the reply Stray! Hmm, this is a going to be a bit more complex than I thought it would be. I have already programed bi-colored status LEDs in the SkinDefault.py for actions such as clip launch count-in, (pulses from red to blue), clip recording (pulses from red to magenta), and clip playback (blinks from green to lime). Was hoping it would just be a simple command under SkinDefault/Class Action/Clip Started, like 'current clip color' or something simple.
I'm currently waiting for a buddy to decompile SpecialSessionComponent.pyc and Colors.pyc as I've yet to find a decompiler for OSX I can figure out. I will investigate further once I get these files back.
Thanks for your reply though, really appreciate it! Might be hitting this thread back up if anyone is still willing to help assist me if needed.
Best, squirrel chucker
|
|