pixelTANGO Developer Reference: CVS: $Revision: 1.1 $ $Date: 2005-11-26 22:21:06 $ Required Externals: entry, Gem, OSC, pool, popup, prepend, pwd, tosymbol, tot, zexy, py Memento Note: (Put this in the pt.abstraction how-to) DO NOT USE a $0-in send or receive in any pt compatible abstraction. This s/r is reserved for memento functions. Creating .app using tcl/tk 8.4.9 standalone: 1. Duplicate Miller's pd.app 2. replace frameworks with those from tcl/tk standalone 3. copy the "Wish Shell.rsrc" file as "Pd.rsrc" to Resources 4. Copy the "Wish Shell" exec from tcl/tk standalone/MacOS to MacOS as "Pd" 5. Add set tk::mac::CGAntialiasLimit 0 in pd.tk (aka AppMain.tcl) OPTIONAL for Antialiasing 6. cd Resource/src then ./configure && make OPTIONAL perhaps for s_inter.c hack HACKS: (bad programming that is there just to make things work and need to be replaced by a better system!) delay 250 in register-head.pd is used to make sure that all abstractions have gotten the layerNum before sending the "register-head 0" message. Internal (Helper) Abstractions: Global Receives: Receive Name: Value: Notes: pt.loopBack layerNum [list] This receive is used to send data from a lower abstraction to an upper through bus. Only when the head matches is it sent. pt.layerNumDone layerNum When all abstractions in a layer get the layerNum, through control-bus, send this signal back to header to start abstraction registration by sending signal "register-head 0" through control-bus. pt.registerDone layerNum When the register-tail gets the register signal then send the layer number of the done layer and use this signal to generate the OSC names. pt.currentPreset float Set the current preset Value pt.videoPlaneSize 2 float list Sends the current gemwindow size to pt.video for filling screen pt.windowResolution 2 float list Sends the current gemwindow resolution to pt.feedback for good responce pt.osc osc message All modules not in layers get OSC messages from this receive. pt.updateArrays bang Updates dir2abstractionArray arrays OSC Names: General: pt.window /pt/window/fullscreen Fullscreen on Primary (0/1 for On/Off) /pt/window/fsaa Full Scene Anti-Aliasing (6) (0/1 for On/Off) /pt/window/light Render Lighting Effects (0/1 for On/Off) /pt/window/cursor Cursor Visibility (0/1 for On/Off) /pt/window/r Background Red Component (0 to 1) /pt/window/g Background Green Component (0 to 1) /pt/window/b Background Blue Component (0 to 1) /pt/window/resolution Window Resolution (0:640x480,1:1024x512,2:512x512) /pt/window/framerate Render Framerate (0:15fps,1:30fps,2:60fps,3:100fps) pt.interp /pt/interp/smoothness How fast to interpolate (1 Slow to 100 for Fast) /pt/interp/type Interpolation Type (0-Low-Pass, 1-Linear, 2-None) pt.light /pt/light/[i]/x X position of Light (? to ?) /pt/light/[i]/y Y position of Light (? to ?) /pt/light/[i]/z Z position of Light (? to ?) /pt/light/[i]/r Amount of red Light (0 to 1) /pt/light/[i]/g Amount of green Light (0 to 1) /pt/light/[i]/b Amount of blue Light (0 to 1) pt.animate /pt/animate/frame Set the Keyframe (0 to NumberOfKeyFrames) (This is NOT state-saved) Headers: pt.layer /pt/[l]/vis Layer Visibility (0/1, turn on/off gemhead(s) ) Modifiers: [l] for Layer Num (pt.layer creation argument) [i] for abstraction Instance name (starting with 1) pt.fader /pt/[l]/pt.fader/[i]/r Red Value (0 to 1) /pt/[l]/pt.fader/[i]/g Green Value (0 to 1) /pt/[l]/pt.fader/[i]/b Blue Value (0 to 1) /pt/[l]/pt.fader/[i]/a Alpha Value (0 to 1) /pt/[l]/pt.fader/[i]/alpha Turn Alpha Belending on/off (0/1) pt.translate /pt/[l]/pt.translate/[i]/x X Translation (-4 to 4) /pt/[l]/pt.translate/[i]/y Y Translation (-4 to 4) /pt/[l]/pt.translate/[i]/z Z Translation (-4 to 4) pt.rotate /pt/[l]/pt.rotate/[i]/x X Rotation (-180 to 180 Degrees) /pt/[l]/pt.rotate/[i]/y Y Rotation (-180 to 180 Degrees) /pt/[l]/pt.rotate/[i]/z Z Rotation (-180 to 180 Degrees) pt.scale /pt/[l]/pt.scale/[i]/s XYZ Scale (0.1 to 7) pt.squeeze /pt/[l]/pt.squeeze/[i]/x X Scale (0.1 to 4) /pt/[l]/pt.squeeze/[i]/y Y Scale (0.1 to 4) /pt/[l]/pt.squeeze/[i]/z Z Scale (0.1 to 4) pt.feedback /pt/[l]/pt.feedback/[i]/x_off Left Edge of Capture Area /pt/[l]/pt.feedback/[i]/y_off Top Edge of Capture Area /pt/[l]/pt.feedback/[i]/x_size Width of Capture Area /pt/[l]/pt.feedback/[i]/y_size Height of Capture Area /pt/[l]/pt.feedback/[i]/type Type of feedback: 0:snap,1:snap2tex pt.entry /pt/[l]/pt.entry/[i]/text List defining text /pt/[l]/pt.entry/[i]/font-index Index # for font. (change to symbol in future?) /pt/[l]/pt.entry/[i]/font-size Point size for font pt.layerfx /pt/[l]/pt.layerfx/[i]/amount Amount of effect (0 to 1) /pt/[l]/pt.layerfx/[i]/fx-index Index # for effect (now 0 to 11) pt.live /pt/[l]/pt.live/[i]/width Pixel Width of Captured Frames (DO NOT change while render window is open!) /pt/[l]/pt.live/[i]/height Pixel Height of Captured Frames " pt.loop /pt/[l]/pt.loop/[i]/loop Loop on/off (1/0) /pt/[l]/pt.loop/[i]/in-point Loop in point (0-100%) /pt/[l]/pt.loop/[i]/out-point Loop out point (0-100%) /pt/[l]/pt.loop/[i]/rate playback speed in ms/frame /pt/[l]/pt.loop/[i]/direction Loop direction (0-forward, 1-reverse, 2-ping-pong) pt.filelist /pt/[l]/pt.filelist/[i]/directory Directory in which to look for files /pt/[l]/pt.filelist/[i]/pattern Glob pattern to select files eg *.mov