; MAKE BETTER USE OF F-KEYS ; -> Reassigns F1-F12 in Ableton to genuinely useful actions instead of the default track activators. ; !! Tag your favourite plugins with "AutoHotKey" in Ableton's browser. ; ------------------------------------------------------------------ ; WHY OVERRIDE THE F-KEYS? ; Ableton's default F-key assignments mute tracks 1-8. ; In a real production session with 100+ tracks, this is basically useless. ; Let's use these easily accessible keys for something actually helpful: ; ; WHAT THIS SCRIPT DOES: ; F1-F4 → Insert your most-used plugins instantly (via browser search) ; Ctrl+F1-F4 → Insert more plugins. ; F5-F8 → Assign clip colours with one keypress ; Ctrl+F5-F8 → More clip colour options ; F9 → Record (passthrough) ; F10 → Toggle loop ; F12 → (passthrough, Ableton default) ; F13-F18 → Extended shortcuts for browser, key map, view toggles etc. ; (requires a keyboard or macro pad that sends F13+) ; ; ------------------------------------------------------------------ #Requires AutoHotkey v2.0 #SingleInstance Force SendMode("Input") SetWorkingDir(A_ScriptDir) SetTitleMatchMode(2) #HotIf WinActive("ahk_class Ableton Live Window Class") and not WinActive("Melodyne") ; ------------------------------------------------------------------ ; F1-F4: INSERT YOUR MOST-USED PLUGINS ; Tag your plugins with "AutoHotKey" in Ableton's browser for one-key loading. ; Customize these to match YOUR workflow — the plugin names below are examples. ; ------------------------------------------------------------------ ; F1 → Insert Compressor (Ableton built-in) F1::AddTaggedPlugin("AutoHotKey", "Compressor", 0) ; Ctrl+F1 → Insert Pro-C 2 (third-party alternative) ^F1::AddTaggedPlugin("AutoHotKey", "Pro-C 2", 0) ; F2 → Insert Custom Audio or Effect Rack F2::AddTaggedPlugin("AutoHotKey", "Custom Audio or Effect Rack.adg", 0) ; Ctrl+F2 → Insert OTT preset variant ^F2::AddTaggedPlugin("AutoHotKey", "OTT.adv", 0) ; F3 → Insert EQ Eight (Ableton built-in) F3::AddTaggedPlugin("AutoHotKey", "EQ Eight", 0) ; Ctrl+F3 → Insert Pro-Q 4 (third-party alternative) ^F3::AddTaggedPlugin("AutoHotKey", "Pro-Q 4", 0) ; F4 → Insert Utility (Ableton built-in) F4::AddTaggedPlugin("AutoHotKey", "Utility", 0) ; Ctrl+F4 → Insert Phase Invert ^F4::AddTaggedPlugin("AutoHotKey", "Phase Invert", 0) ; If a give search query gives you more than one result, ; then the number downArrow sends that many down arrow key strokes before hitting enter. ; ------------------------------------------------------------------ ; F5-F8: ASSIGN CLIP COLOURS ; One-keypress colour assignment for the selected clip. ; These navigate the right-click colour menu. Colours are position-based ; and may shift if Ableton changes the palette in a future update. ; ------------------------------------------------------------------ ; F5 → Full Green F5::DoBlockInputSend("{AppsKey}{End}{Up}{Up}{Up}{Up}{Right}{Right}{Right}{Right}{Right}{Enter}") ; F6 → Light Green F6::DoBlockInputSend("{AppsKey}{End}{Up}{Up}{Up}{Up}{Up}{Right}{Right}{Right}{Right}{Right}{Enter}") ; F7 → Yellow F7::DoBlockInputSend("{AppsKey}{End}{Up}{Up}{Up}{Up}{Up}{Right}{Right}{Right}{Right}{Enter}") ; F8 → Magenta F8::DoBlockInputSend("{AppsKey}{End}{Up}{Up}{Up}{Up}{Up}{Right}{Right}{Right}{Right}{Right}{Right}{Right}{Right}{Right}{Right}{Right}{Right}{Enter}") ; Ctrl+F5 → Dark Green ^F5::DoBlockInputSend("{AppsKey}{End}{Up}{Right}{Right}{Right}{Right}{Right}{Enter}") ; Ctrl+F6 → Turquoise ^F6::DoBlockInputSend("{AppsKey}{End}{Up}{Up}{Up}{Up}{Right}{Right}{Right}{Right}{Right}{Right}{Right}{Enter}") ; Ctrl+F7 → White ^F7::DoBlockInputSend("{AppsKey}{End}{Up}{Up}{Up}{Up}{Left}{Enter}") ; Ctrl+F8 → Black ^F8::DoBlockInputSend("{AppsKey}{End}{Up}{Left}{Enter}") ; ------------------------------------------------------------------ ; F9-F12: TRANSPORT & MISC ; ------------------------------------------------------------------ F9::F9 ; Record (passthrough to Ableton default) F10::Send("^l") ; Toggle loop on/off F12::F12 ; Passthrough (Ableton default) ; ------------------------------------------------------------------ ; F13-F18: EXTENDED KEYS (for keyboards / macro pads with extra F-keys) ; ------------------------------------------------------------------ F13::Send("^!b") ; Toggle browser ^F13:: { Send("!2") Send("A") } F15::Send("^k") ; Toggle Key Map mode ^F15::Send("^m") ; Toggle MIDI Map mode F16::return ; Reserved (e.g. mute via MIDI in the MIDI script) +F17::Send("u") ; Expand groups F17::Send("^!u") ; Extend take lanes F18::Send("^!3") ; Open clip view !F18::Send("^!m") ; Open device view ^F18::Send("^!4") ; Open master view ^!F18::Send("^!E") ; Toggle full-height clip view #HotIf ; ------------------------------------------------------------------ ; HELPER FUNCTIONS ; ------------------------------------------------------------------ DoBlockInputSend(toSend) { BlockInput("On") MouseGetPos(&origMouseX, &origMouseY) MouseMove(0, 0) Sleep(50) Send(toSend) MouseMove(origMouseX, origMouseY) BlockInput("Off") } AddTaggedPlugin(tag, pluginName, downArrow) { BlockInput("On") sleepTime := 300 Send("^f") Sleep(sleepTime) Send("{Esc}") Sleep(sleepTime) Send("^f") Sleep(sleepTime) Send("{#}" tag) Send("{Enter}") Sleep(sleepTime) Send(pluginName) Sleep(sleepTime) Send("{Enter}") Sleep(sleepTime) Loop downArrow { Send("{Down}") Sleep(sleepTime) } Send("{Enter}") Sleep(sleepTime) Send("{Esc}") Sleep(sleepTime) Send("^!b") BlockInput("Off") } ; April 2026 — Released under MIT license by Yannis Lever ; This code is provided as-is with no warranty. Use at your own risk. ; Check out www.livehack.tools for more LiveHacks!