1 (edited by manisteinn 2014-12-01 21:45:42)

Topic: Control strip keyboard control script (Updated)

Updated 2014-12-01
I upgraded to a FF UCX recently and added panel toggling (Settings, Equalizer, Dynamics) for all channels in each row. Original functionality is unmodified:

SetTitleMatchMode, Regex
SetTitleMatchMode, Slow

/*
    
    Updated 2014-12-01:
        Added hotkeys for toggling all channel panels 
        (Settings, Equalizer, Dynamics) in each row, 
        useful for quick parameter overview of all channels.
        
        In 2row mode alternate coordinates for the Software Playback 
        row are used automatically instead of the missing third row.
        Every time it's moved activate the "get2rowOffset" hotkey while
        hovering it's leftmost spanner to update it's position, and/or use 
        AHK window spy to find the correct horizontal offset and preset
        the 2rowxOffset variable. To visually confirm the update the spanner
        is slowly doubleclicked (don't move the cursor for 100ms).
        
        Sometimes only the first panel is toggled when the cursor is outside
        the window, not sure why.
    
    
    Keyboard control for right side control strip of TotalMix FX (v1.04)
    Written in AutoHotKey (v1.1.16.05) by manisteinn 2014-10-26
    
    
    With a TotalMix FX window active, any keystroke supported by AHK
    can be used to control the upper part of the right side control strip.
    Snapshots(Alt1-8)/Groups/Layout Presets aren't implemented.
    
    Current offset values are for 100% zoom mode, AHK Window spy
    can be used to find correct values for 135%/200% mode if desired.
    The horizontal offset (first value) is subtracted from 
    the window width in order to handle window resizing,
    the vertical offset (second value) is unmodified.
    
    Note: As the window title for mixer/matrix view is identical
    this script can't differentiate them, keystrokes other than
        Undo, Redo, M, S, F, Mono Mode 
    might cause unexpected behaviour in matrix view.
    
    List/format of supported keystrokes:
    http://www.autohotkey.com/docs/commands/Send.htm
    
*/

;Set an initial 2row offset if you wish
global 2rowxOffset :=0

clickButton(xOffset, yOffset) {
    WinGetPos, X, Y, Width, Height, A
    ControlClick, % "x" . Width - xOffset . " y" . yOffset . ", A"
}

togglePanels(xOffset, yOffset, 2rowxOffset:=0, 2rowyOffset:=0) {
    WinGetPos, X, Y, Width, Height, A
    
    ;Keywait needed for hotkeys containing modifiers, 1 sec timeout
    KeyWait, Control, T1
    KeyWait, Alt, T1
    Keywait, Shift, T1
    
    SendEvent {ControlDown}
    if (Height < yOffset) {
        ControlClick, % "x" . 2rowxOffset . " y" . 2rowyOffset . ",A"
    } else {
        ControlClick, % "x" . xOffset . " y" . yOffset . ",A"
    }
    SendEvent {ControlUp}
}

mouseScroll(xOffset, yOffset) {
    WinGetPos, X, Y, Width, Height, A
    ControlClick, % "x" . Width - xOffset . " y" . yOffset . ", A, , WheelUp"
}

get2rowOffset() {
    MouseGetPos, xPos, yPos
    
    2rowxOffset := xPos

    ;Remove/comment to disable doubleclicking the spanner
    Click
    sleep, 100
    Click
    
    ;Uncomment to show message box for 1 sec on each update
    ;MsgBox,,Offset updated, %xPos%, 1
}


#IfWinActive RME TotalMix FX.*




; ----- Control strip -----


;Undo
1::clickButton(35,95)

;Redo
2::clickButton(35,117)



;M
3::clickButton(80,142)

;S
4::clickButton(55,142)

;F
5::clickButton(30,142)



;Mono Mode (Matrix view only)
6::clickButton(57,165)



;Submix
7::clickButton(70,185)

;Free
8::clickButton(40,185)

;SubmixToggle (Old TotalMix behaviour)
;s::
if (s=0) {
    clickButton(70,185)
    s=1
} else {
    clickButton(40,185)
    s=0
}



;Post FX
9::clickButton(70,217)

;RMS
0::clickButton(40,217)



;Fx
e::clickButton(70,250)

;Trim
r::clickButton(40,250)

;2row
t::clickButton(70,270)

;Names
y::clickButton(40,270)



;VolUp
i::mouseScroll(200,630)

;VolDown
o::clickButton(120,777)



; ----- Channel row panel toggling -----

;Update 2row spanner offset
u::get2rowOffset()

;   First row

;Tool symbol
a::togglePanels(62,224)

;Equalizer
s::togglePanels(62,246)

;Dynamics
d::togglePanels(62,265)


;   Second row 

;Tool symbol
f::togglePanels(62,500)

;Equalizer
g::togglePanels(62,520)

;Dynamics
h::togglePanels(62,540)



;   Third row (alternate coordinates for 2row mode)

;Tool symbol
j::togglePanels(62,774, 2rowxOffset,224)

;Equalizer
k::togglePanels(62,794, 2rowxOffset,246)

;Dynamics
l::togglePanels(62,817, 2rowxOffset,265)

Original post
I wanted customizable keyboard control of the right side control strip of TotalMixFX, so I made a simple AutoHotKey script. I figured I'd share in case someone finds it useful.

SetTitleMatchMode, Regex
SetTitleMatchMode, Slow

/*
    
    Keyboard control for right side control strip of TotalMix FX (v1.04)
    Written in AutoHotKey (v1.1.16.05) by manisteinn 2014-10-26
    
    
    With a TotalMix FX window active, any keystroke supported by AHK
    can be used to control the upper part of the right side control strip.
    Snapshots(Alt1-8)/Groups/Layout Presets aren't implemented.
    
    Current offset values are for 100% zoom mode, AHK Window spy
    can be used to find correct values for 135%/200% mode if desired.
    The horizontal offset (first value) is subtracted from 
    the window width in order to handle window resizing,
    the vertical offset (second value) is unmodified.
    
    Note: As the window title for mixer/matrix view is identical
    this script can't differentiate them, keystrokes other than
        Undo, Redo, M, S, F, Mono Mode 
    might cause unexpected behaviour in matrix view.
    
    List/format of supported keystrokes:
    http://www.autohotkey.com/docs/commands/Send.htm
    
*/



clickButton(xOffset, yOffset) {
    WinGetPos, X, Y, Width, Height, A
    ControlClick, % "x" . Width - xOffset . " y" . yOffset . ", A"
}



#IfWinActive RME TotalMix FX.*



;Undo
1::clickButton(35,95)

;Redo
2::clickButton(35,117)



;M
3::clickButton(80,142)

;S
4::clickButton(55,142)

;F
5::clickButton(30,142)



;Mono Mode (Matrix view only)
6::clickButton(57,165)



;Submix
7::clickButton(70,185)

;Free
8::clickButton(40,185)

;SubmixToggle (Old TotalMix behaviour)
;s::
if (s=0) {
    clickButton(70,185)
    s=1
} else {
    clickButton(40,185)
    s=0
}



;Post FX
9::clickButton(70,217)

;RMS
0::clickButton(40,217)



;Fx
e::clickButton(70,250)

;Trim
r::clickButton(40,250)

;2row
t::clickButton(70,270)

;Names
y::clickButton(40,270)

Just save as a .ahk file, customize your shortcuts and run with AutoHotKey.



There seems to be an error in the documentation at https://archiv.rme-audio.de/download/wi … er_4_e.pdf in the "7.8 Hotkeys and Usage" section:

Clicking on one of the channel settings buttons (slim/normal, settings) with held down Shift key lets all channels to the right change their state. For example all settings panels can be opened/closed simultaneously.

It's actually the CTRL key.



Also

Alt and number 1 to 8 (not on the numeric keypad!) will load the corresponding Snapshot.

Doesn't work for me. Bug?

Using Win7x64, TotalMixFX v1.04, Multiface

2

Re: Control strip keyboard control script (Updated)

Many thanks for this nice script!

> It's actually the CTRL key.

Thanks for pointing out this error. Please note that the function is correctly described in chapter 7.3 The Channels.

> Doesn't work for me. Bug?

Not really. Instead of the Snapshots the first 8 Workspaces stored with the W hotkey are loaded this way. I will update the manuals.

Regards
Matthias Carstens
RME

3

Re: Control strip keyboard control script (Updated)

Updated manual is available online.

https://archiv.rme-audio.de/download/wi … er_4_e.pdf

Regards
Matthias Carstens
RME

Re: Control strip keyboard control script (Updated)

Thanks manisteinn,

Very useful script.  I'm wondering how to get the up/down keys to increase/decrease the Main Out fader.

Re: Control strip keyboard control script (Updated)

RichardC wrote:

Thanks manisteinn,

Very useful script.  I'm wondering how to get the up/down keys to increase/decrease the Main Out fader.

I just tried a ControlClick WheelUp command on the fader but it had no effect.
I assume the fader area handles mouse input differently since a Click command with the cursor positioned on the fader worked fine. If you're ok with the cursor moving each time you adjust the volume, that's an option. You might be able to work around it, but I'm not going to spend time on that: http://www.autohotkey.com/board/topic/9 … k-improve/

I'd suggest using MIDI/OSC if you really need keyboard control of faders.
For example: http://www.rme-audio.de/forum/viewtopic.php?id=8343

Re: Control strip keyboard control script (Updated)

Thanks manisteinn,

I'm going to try your suggestions.

Re: Control strip keyboard control script (Updated)

I upgraded to a FF UCX recently and added panel toggling (Settings, Equalizer, Dynamics) for all channels in each row, see first post.