Skip to main content

mftd

A thin, adaptable API for programatically configuring Midi Fighter Twister midi controllers, and integrating them in Touch Designer projects.

Firmware support

0.3.0 and later target the 2026 firmware (build 2026-06-01 or newer — the Midi Fighter Utility gates the same behaviour on fw_version >= 0x20230c11).

That release renumbered two enums by insertion, so running 0.3.0 against older firmware fails silently rather than loudly — the stale value selects a different, valid function:

Value Pre-2026 meaning 2026 meaning
EncoderSwitchActionType 6 Shift Encoder (Hold) Encoder Fine Adjust
SideSwitchAction 12 Cycle Bank Bank 2

Use 0.2.0 for pre-2026 firmware. 0.3.0 also adds device config addresses 33–38 (colour map, animation channels, sleep timer and animation, bank change animations), which older firmware does not report — get_device_config() raises on a response missing any declared address.

Build

Generate inlined source using inline-importer:

# Prepare destination
rm -f dist/mftd.py
mkdir -p dist

# Build
inline-python -p mftd -e mftd/__init__.py -o dist/mftd.py

Touch Designer Usage

When running inside TouchDesigner the library uses a midioutCHOP named midiOut to communicate with the Midi Fighter Twister. The library will create this operator if it is missing.

Release files for mftd 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mftd 0.3.0
File Size Uploaded
mftd-0.3.0.tar.gz 28.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for mftd 0.3.0
File Interpreter ABI Platform
mftd-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 58.7 kB

Release files / mftd-0.3.0.tar.gz

Download URL mftd-0.3.0.tar.gz
Size 28.9 kB
Tags Source
SHA-256 checksum
How to use checksums
a62fe924119e807964fe6ccde07ddc1eb6b2c9b31a091187e550a4a211ea677e
BLAKE2b-256 checksum
How to use checksums
966c4e37bb0fb15abe65fe14997a5104455891dc4f53299ff2bcb2b72081b94c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.17 {"installer":{"name":"uv","version":"0.12.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / mftd-0.3.0-py3-none-any.whl

Download URL mftd-0.3.0-py3-none-any.whl
Size 29.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6a8bdea21e9bba0047082e813123913aac0796b3a237ab57f6c7770c2e1e24e6
BLAKE2b-256 checksum
How to use checksums
1404cd8cb4808c9a66930590cd2d4553f2485d9d8d0cb464c763ff27d374a95e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.17 {"installer":{"name":"uv","version":"0.12.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

0.4.0

2 release files

This release

0.3.0 This release

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page