Skip to content

jarrettgsmith/td-midi-controller

Repository files navigation

TDMidiController

A TouchDesigner MIDI controller package, scaffolded against the TDPackageDevProjectTemplate pattern.

This project is a valid TouchDesigner package source project with:

  • packaged root .tox metadata exposed from src/tdmidicontroller/__init__.py
  • lowercase Python distribution/import naming in pyproject.toml and src/
  • tdpackagemanager included 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.toe for local development

Requirements

  • Python 3.14
  • Prefer Python 3.14t free-threaded executables for development when available.
  • TouchDesigner 2026.20407

Install (development)

Preferred:

tools/setup_env.sh

or on Windows:

tools\setup_env.bat

Manual 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.

Tools Workflow

Copy tools/devSettings.example.yaml to tools/devSettings.yaml, then set:

  • touchdesignerBin to the local TouchDesigner bin directory
  • repositoryUrl to the target PyPI upload endpoint when publishing
  • indexUrl, extraIndexUrl, and indexUsername if you use a private package index for dev installs

Environment variables override file settings where supported. The scripts use:

  • TOUCH_TOUCHDESIGNER_BIN
  • TOUCH_PIP_EDITABLE_INSTALL
  • TOUCH_PACKAGEMANAGER_INDEX_URL
  • TOUCH_PACKAGEMANAGER_EXTRA_INDEX_URL
  • TOUCH_PACKAGEMANAGER_INDEX_USERNAME
  • TOUCH_PACKAGEMANAGER_READ_PAT
  • TOUCH_PACKAGEMANAGER_WRITE_PAT
  • TOUCH_PACKAGEMANAGER_TWINE_PAT
  • TWINE_REPOSITORY_URL
  • TWINE_USERNAME
  • TWINE_PASSWORD

Then use:

  • tools/setup_env.bat or tools/setup_env.sh
  • tools/configure_index.bat or tools/configure_index.sh
  • tools/build_dist.bat or tools/build_dist.sh
  • tools/upload_dist.bat or tools/upload_dist.sh

Build Package

python -m build

Publish Package

Use the tools/upload_dist.* helpers after setting repositoryUrl in tools/devSettings.yaml to a full upload URL.

Exporting the root .tox

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.

License

Replace LICENSE and the project.license value in pyproject.toml with the license you want for your package before publishing or sharing it.

About

A generic midi controller POC for TouchDesigner.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors