I've done a little QML editing, but I'm having trouble with this challenge: On the S5, I wish there were a way to turn on "Active Loop" mode without setting a loop. In other words, a way to toggle the loop button to the right of the IN/OUT buttons on the UI:
My goal is to control whether or not my deck automatically starts looping the next time the playhead encounters one of my predefined loops.
Ideally, I'd be able to do something really fancy like toggle this with a double-touch (not double-press) on the loop encoder. But what I'd settle for is repurposing the FREEZE button as an active loop indicator/toggle since I've never once found FREEZE to be useful for how I mix.
I think I'm in the right area of code (see below) and while I was able to disable to freeze button I couldn't figure out how to repurpose it as the active loop toggle.
Any guidance/code would be very much appreciated. I am happy to contribute a few beers worth over PayPal as well.
Thanks!
function onFreezeButtonPress(padsMode, deckIsLoaded)
{
var exitFreeze = false;
if (padsMode.value == freezeMode)
{
exitFreeze = true;
}
else if (deckIsLoaded)
{
exitFreeze = false;
padsMode.value = freezeMode;
}
return exitFreeze;
}
function onFreezeButtonRelease(padsMode, exitFreeze, deckType)
{
if (exitFreeze)
{
updateDeckPadsMode(deckType, padsMode);
}
}
// Deck A
WiresGroup
{
enabled: (focusedDeckId == 1)
Wire { from: "%surface%.hotcue"; to: SetPropertyAdapter { path: propertiesPath + ".top.pads_mode"; value: hotcueMode; color: Color.Blue } enabled: hasHotcues(deckAType) }
Wire { from: "%surface%.freeze"; to: ButtonScriptAdapter { brightness: ((topDeckPadsMode.value == freezeMode) ? onBrightness : dimmedBrightness); color: Color.Blue; onPress: { deckAExitFreeze = onFreezeButtonPress(topDeckPadsMode, deckAIsLoaded.value); } onRelease: { onFreezeButtonRelease(topDeckPadsMode, deckAExitFreeze, deckAType); } } enabled: hasFreezeMode(deckAType) }
Wire { from: "%surface%.remix"; to: SetPropertyAdapter { path: propertiesPath + ".top.pads_mode"; value: remixMode; color: (hasRemixMode(deckAType) ? Color.Blue : Color.White) } enabled: !hasStemMode(deckAType) && (hasRemixMode(deckAType) || hasRemixMode(deckCType)) }
Wire { from: "%surface%.remix"; to: SetPropertyAdapter { path: propertiesPath + ".top.pads_mode"; value: stemMode; color: Color.Blue } enabled: hasStemMode(deckAType) }
}