A TouchDesigner MIDI controller package, scaffolded against the TDPackageDevProjectTemplate pattern.
This project is a valid TouchDesigner package source project with:
- packaged root
.toxmetadata exposed fromsrc/tdmidicontroller/__init__.py - lowercase Python distribution/import naming in
pyproject.tomlandsrc/ tdpackagemanagerincluded as a runtime dependency- TouchDesigner package metadata in
[tool.touchdesigner] - TDPackageManager startup/build settings in
[tool.touchdesigner.tdpackagemanager] - TDPyEnvManager project env settings in
[tool.touchdesigner.tdpyenvmanager] - bundled
tools/scripts for local setup, build, index configuration, and upload workflows - a
workspace.toefor local development
- Python
3.14 - Prefer Python
3.14tfree-threaded executables for development when available. - TouchDesigner
2026.20407
Preferred:
tools/setup_env.shor on Windows:
tools\setup_env.batManual package install inside an already prepared environment:
python -m pip install -e .[dev]The dev extra includes build, twine, tdpackagetoolkit, and tdpyenvmanager.
If you open workspace.toe in TouchDesigner 2026.20407, TouchDesigner can create the project .venv automatically. The package install still needs to be run in that environment.
Copy tools/devSettings.example.yaml to tools/devSettings.yaml, then set:
touchdesignerBinto the local TouchDesignerbindirectoryrepositoryUrlto the target PyPI upload endpoint when publishingindexUrl,extraIndexUrl, andindexUsernameif you use a private package index for dev installs
Environment variables override file settings where supported. The scripts use:
TOUCH_TOUCHDESIGNER_BINTOUCH_PIP_EDITABLE_INSTALLTOUCH_PACKAGEMANAGER_INDEX_URLTOUCH_PACKAGEMANAGER_EXTRA_INDEX_URLTOUCH_PACKAGEMANAGER_INDEX_USERNAMETOUCH_PACKAGEMANAGER_READ_PATTOUCH_PACKAGEMANAGER_WRITE_PATTOUCH_PACKAGEMANAGER_TWINE_PATTWINE_REPOSITORY_URLTWINE_USERNAMETWINE_PASSWORD
Then use:
tools/setup_env.batortools/setup_env.shtools/configure_index.batortools/configure_index.shtools/build_dist.batortools/build_dist.shtools/upload_dist.batortools/upload_dist.sh
python -m buildUse the tools/upload_dist.* helpers after setting repositoryUrl in tools/devSettings.yaml to a full upload URL.
The Python package expects a packaged root .tox at:
src/tdmidicontroller/TDMidiController.tox
Open workspace.toe in TouchDesigner, right-click the root component you want to publish, and Save Component .tox to that path. python -m build will include it in the wheel.
Replace LICENSE and the project.license value in pyproject.toml with the license you want for your package before publishing or sharing it.