# Limitations and verification

Portfolio documentation snapshot. This describes the recorded development environment and historical checks, not a fresh runtime verification. References to development scripts and verification reports below refer to the original source workspace; those files are not included in this standalone download. The public project and media archive are at https://github.com/starphazed/akai-apc-mini-mk2-led-controller.

## Hardware and environment

- Only Windows / TouchDesigner 2025.33230 / APC Mini mk2 was used during development. No compatibility matrix exists for other builds, OSes, firmware, or controllers.
- The configured device name and main MIDI port must match the local setup. MIDI is local; there is no automatic device discovery/recovery.
- Eight bottom LEDs are red and eight side LEDs are green. Their levels are thresholded to Off/On/Blink; they are not RGB or continuously dimmable. Shift has no LED.
- MIDI status is a local send/error report, not acknowledgement from the controller. Thirty output updates/second is a throttle, not a measured guaranteed frame rate.
- The `.toe` demo is saved with MIDI enabled. The reusable `.tox` is disabled. MIDI Off does not blank hardware; avoid multiple enabled copies controlling one device.

## Rendering and interaction

- One background and one reactive effect at a time. No arbitrary effect stack or scene system.
- Manual/Add/External and alpha layering are different operations; Add can saturate channels and brightness.
- Reactive Ripple always uses its own RGB cycle; Flash is white. Hidden advanced color parameters affect generated backgrounds, not the reactive overlay.
- Width is shared by the two ripple renderers. Fade and Repeat affect pressed ripples only.
- Speed changes use absolute TD time in procedural formulas; changing speed can jump phase rather than smoothly accelerate. No phase-continuity guarantee is implemented.
- Event history is capped at 32; dense input/repeats can discard older rings. Shift shares the final side button's spatial origin.
- Media stretches the full frame to square. Prepare cropping/letterboxing upstream. TOP-to-CHOP readback is synchronous. No measured video throughput or latency guarantee is available.
- Output is numeric RGB without calibration/gamma matching to physical pads. Physical colors can differ from the monitor. Source decoding, file paths, and camera availability belong to the upstream network.
- Faders only monitor physical input. No Ableton mixer/transport functions, MIDI clock sync, audio reactivity, scene management, or other hardware protocol is implemented.
- Settings is centered on the primary display and constrained to one display. Very small/high-DPI displays and multi-monitor arrangements have not been exhaustively tested; the main viewer has TD's normal positioning behavior.

## Repository limitations

Current scripts resolve paths from their supplied `__file__`; run them using `docs/development.md` in the source workspace. They are not installers. The reorganized script paths have been statically checked, but not rerun inside TouchDesigner. Several scripts are incremental migrations; running an earlier stage on a later project can overwrite newer callbacks. Some embedded README DATs and older tests describe earlier versions.

Existing `.toe` snapshots, backups, exported counters, selected colors, and last-input strings are development state, not factory defaults. No license has been selected in the inspected source workspace. These source files alone do not establish a GitHub release/tag history; the separate published portfolio repository includes its media archive release.

## Verification

These are **recorded development checks**, not a certification or a test suite rerun as part of the documentation update.

| Evidence | What it establishes |
|---|---|
| `layer_controls_verification.json` | Latest 12 TD checks: independent speeds, image background + reactive overlay, orientation, rerun, settings, physical-only faders, no operator errors in the fixture. |
| `stack_verification.json` | Independent layer choices and red/green/blue outputs at repeat origins; compositing and fader state. |
| `media_verification.json` | 8×8 conversion, corners, alpha, changing source, missing input, preview agreement; predates media-as-background routing. |
| `hold_verification.json` | Press/release/repeat behavior, multiple holds, Note Off and velocity-zero release simulations. |
| `window_fader_verification.json` | Read-only UI flags, simulated MIDI CC updates, centered window configuration. |
| `verification_results.json`, `ui_verification.json` | Original matrix/state/preview tests and early UI/portability checks. |
| `hardware_verification.json` | Human confirmed all eight physical pad rows after the packet-size fix, plus physical pad/fader input. |

Other JSON files record intermediate stages. Do not add their counts and call the total a current regression result. In particular, old fader and single-effect tests can conflict with the final design.

Not confirmed comprehensively on hardware: every later effect/color combination, every small LED, stacked-media appearance, and physical feel at all speeds. User media codecs and cameras were not tested by the generated TOP fixtures.

For this documentation pass, the current exported `.tox` and `.toe` were inspected from temporary expanded copies. Documentation links, script syntax, and unchanged project binaries were checked; the live TD project was not modified or rerun.

Recorded JSON reports listed above are retained in `docs/verification/` in the source workspace. They describe previous development runs, not validation performed during folder organization.
