TabletMidiPad is a Windows WPF utility that turns tablet, pen, stylus, or mouse movement into MIDI CC data for a DAW.
The app provides a configurable control surface with rectangular zones. Each zone can send its own MIDI channel and CC assignments for X position, Y position, and pressure.
When the Wintab backend is active, TabletMidiPad opens priority Wintab contexts and overrides supported Wacom ExpressKey assignments. While TabletMidiPad is running, normal tablet, pen, and button behavior in other applications may be unavailable or altered.
During an orderly shutdown, TabletMidiPad explicitly disables the ExpressKey overrides it created before closing its Wintab contexts. A crash, forced termination, driver failure, or system shutdown can prevent that cleanup. If normal tablet behavior does not return, close or restart TabletMidiPad and restart Wacom Professional Service (WTabletServicePro) from Windows Services or reboot Windows.
- runtime settings UI inside the app
- multiple rectangular zones
- per-zone MIDI channel and CC numbers for X, Y, and pressure
- per-zone inversion and pressure behavior
- configurable lower and upper pen-button actions
- auto-tiling for newly added zones
- optional zone locking until release
- Windows MIDI Services loopback creation at startup
- direct Wacom/Wintab pen input with WPF stylus/mouse fallback
- Wintab overlap recovery and priority context handling
- Windows 11 x64
- Windows MIDI Services Runtime and Tools, including
midi.exe - .NET 10 Desktop Runtime for a framework-dependent build
- a DAW or other MIDI-capable application that can receive CC data
For direct Wacom/Wintab input:
- a compatible Wacom Professional tablet driver
- Wacom Professional Service (
WTabletServicePro) running Wintab32.dllsupplied by the installed driver
TabletMidiPad has been tested with:
- Windows MIDI Services Console
1.0.15-rc.2.18 - Wacom Tablet Driver
6.4.13-4
Other compatible releases may work but have not been verified. Obtain the current supported Wacom driver for your hardware from Wacom Driver Support. The tested 6.4.13-4 installer is also available from Wacom's CDN.
Do not run TabletMidiPad as administrator. If its Start Service action cannot start WTabletServicePro, start the service from services.msc instead.
TabletMidiPad does not execute a bare midi.exe from PATH. It resolves a trusted absolute executable path in this order:
TABLETMIDIPAD_MIDI_EXE_PATH, if set to an existing absolute path whose file name ismidi.exe- the Windows MIDI Services
MidiConsolemachine-registry value C:\Program Files\Windows MIDI Services\Tools\Console\midi.exe
Install the Windows MIDI Services Tools component if the console is missing.
At startup, TabletMidiPad asks Windows MIDI Services to create a loopback pair:
Tablet XY (App)Tablet XY (DAW)
TabletMidiPad writes WinMM MIDI messages to Tablet XY (App). Your DAW should listen to Tablet XY (DAW).
By default, DestroyVirtualMidiOnExit is false, so the loopback pair is preserved when TabletMidiPad exits. If that configuration value is enabled, TabletMidiPad asks midi.exe to remove the association during an orderly shutdown. A crash or forced termination can prevent removal; use Windows MIDI Services tooling or restart the service if manual cleanup is needed.
Settings are stored in %AppData%\TabletMidiPad\config.json. On the first run after an upgrade, a legacy config.json next to the executable is migrated when present.
TabletMidiPad prefers direct Wintab input. If Wintab is unavailable, it falls back to WPF stylus or mouse input. The HUD shows the active backend:
WintabStylusMouse
For Wintab to activate:
- the Wacom driver must be installed correctly
WTabletServicePromust be runningWTInfoA(0, 0, NULL)must respond throughWintab32.dll
The fallback backend keeps the application usable without Wintab, but it does not provide the same direct tablet access or Wacom ExpressKey handling.
To expose both pen side buttons as normal events, configure them in Wacom Center:
- set one side button to
Click - set the other side button to
Right Click - do not map a button to
Scrollif TabletMidiPad should handle it
On the tested setup, the lower button reported mask=0x0002, pressed=2 and the upper button reported mask=0x0004, pressed=3. Driver and device behavior can vary.
Zone bounds use normalized Left, Top, Width, and Height values from 0.0 to 1.0. X and Y are normalized within the active zone, so each zone has its own local MIDI range from 0 to 127.
If the pointer or pen is outside all enabled zones, the app sends nothing. When zone switching is disabled, the currently pressed zone remains active until release even if the pointer crosses into another zone.
Release behavior can be configured as:
No Send On ReleaseHoldReset Pressure OnlyReset All
- Start TabletMidiPad.
- Start Ableton Live after the loopback endpoints exist.
- Open
Preferences > Link, Tempo & MIDI. - Under Inputs, find
Tablet XY (DAW). - Enable
Remote; normally also enableTrack. - Enter MIDI Map mode and move on the pad.
- Start TabletMidiPad.
- Start Waveform after the loopback endpoints exist.
- Select
Tablet XY (DAW)as the MIDI input. - Ensure the target listens for controller data on the active zone's channel.
Install the .NET 10 SDK, then run:
dotnet restore
dotnet build
dotnet test TabletMidiPad.Tests\TabletMidiPad.Tests.csprojIf a running executable locks the normal output, use a separate output directory:
dotnet build -p:OutDir=bin\Verify\The GNU Make targets run on Windows with PowerShell:
make publish
make archive
make installer
make releasePackaging additionally requires 7-Zip and NSIS. Release packaging:
- excludes PDB files from the public package
- includes LICENSE and THIRD-PARTY-NOTICES.txt
- generates an explicit uninstall file manifest
- runs
scripts/Test-PublicRelease.ps1before creating public artifacts - writes SHA-256 checksums for the archive and installer during
make release
The uninstaller deletes only files listed in the generated release manifest. It leaves unknown files in the installation directory rather than recursively deleting the directory.
Current community builds are not code-signed. Windows SmartScreen may warn before launch; verify the published SHA-256 checksum before running an artifact.
- install Windows MIDI Services Runtime and Tools
- confirm the registered or default Program Files
midi.exeexists - if necessary, set
TABLETMIDIPAD_MIDI_EXE_PATHto its existing absolute path - do not copy an unrelated executable named
midi.exeinto the application directory
- confirm Windows MIDI Services Runtime and Tools are installed
- start TabletMidiPad before the DAW
- restart the DAW after creating the endpoints
- make sure the DAW listens to
Tablet XY (DAW), notTablet XY (App)
- confirm the Wacom driver is installed
- confirm
WTabletServiceProis running inservices.msc - confirm
Wintab32.dllis available - reboot after installing or updating the driver if necessary
If Wintab remains unavailable, TabletMidiPad falls back to stylus/mouse input.
Restart Wacom Professional Service (WTabletServicePro) from Windows Services or reboot Windows. An abrupt process termination does not allow TabletMidiPad to run its normal Wintab override cleanup.
- Views/MainWindow.xaml: main window layout
- Views/MainWindow.xaml.cs: main window event integration
- AppConfig.cs: saved configuration model
- Services/Input/WintabInputBackend.cs: direct Wintab backend and override lifecycle
- Services/Input/WintabInterop.cs: Wintab native interop definitions
- Services/Midi/WinMmMidiEngine.cs: loopback lifecycle and WinMM output
- TabletMidiPad.csproj: application project
TabletMidiPad is an independent project and is not affiliated with, sponsored by, or endorsed by Wacom, Microsoft, Ableton, or Tracktion. Product and company names are trademarks of their respective owners.
TabletMidiPad is licensed under the MIT License. See LICENSE. Redistributed dependency notices are in THIRD-PARTY-NOTICES.txt.



