ControllerHelper — User Manual
Version: 1.0.1 For: SSL UF1 + PreSonus Studio One 7 on Windows (more controllers + DAWs coming)
What’s new in 1.0.1: Visual refresh to match the 730 Company free-utility family vocabulary (deep-ink dark theme, brass accent, mono UPPERCASE field labels, sibling to Audio Helper). New per-row MIDI activity LEDs next to each port row — they pulse brass on inbound traffic and brass-soft on outbound, so you can see at a glance which banks are actually carrying messages. No functional changes from 1.0.0 — every setting, hotkey, and behavior carries over.
What ControllerHelper does
When you click a track in your DAW, your controller should follow to that track — no matter where in your session the track lives. Without help, the controller only follows tracks that happen to live in its currently-visible 8-channel window. Click a track outside that window and the controller gets left behind.
ControllerHelper fixes this by sitting quietly between your controller and your DAW, watching for selection changes, and re-banking the controller invisibly so the focused track is always under your hand. The vast majority of MIDI traffic passes through untouched — CH only intervenes when there’s a protocol gap to bridge.
Before you start
You’ll need:
- Windows 10 or 11
- A supported DAW — currently PreSonus Studio One 7 (more to come)
- A supported control surface — currently SSL UF1 (more to come). Pick yours from the dropdown menus inside ControllerHelper.
- If you’re on a UF1: SSL 360 software must be running. The UF1 talks to Studio One through SSL 360’s MCU bridge.
- loopMIDI — free, from Tobias Erichsen. Download here. ControllerHelper uses loopMIDI’s virtual MIDI ports as routing slots — one per bank. We chose loopMIDI specifically because it’s free, mature, and trusted in the music community — a gift to all of us from a developer who deserves the credit.
One important SSL 360 setting (UF1 users): open SSL 360 and make sure “Auto Select” is enabled. ControllerHelper’s track-follow magic relies on your DAW telling the controller which track is selected; that handshake requires Auto Select.
One-time setup
1. Create loopMIDI ports and enable autostart
Open loopMIDI and create four virtual port pairs by typing each name into the “New port-name” box and clicking the + button. We recommend naming them by the bank they’ll carry:
Bank ABank BBank CBank D
(Names are arbitrary — whatever you create, you’ll see those names appear in both your DAW and ControllerHelper’s port dropdowns.)
Enable loopMIDI’s autostart so the ports come back every time Windows boots — otherwise ControllerHelper will launch into an empty port list:
- In loopMIDI, click the gear icon (or File → Configuration).
- Check “Autostart”.
- Check “Start minimized” so loopMIDI’s window doesn’t pop up on every boot.
- Click Save.
That’s it — your loopMIDI bridges will now exist before Windows finishes booting, ready for ControllerHelper to bind to.
2. Configure your DAW’s External Devices
In Studio One: Studio One → Options → External Devices. Add four Mackie Control devices — one device per loopMIDI port you just created. The first one should be a Mackie Control (the head), and the other three should be Mackie Control Extenders.
For each device:
| Field | Set to |
|---|---|
| Receive From | the matching loopMIDI port (Bank A, B, C, D) |
| Send To | the same matching loopMIDI port |
| Surface Placement | a unique group per device (1, 2, 3, 4) |
The Surface Placement step is important. With each device in its own group, the four surfaces operate independently — which is what lets ControllerHelper move just the head when entering plug-in mode while leaving the others where they are.
3. Launch ControllerHelper
Run ControllerHelper.exe. The main window opens. At the top, pick
your DAW and Controller from the dropdown menus (currently
Studio One 7 and SSL UF1 — more to come). Then fill out the port
rows:
- Controller — pick
SSL V-MIDI Port 1for both Input and Output (this is the UF1 itself, when you’re on a UF1). - Bank 1 through Bank 4 — pick the matching loopMIDI ports (Bank A for slot 1, Bank B for slot 2, etc.). Both Input and Output of each row should point at the same port.
Click Connect. The status line should change to “Connected” and the Track-Follow toggle should light up.
Save settings: Your port selections, DAW, and controller choice are saved automatically on every successful Connect. Next launch, everything will be pre-populated.
Adding or removing banks: Use the + Add Bank / − Remove Bank buttons. CH supports between 1 and 16 banks per session — your DAW’s External Devices configuration should match. You’ll need to Disconnect before changing the bank count; CH locks the bank rows while connected so you can’t pull the wiring out from under a live session.
4. ControllerHelper autostart (enabled by default)
ControllerHelper is set to launch automatically when Windows starts — so it’s ready in the background by the time you open your DAW.
You’ll see the “Start ControllerHelper automatically when Windows starts” checkbox in the main window. It’s ticked on by default. Uncheck it if you prefer to launch CH manually.
(Under the hood: CH writes an entry to your user’s Registry under
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run.
It’s a per-user setting and never requires admin permissions. The
entry is updated automatically if you move the EXE.)
You’ll still need to click Connect after launch (or after the auto-launch). CH does not auto-Connect; we’d rather you confirm your ports are right than have it silently bind to whatever happens to be there.
5. Make sure loopMIDI starts BEFORE ControllerHelper
This is the most common cause of “ControllerHelper launches but my port dropdowns are empty” — Windows starts both apps at the same moment after login, and CH wins the race. By the time loopMIDI finishes creating its virtual ports, CH has already scanned and found nothing.
You have two ways to fix it. Pick whichever feels easier:
Easy fix — click “Refresh ports” once
CH has a Refresh ports button right next to the Connect button. After login, wait ~10 seconds for loopMIDI to finish starting, then click Refresh ports in CH. Your dropdowns will populate. Click Connect. Done.
This is fine for a one-time hassle but you’ll do it every login.
Better fix — delay CH’s startup by 30 seconds (recommended)
Use Windows Task Scheduler to launch CH 30 seconds after login, giving loopMIDI a head start. One-time setup, then it just works.
- In ControllerHelper, UNCHECK the “Start ControllerHelper automatically when Windows starts” checkbox. (We’re going to replace that with the Task Scheduler entry below.)
- Open Task Scheduler. Press
Win + R, typetaskschd.msc, press Enter. - In the right panel, click “Create Basic Task…”
- Name:
ControllerHelper. Optional description. Click Next. - When do you want the task to start? Pick “When I log on”. Click Next.
- What action? Pick “Start a program”. Click Next.
- Program/script: click Browse, then navigate to your
ControllerHelper.exefile and select it. - Click Next, then on the final page check “Open the Properties dialog for this task when I click Finish”, then click Finish.
- The Properties dialog opens. Click the Triggers tab → select the “At log on” trigger → click Edit.
- Check the box “Delay task for:” and set it to 30 seconds. Click OK, then OK again to save.
Done. From the next reboot onward, loopMIDI starts immediately at login (because of its own autostart), and CH waits 30 seconds before launching — by which time loopMIDI’s ports are ready.
Daily use
The system-tray icon
ControllerHelper installs a small icon in your Windows system tray (by the clock) and stays there for as long as it’s running. The icon is always visible — left-click to toggle Track-Follow on/off, right-click for the menu (Toggle / Show / Exit).
Hover the icon for a status tooltip:
- “ControllerHelper — Disconnected” — not connected yet
- “ControllerHelper — Track-Follow ON” — the magic is on
- “ControllerHelper — Track-Follow OFF” — single-MC mode (plug-in editing)
The Track-Follow toggle
Track-Follow has two states:
- ON — the headline feature. Click any track in your DAW’s mixer and your controller banks to that track automatically. Works across all four 8-channel surfaces.
- OFF — your controller acts like a stock single-MC unit, talking only to the head device. Used during plug-in editing so your DAW’s native plug-in mode behaves exactly as it would with one MC.
You can flip the toggle three ways:
- The on-form button in the main window
- Left-click the tray icon
- Right-click the tray icon → toggle
In most sessions you won’t need to touch the toggle manually because ControllerHelper handles it for you (see plug-in editing below).
Hotkeys (optional but powerful)
ControllerHelper registers three configurable global hotkeys you can press from anywhere in Windows — including while your DAW has focus. Defaults:
| Hotkey | Effect |
|---|---|
Ctrl + Alt + 1 | Force Track-Follow ON |
Ctrl + Alt + 2 | Force Track-Follow OFF |
Ctrl + Alt + B | Toggle Track-Follow |
To change them: click the Hotkeys… button in the main window, click into the row you want to change, press the key combination you want, click Save.
The ON / OFF hotkeys are idempotent — pressing “ON” when it’s already on is a no-op, same for OFF. This makes them safe to wire to physical buttons on a UF1 (or any controller that can emit keystrokes) without worrying about state drift.
Tip for UF1 users: SSL 360 lets you map any UF1 button to a
keystroke. Map button 1 to Ctrl+Alt+1, button 2 to Ctrl+Alt+2,
and you have hardware Track-Follow ON/OFF that survives any state.
Plug-in editing — what automatically turns off and why
When you press the Plug-In button on your UF1, ControllerHelper automatically turns Track-Follow OFF and switches into single-MC mode. When you press any other V-Pot Assignment button (Pan, Send, Track, EQ, Instrument), Track-Follow turns back ON. You don’t have to think about it.
While Track-Follow is OFF for plug-in editing, ControllerHelper intentionally disables a few of your UF1’s controls. This is by design, not a limitation.
The controls that turn off:
- The channel knob (spin)
- Channel SEL buttons
- Channel faders (ch 1–8)
- MUTE / SOLO / REC-arm buttons (ch 1–8)
The controls that stay live:
- V-Pots — what you came here for; they edit the focused plug-in
- The master fader — controls the master bus regardless of bank
- Cursor up/down/left/right — for stepping between tracks
- The channel knob’s push-down button (Focus Mode)
- All transport controls
- Every other V-Pot Assignment button — pressing one of them is how you exit plug-in editing
Why we turn off those controls
Studio One’s plug-in mode routes plug-in parameter data only to the head device — extender bridges receive none of it. The MCU protocol doesn’t expose a clean way to keep multi-surface bank navigation and plug-in editing both working flawlessly at the same time. We chose to close that door entirely while you’re focused on a plug-in: your V-Pots stay locked to the parameter under your hand, the controller doesn’t redraw mid-tweak, and what you see is exactly what you’d expect from a dedicated plug-in editor.
To navigate tracks during plug-in editing:
- Click any track directly in your DAW’s mixer. The V-Pots follow your new focus automatically. This is the recommended way.
- Use the cursor buttons on the UF1 to step through adjacent tracks.
- Press any non-Plug-In V-Pot Assignment button (Pan, Send, Track, EQ, or Instrument) to leave plug-in editing entirely — the full controller comes back to life in the same heartbeat.
The protocol gave us a sharp limitation. We removed the limitation from your experience.
What the banners at the top mean
ControllerHelper occasionally shows one or two small banners across the top of the main window. They both fetch quietly in the background at startup and never block the app:
- Pale blue banner — an update is available. Click the headline to open the download page in your browser. The ”✕” dismisses it for the current session. Hover the headline to preview release notes (if provided).
- Pale yellow banner — news from The 730 Company. Click to open the linked page in your browser. The ”✕” dismisses it for the session.
If you’re offline, the banners either show the last cached message or stay hidden — no errors, no nagging. They never block startup or routing.
Troubleshooting
Enable logging for support
By default ControllerHelper runs silently — no log files. If you run into something that needs a closer look, enable logging via the “Enable troubleshooting log” checkbox in the main window (hover it for the full description). While enabled, every MIDI message in and out is captured.
Log files live at:
%LOCALAPPDATA%\ControllerHelper\logs\
Email the most recent log file (named
controllerhelper-YYYYMMDD-HHMMSS.log) to support@the730company.com
along with a quick description of what happened.
Turn logging back off when you’re done troubleshooting — keeping it on full-time creates large log files unnecessarily.
Common issues
“My port dropdowns are empty after Windows starts up.” loopMIDI hasn’t finished starting yet when CH launches. Either click Refresh ports, wait, then connect — or set up the 30-second Task Scheduler delay described in setup step 5.
“The UF1 isn’t following my track clicks.” Confirm SSL 360’s Auto Select is enabled. Disconnect and reconnect in ControllerHelper. If still not working, enable logging, reproduce the issue, and send the log.
“My faders/mutes act on the wrong tracks during plug-in editing.” That’s the intentional turn-off described above. Use Studio One mixer clicks or the cursor buttons to navigate tracks while editing.
“The channel knob does nothing when I’m in plug-in mode.” Also intentional. Same reasoning — Studio One’s plug-in mode routes to a single device, so a bank-shift can’t be made to behave consistently across multiple surfaces while editing. Use cursor buttons or mixer clicks.
“My system tray icon disappeared.” ControllerHelper might have crashed. Re-launch the executable. If it happens reproducibly, enable logging and send the log.
“My hotkey isn’t firing.” Another app may have already claimed that key combination. Open the Hotkeys… dialog and reassign to a different combo.
Why this exists
ControllerHelper is offered free as a small return on what the music community has given me. Real names belong on this page in the final release — see The730Company.com for the list of developers and companies whose affordable, high-quality work made this kind of project possible in the first place.
The 730 Company exists to keep that lineage going.