ptz cam

ptzcam · output

CV control of a physical PTZ camera (NexiGo P610, Logitech PTZ Pro 2) — pan/tilt/zoom knobs plus matching CV inputs, sent as MIDI sysex to the native PT-PTZ helper (tools/pt-ptz), which drives the cameras over USB (one MIDI pair and one module per camera). Each axis follows the mode the camera reports in the bind handshake: absolute axes take normalized positions, velocity axes take signed rates with a watchdog-guarded stop; sends are coalesced to ~10 Hz. Carries no audio or video — the camera picture arrives through a normal camera input.

Drives a physical PTZ camera from the patch. It sends MIDI sysex to the PT-PTZ helper app running on the same machine, which translates into USB camera control — the camera physically pans, tilts and zooms. The helper exposes one MIDI pair per connected camera (PT-PTZ-…); the card picks which camera this module drives, so two modules can run two cameras. The module carries no audio or video of its own — the camera's picture reaches the rack through a normal camera input. Each axis follows what the camera itself reports in the bind handshake: an ABSOLUTE axis (NexiGo P610 pan/tilt/zoom, Logitech zoom) treats knob+CV as a position, ±1 spanning the full mechanical range; a VELOCITY axis (Logitech PTZ Pro 2 pan/tilt) treats knob+CV as a rate — sign is direction, zero (with a small deadzone) stops, and the helper halts motion by itself if the app ever stops streaming, so a dropped page cannot leave the camera panning. PAN, TILT and ZOOM knobs are the base value; the matching CV inputs ADD to the knob, so with knobs at default a patched LFO or joystick IS the position (or rate) and the knobs become stage trim. SLEW rate-limits absolute-axis motion (1 = instant); velocity axes ignore it — a commanded stop must never be slewed. Sends are coalesced to ~10 per second.

the faceplate

ptz campan_cvcvtilt_cvcvzoom_cvcvaudiocvgatepitch
3 inputs · 0 outputs · 4 params

inputs

idcablewhat it does
pan_cvcvPan CV, ±1, added to the PAN knob. On an absolute-axis camera the sum is the pan position; on a velocity-axis camera it is the pan rate (sign = direction, near-zero = stop).
control voltage (CV)
tilt_cvcvTilt CV, ±1, added to the TILT knob. Position on an absolute axis, rate on a velocity axis.
control voltage (CV)
zoom_cvcvZoom CV, added to the ZOOM knob; the summed 0..1 spans wide to full telephoto.
control voltage (CV)

params

idlabelrangedefaultcurve
panpan-1..10linear
tilttilt-1..10linear
zoomzoom0..10linear
slewslew0..10.3linear

controls

controlwhat it does
panBase pan, ±1. Position on an absolute-axis camera, rate on a velocity-axis one. CV on pan_cv adds to it.
slewRate limit on absolute-axis motion, fractions of full range per second on a square curve; 1 is instant. Velocity axes ignore it.
tiltBase tilt, ±1. Position on an absolute axis, rate on a velocity axis. CV on tilt_cv adds to it.
zoomBase zoom, 0 wide to 1 full telephoto. CV on zoom_cv adds to it.

source

ptzcam.ts on GitHub.

Generated from packages/web/src/lib/{audio,video}/module-registry.ts · repo