Save several foot-pedal setups and switch between them with one click.
A USB foot pedal can send any keystroke you want, which makes it useful for more than one job. Mine handle lean-left and lean-right in games, and drive my teleprompter when I record video. Push-to-talk, mute, screenshots, a macro you fire constantly — anything you can put on a key, you can put on a pedal.
Pedable (NCH Software) is a free utility that maps a pedal to keystrokes, and it does that well. It only remembers one configuration at a time, though, so using your pedals for two different things means re-mapping them by hand every time you switch.
PPW saves each setup as a profile and swaps them for you.
It also writes key combinations that Pedable's own setup screen won't record — including
Ctrl+Alt+Page Up / Page Down, which is what the Elgato Prompter uses for moving
through a script. That was the case that started this: the Prompter scrolls at a fixed
speed, which doesn't work well if you ad-lib, and its hotkeys let you move a paragraph at
a time instead.
PPW doesn't modify Pedable. It reads and writes Pedable's own settings, so Pedable stays exactly as its authors shipped it.
Version 1.3 · Windows · free to use, no resale — see Licence.
- Download
PPW-GUI.exefrom the latest release. - Drop it next to
pedable.exe— usuallyC:\Program Files (x86)\NCH Swift Sound\Pedable\(Windows will ask for admin to copy into Program Files). - Run it.
That's the whole install. PPW-GUI.exe is fully self-contained — one ~77 KB file,
no runtime to install, no setup program, nothing else needed. It works from any folder;
next to pedable.exe just keeps things tidy.
Requires Windows 8 or newer and Pedable already installed and configured for your pedal hardware.
PPW uses .NET Framework 4.x and Windows PowerShell 5.1 — both are built into Windows from Windows 8 / Server 2012 onward, so there is normally nothing to install. PPW checks for them at startup and, if one is missing or blocked by policy, explains what's needed and offers the Microsoft download link rather than just failing. The System check button shows exactly what it detects.
Every release publishes a SHA-256 checksum in SHA256SUMS.txt, so you can confirm you
have the genuine, current build:
Get-FileHash PPW-GUI.exe -Algorithm SHA256Compare it to the hash in SHA256SUMS.txt for that release. They should match exactly.
SmartScreen: the
.exeisn't code-signed (certificates cost real money for a free tool), so Windows may warn you the first time. That's expected — verify the checksum above, then choose More info → Run anyway. If you'd rather not run someone else's binary at all, build it yourself: see Building from source below. It's a single PowerShell script and you can read every line of it first.
- Pick a profile in the list.
- Click Apply to pedals.
The profile matching your current pedals is shown in green and marked ACTIVE. Press F1 or click Help in the app for the full guide.
Command line, for scripting or a shortcut key:
PPW-GUI.exe # normal window
.\PPW-GUI.ps1 -Profile "Elgato Prompter" # apply and exit, no window| Action | Hotkey |
|---|---|
| Play / Pause | Ctrl + Alt + P |
| Next chapter | Ctrl + Alt + Page Down |
| Previous chapter | Ctrl + Alt + Page Up |
Two things that trip people up:
- The hotkeys are OFF by default. Turn them on in Elgato Camera Hub → Preferences → "Control Prompter script with Hotkeys" (needs Camera Hub 1.11+). Without this the pedals send the right keys and nothing listens.
- A "chapter" is just a paragraph. Camera Hub splits your script at every blank line, so how far one tap moves you is entirely up to how you paragraph it. Put a blank line wherever you might wander off script. Two to four spoken lines per chapter works well.
PPW only edits Pedable's own registry values under HKEY_CURRENT_USER — your user
account only. It needs no administrator rights to run and touches nothing else.
Before every change it exports a .reg backup of Pedable's settings to
%LOCALAPPDATA%\PedalProfiles\backups (the 30 most recent are kept). To undo a change
by hand, close Pedable and double-click one of those files.
Your data:
%LOCALAPPDATA%\PedalProfiles\profiles.json saved profiles
%LOCALAPPDATA%\PedalProfiles\settings.json where pedable.exe was found
%LOCALAPPDATA%\PedalProfiles\backups\ automatic .reg backups
Pedable keeps its settings in memory and only writes them to the registry when it closes — so anything written while it runs is overwritten the moment it exits. PPW closes Pedable, writes, and restarts it. You'll see its icon blink; that's expected.
It shuts Pedable down with WM_QUIT rather than killing it, so Pedable exits cleanly
and doesn't report a crash on next launch.
Free to use and share. No resale, no bundling. Provided AS IS.
You may use it for anything (personal or commercial) free of charge, copy it, share it unmodified, and modify it for your own use. You may not sell, rent, license or charge for it — alone or as part of a bundle, package, subscription or paid service — or include it in another product without written permission.
It comes with no warranty of any kind and you use it entirely at your own risk. Full
text in LICENSE.txt, also shown in the app under About.
Copyright © 2026 SiggySoft LLC.
Pedable is a product of NCH Software. PPW is an independent, unofficial utility — not endorsed by, affiliated with or supported by NCH Software. It does not modify, patch or redistribute any part of Pedable. Elgato Prompter and Camera Hub are products of Corsair/Elgato; PPW just sends ordinary keyboard shortcuts. All trademarks belong to their respective owners.
A pedal does the wrong thing / next and previous are backwards. Pedal numbering doesn't always match physical position — it varies by device. Swap those two values in Edit. Nothing is broken.
Pedable shows "Action is not defined". You're on an old build. Update to the latest release.
Something isn't working and I want to see what PPW sees. Click System check in the app. It reports your .NET and Windows PowerShell versions, where Pedable was found and how, where your settings live, and how many backups exist.
PPW can't find Pedable.
Click Locate Pedable... and point it at pedable.exe. PPW normally finds it via the
running process, the registry, then the usual Program Files locations.
Windows won't let me pin it to the taskbar. Windows refuses to pin an executable that runs from a network drive. Copy it to a local disk (which is what the install step above does).
Pedable's registry format, reverse-engineered
Bindings live at HKCU\Software\NCH Swift Sound\Pedable\PedalSettings\Pedal1|Pedal2|Pedal3.
There is no config file.
Every value is REG_SZ (a quoted string), including the numeric ones. Writing them as
DWORDs makes Pedable unable to read them, and its Action column shows
"Action is not defined."
Pedable stores a key sequence, not a packed modifier mask:
MappingType= number of keys (1 = single key, 3 =Ctrl+Alt+X)Key_1..Key_3= one entry per key, pressed in order and held together
Each entry is:
(scan_flags << 24) | (scan_code << 16) | virtual_key_code
scan_code— the set-1 hardware scan codescan_flags—0x00on the first key,0x20on each following key ("still held"), plus0x01for extended keys (PageUp/PageDown/arrows/Home/End/Insert/Delete)
Ground truth captured from Pedable's own UI for Ctrl+Alt+Z:
| Value | Contents |
|---|---|
Key_1 = 1900561 = 0x001D0011 |
Ctrl — scan 0x1D, vk 0x11, flags 0x00 |
Key_2 = 540540946 = 0x20380012 |
Alt — scan 0x38, vk 0x12, flags 0x20 |
Key_3 = 539754586 = 0x202C005A |
Z — scan 0x2C, vk 0x5A, flags 0x20 |
PhysicalPedalId ("0") is required — a pedal entry missing it will not fire. Other
values: Status (1 = active, 0 = unassigned), Virtual (0), MappedCommand (-1),
MappedString / FilePath (empty).
Worth knowing if you go looking yourself: an earlier reading of this format —
(modifiers << 16) | vk— looked convincing and was wrong.Q(0x00100051) andE(0x00120045) both decode plausibly under it, andEeven looks like "Ctrl+E" because0x12resembles a Ctrl bit when it is really E's scan code. Two samples agreeing was not enough to confirm it. What settled the format was setting a combination in Pedable's own UI and reading back exactly what it wrote.Also worth noting: NCH's documentation describes single-key mapping only, but multi-key sequences are how modifiers actually work here.
Building from source
.\Build-Exe.ps1 # compiles PPW-GUI.exe (embeds PPW-GUI.ps1 + icon)
.\Install-Local.ps1 # installs it beside pedable.exe, elevating if neededPPW-GUI.exe hosts PowerShell in-process via System.Management.Automation rather
than spawning powershell.exe — otherwise the window belongs to PowerShell, the taskbar
shows its icon, and pinning misbehaves. PPW-GUI.ps1 is embedded with
csc /resource:<path>,<name>; a PPW-GUI.ps1 sitting beside the .exe takes priority,
which keeps development easy.
| File | Purpose |
|---|---|
PPW-GUI.ps1 |
The whole application (WinForms UI + registry engine) |
PPW-GUI.exe |
Self-contained host — embeds the script and the icon |
ppw.ico |
App icon |
Build-Exe.ps1 |
Builds the .exe |
Install-Local.ps1 |
Installs beside pedable.exe |
LICENSE.txt |
Full licence text |