Note: requires expertise with Max/MSP and Syphon
This first project is a simple Syphon Server that implements PTZ (pan, tilt, zoom) functionality for an input video digitally. Many later enhancements are planned that will involve more substantial video manipulation. This will be used for Image Magnification of a musical performer so efficient coding is crucial to minimize any video delay.
The app will use 5 MIDI Continuous Controller inputs to manipulate the video in the following ways:
Channel 1: Zoom video, 0-127, where 0= no zoom and 127=400%. Default=0.
Channel 2: Pan Left-Right (when zoomed), 0-127, where 0=100% left, i.e. any zoom crops only on right, and 127 will crop only on the left. Default=64.
Channel 3: Tilt Up-Down (when zoomed), 0-127 where 0 crops only from the bottom, and 127 crops only on the top. Default=64
Channel 4: Opacity, 0-127 where 0 is fully transparent. Default=127.
Channel 5: Damping Amount: 0-127, where 0 is no damping of changes in pan/tilt/zoom, and 127 is maximum. Default=64.
Changes in zoom are always from the center of the input image rather than the viewed crop, so if Channel 2 is currently 0 (pan 100% left) then increasing the zoom will result in the right side of the image being cropped as the zoom increases, but the left side will stay in view.
As the image will be shown on a large screen we need to smooth out (damp) changes in pan, tilt, and zoom. This can be implemented a number of ways. One is to output the 'moving average' of controller values that are read periodically, e.g. every 100ms. In this case the 'Damping Amount' would vary the number of historical values that are averaged to make the output: 0 would be none, and 127 could be 40 (4 seconds.)
The App should work on all Syphon sources but the hardware I'll be using is as follows:
The video input will be 720p60 provided by a Syphon server ('Black Syphon' reading video from a fixed Marshall CV-150M SDI camera on stage via a Black Magic Thunderbolt UltraStudio MiniRecorder). The output will ultimately be sent to the projector by ProPresenter over SDI using a Black Magic Thunderbolt Mini Monitor.
The hardware is a MacBook Pro.
In your proposal please describe your previous Syphon Max/MSP projects.
The most performant way to create this patch is to use a shader so that the video processing happens on the GPU. I have experience creating custom zoom/crop shaders in Max using [login to view URL], and am confidant that I can Daha Fazla