PytaVSL: OSC API

Method paths, property names and slide/text/scene/state names are always case insensitive.

Engine
  
  Exposed methods:
  
  (from PytaVSL)
  
    /pyta/clone slide clone_name
  
      Create a clone slide
        slide: target slide name (can't be a clone nor a group)
        clone_name: new clone name (replaces any previously created clone with the same name)
      
    /pyta/create_text name font
  
      Create text object
        name: text name
        font: font name (as defined in text.py)
      
    /pyta/group slides group_name
  
      Create slide group
        slides: slide name pattern
        group_name: new group's name (replaces any previously created group with the same name)
  
      Note: some effects don't work on groups: mask, warp
      
    /pyta/load [files ...]
  
      Load files to slides
        files: file path or glob patterns. Each slide is named after the file (whitout the extension)
      
    /pyta/record path
  
      Record output to video file
        path: video path
      
    /pyta/record_stop 
  
      Stop recording output
      
    /pyta/stop 
  
      Shutdown pytaVSL
      
    /pyta/unclone clone_name
  
      Remove clone slide
        clone_name: clone's name
      
    /pyta/ungroup group_name
  
      Remove slide group
        group_name: group's name
      
  (from OscNode)
  
    /pyta/get property return_port
  
      Send property's current value to return_port at /slide_address/get/reply
        property: exposed osc property
        return_port: port number, ip:port string, or valid full osc address
      
    /pyta/set property [value ...]
  
      Set a property
        property: exposed osc property
        value: new value (items with default values can be omitted)
      
    /pyta/subscribe property return_port
  
      Subscribe to property's updates and send them to return_port at /slide_address/subscribe/update
        property: exposed osc property
        return_port: (optional) port number, ip:port string, or valid full osc address
      
    /pyta/unsubscribe property [return_port ...]
  
      Unsubscribe from property's updates
        property: exposed osc property
        return_port: (optional) port number, ip:port string, or valid full osc address
               if omitted, applies to all registered ports
      
  (from Scenes)
  
    /pyta/scene_export file_or_name file=None
  
      Save scene to file (visible slides/texts/clones/groups' state)
        file_or_name: scene slot name or file path to save current scene
        file: file path (if file_or_name is a slot name)
      
    /pyta/scene_import [files ...]
  
      Load scene files
        files: file path or glob patterns. Each scene is named after the file (whitout the extension)
      
    /pyta/scene_recall name
  
      Recall scene (visible slides/texts/clones/groups' state)
        name: slot name
      
    /pyta/scene_save name
  
      Save current scene (visible slides/texts/clones/groups' state)
        name: slot name
      
  
  Exposed properties:
  
  (from PytaVSL)
  
    select [slide=None]
      
      selected slide's name (exposes selected slide's methods on osc address /pyta/selected/<method>)
      initial: [None]
      
    select_stroke [stroke]
      
      draw a green stroke on selected slide (0|1)
      initial: [1]
      
    status []
      
      Status (read-only):
            - "ready": running
            - "loading": currently loading slides
      initial: ["ready"]
      

Post Processing
  
  Exposed methods:
  
  (from Animable)
  
    /pyta/post_process/animate property [args ...]
  
      Animate a property
        property: exposed osc property
        args: [from ..] [to ...] duration loop=0 easing="linear"
          from: initial value(s) (items with default values must be omitted)
          to: destination value(s) (items with default values must be omitted)
          duration: animation duration in seconds
          loop: omitted / 0 (no loop), 1 (infinte loop) or -1 (infinite back-and-forth)
          easing: easing function (case-insentive), optionally suffixed with "in" or "out"
  
        note: loop and easing can be interchanged
        available easing functions: linear, random, back, bounce, circular, cubic, elastic, exponential, quad, quartic, quintic, sine
  
      
    /pyta/post_process/animate_stop [properties ...]
  
      Stop animation
        property: exposed osc property (stop all animations if omitted)
      
    /pyta/post_process/strobe property [args ...]
  
      Strobe a property
        property: exposed osc property
        args: [from ..] [to ...] period ratio
          from: initial value(s) (items with default values must be omitted)
          to: destination value(s) (items with default values must be omitted)
          duration: strobe period in seconds
          ratio: time proportion spent on "from" (0<>1)
      
    /pyta/post_process/strobe_stop [properties ...]
  
      Stop strobe
        property: exposed osc property (stop all strobes if omitted)
      
  (from OscNode)
  
    /pyta/post_process/get property return_port
  
      Send property's current value to return_port at /slide_address/get/reply
        property: exposed osc property
        return_port: port number, ip:port string, or valid full osc address
      
    /pyta/post_process/set property [value ...]
  
      Set a property
        property: exposed osc property
        value: new value (items with default values can be omitted)
      
    /pyta/post_process/subscribe property return_port
  
      Subscribe to property's updates and send them to return_port at /slide_address/subscribe/update
        property: exposed osc property
        return_port: (optional) port number, ip:port string, or valid full osc address
      
    /pyta/post_process/unsubscribe property [return_port ...]
  
      Unsubscribe from property's updates
        property: exposed osc property
        return_port: (optional) port number, ip:port string, or valid full osc address
               if omitted, applies to all registered ports
      
  (from State)
  
    /pyta/post_process/log property=None
  
      Print object's state in the console
        property: name of the property to display (all when omitted)
      
    /pyta/post_process/recall name="quicksave"
  
      Restore all properties, looped animations and strobes from a save slot
        name: slot name
      
    /pyta/post_process/reset 
  
      Reset all properties, animations and strobes
      
    /pyta/post_process/save name="quicksave"
  
      Save all properties, looped animations and strobes in a save slot
        name: slot name
      
  
  Exposed properties:
  
  (from SlideBase)
  
    align [h, v]
      
      horizontal and vertical alignment (center|left|right, center|top|bottom)
      initial: ["center", "center"]
      
    align_h [align]
      
      horizontal alignment (center|left|right)
      initial: ["center"]
      
    align_v [align]
      
      vertical alignment (center|top|bottom)
      initial: ["center"]
      
    alpha [alpha]
      
      object opacity (0<>1)
      initial: [1.0]
      
    color [r, g, b]
      
      rgb balance (0<>1)
      initial: [0.5, 0.5, 0.5]
      
    color_strobe [strobe]
      
      random color strobing (0|1)
      initial: [0]
      
    mesh_debug [debug]
      
      wireframe mode (0|1)
      initial: [0]
      
    mesh_size [x, y]
      
      mesh definition (number of tiles on the x and y-axis)
      initial: [1, 1]
      
    offset [x, y]
      
      texture offset (normalized)
      initial: [0.0, 0.0]
      
    position [x, y, z]
      
      object xyz offset to alignment (0<>1)
      initial: [0.0, 0.0, 0.0]
      
    position_x [x]
      
      object x-offset (0<>1, bottom to top)
      initial: [0.0]
      
    position_y [y]
      
      object y-offset (0<>1, left to right)
      initial: [0.0]
      
    position_z [z]
      
      object z-axis offset (near to far)
      initial: [0.0]
      
    rotate [rx, ry, rz]
      
      object rotation around xyz axis (deg)
      initial: [0.0, 0.0, 0.0]
      
    rotate_x [rx]
      
      object rotation around x axis (deg)
      initial: [0.0]
      
    rotate_y [ry]
      
      object rotation around y axis (deg)
      initial: [0.0]
      
    rotate_z [rz]
      
      object rotation around z axis (deg)
      initial: [0.0]
      
    scale [sx, sy]
      
      object xy scaling
      initial: [1.0, 1.0]
      
    tiles [x, y]
      
      texture tiling (normalized)
      initial: [1.0, 1.0]
      
    visible [visible]
      
      object visibility (0|1)
      initial: [0]
      
    zoom [zoom]
      
      object scaling (scale shorthand)
      initial: [1.0]
      
  (from Effect)
  
    brightness [value]
      
      brightness (0<>1)
      initial: [1.0]
      
    charcoal [value]
      
      charcoal effect (size)
      initial: [0.0]
      
    contrast [value]
      
      contrast (0<>1)
      initial: [1.0]
      
    fish [value]
      
      fish effect(-1<>1)
      initial: [0.0]
      
    hue [value]
      
      hue shift (0<>1)
      initial: [0.0]
      
    invert [value]
      
      invert colors (0|1)
      initial: [0]
      
    key_color [r, g, b]
      
      key rgb color (0<>1)
      initial: [0.0, 0.0, 0.0]
      
    key_threshold [value]
      
      discard pixels when color distance to key_color is below this threshold (0-1)
      initial: [0.0]
      
    mask [slide=""]
      
      slide name to use as a mask (empty or ommitted to reset)
      initial: [""]
      
    mask_hardness [strength]
      
      mask hardness (0<>1)
      initial: [0.0]
      
    mask_threshold [thresh]
      
      mask threshold (0<>1)
      initial: [1.0]
      
    noise [density]
      
      noise (density)
      initial: [0.0]
      
    rgbwave [value]
      
      rgbwave effect (strength)
      initial: [0.0]
      
    saturation [value]
      
      saturation (0<>1)
      initial: [1.0]
      
  (from Perspective)
  
    perspective [perspective]
      
      enable perspective (0|1)
      initial: [0]
      
  (from Warp)
  
    warp_1 [x, y]
      
      top left warping
      initial: [0.0, 0.0]
      
    warp_2 [x, y]
      
      top right warping
      initial: [0.0, 0.0]
      
    warp_3 [x, y]
      
      top left warping
      initial: [0.0, 0.0]
      
    warp_4 [x, y]
      
      bottom left warping
      initial: [0.0, 0.0]
      

Slides
  
  Exposed methods:
  
  (from Animable)
  
    /pyta/slide/<name>/animate property [args ...]
  
      Animate a property
        property: exposed osc property
        args: [from ..] [to ...] duration loop=0 easing="linear"
          from: initial value(s) (items with default values must be omitted)
          to: destination value(s) (items with default values must be omitted)
          duration: animation duration in seconds
          loop: omitted / 0 (no loop), 1 (infinte loop) or -1 (infinite back-and-forth)
          easing: easing function (case-insentive), optionally suffixed with "in" or "out"
  
        note: loop and easing can be interchanged
        available easing functions: linear, random, back, bounce, circular, cubic, elastic, exponential, quad, quartic, quintic, sine
  
      
    /pyta/slide/<name>/animate_stop [properties ...]
  
      Stop animation
        property: exposed osc property (stop all animations if omitted)
      
    /pyta/slide/<name>/strobe property [args ...]
  
      Strobe a property
        property: exposed osc property
        args: [from ..] [to ...] period ratio
          from: initial value(s) (items with default values must be omitted)
          to: destination value(s) (items with default values must be omitted)
          duration: strobe period in seconds
          ratio: time proportion spent on "from" (0<>1)
      
    /pyta/slide/<name>/strobe_stop [properties ...]
  
      Stop strobe
        property: exposed osc property (stop all strobes if omitted)
      
  (from OscNode)
  
    /pyta/slide/<name>/get property return_port
  
      Send property's current value to return_port at /slide_address/get/reply
        property: exposed osc property
        return_port: port number, ip:port string, or valid full osc address
      
    /pyta/slide/<name>/set property [value ...]
  
      Set a property
        property: exposed osc property
        value: new value (items with default values can be omitted)
      
    /pyta/slide/<name>/subscribe property return_port
  
      Subscribe to property's updates and send them to return_port at /slide_address/subscribe/update
        property: exposed osc property
        return_port: (optional) port number, ip:port string, or valid full osc address
      
    /pyta/slide/<name>/unsubscribe property [return_port ...]
  
      Unsubscribe from property's updates
        property: exposed osc property
        return_port: (optional) port number, ip:port string, or valid full osc address
               if omitted, applies to all registered ports
      
  (from State)
  
    /pyta/slide/<name>/log property=None
  
      Print object's state in the console
        property: name of the property to display (all when omitted)
      
    /pyta/slide/<name>/recall name="quicksave"
  
      Restore all properties, looped animations and strobes from a save slot
        name: slot name
      
    /pyta/slide/<name>/reset 
  
      Reset all properties, animations and strobes
      
    /pyta/slide/<name>/save name="quicksave"
  
      Save all properties, looped animations and strobes in a save slot
        name: slot name
      
  
  Exposed properties:
  
  (from SlideBase)
  
    align [h, v]
      
      horizontal and vertical alignment (center|left|right, center|top|bottom)
      initial: ["center", "center"]
      
    align_h [align]
      
      horizontal alignment (center|left|right)
      initial: ["center"]
      
    align_v [align]
      
      vertical alignment (center|top|bottom)
      initial: ["center"]
      
    alpha [alpha]
      
      object opacity (0<>1)
      initial: [1.0]
      
    color [r, g, b]
      
      rgb balance (0<>1)
      initial: [0.5, 0.5, 0.5]
      
    color_strobe [strobe]
      
      random color strobing (0|1)
      initial: [0]
      
    mesh_debug [debug]
      
      wireframe mode (0|1)
      initial: [0]
      
    mesh_size [x, y]
      
      mesh definition (number of tiles on the x and y-axis)
      initial: [1, 1]
      
    offset [x, y]
      
      texture offset (normalized)
      initial: [0.0, 0.0]
      
    position [x, y, z]
      
      object xyz offset to alignment (0<>1)
      initial: [0.0, 0.0, 0.0]
      
    position_x [x]
      
      object x-offset (0<>1, bottom to top)
      initial: [0.0]
      
    position_y [y]
      
      object y-offset (0<>1, left to right)
      initial: [0.0]
      
    position_z [z]
      
      object z-axis offset (near to far)
      initial: [0.0]
      
    rotate [rx, ry, rz]
      
      object rotation around xyz axis (deg)
      initial: [0.0, 0.0, 0.0]
      
    rotate_x [rx]
      
      object rotation around x axis (deg)
      initial: [0.0]
      
    rotate_y [ry]
      
      object rotation around y axis (deg)
      initial: [0.0]
      
    rotate_z [rz]
      
      object rotation around z axis (deg)
      initial: [0.0]
      
    scale [sx, sy]
      
      object xy scaling
      initial: [1.0, 1.0]
      
    tiles [x, y]
      
      texture tiling (normalized)
      initial: [1.0, 1.0]
      
    visible [visible]
      
      object visibility (0|1)
      initial: [0]
      
    zoom [zoom]
      
      object scaling (scale shorthand)
      initial: [1.0]
      
  (from Gif)
  
    gif_duration [duration]
      
      gif total duration (override frames' durations)
      initial: [0]
      
    gif_frame [frame]
      
      current gif frame
      initial: [0]
      
    gif_position [position]
      
      relative gif time position (0<>1)
      initial: [0.0]
      
    gif_speed [speed]
      
      gif playback speed (0=paused, negative=reverse)
      initial: [1.0]
      
  (from Effect)
  
    brightness [value]
      
      brightness (0<>1)
      initial: [1.0]
      
    charcoal [value]
      
      charcoal effect (size)
      initial: [0.0]
      
    contrast [value]
      
      contrast (0<>1)
      initial: [1.0]
      
    fish [value]
      
      fish effect(-1<>1)
      initial: [0.0]
      
    hue [value]
      
      hue shift (0<>1)
      initial: [0.0]
      
    invert [value]
      
      invert colors (0|1)
      initial: [0]
      
    key_color [r, g, b]
      
      key rgb color (0<>1)
      initial: [0.0, 0.0, 0.0]
      
    key_threshold [value]
      
      discard pixels when color distance to key_color is below this threshold (0-1)
      initial: [0.0]
      
    mask [slide=""]
      
      slide name to use as a mask (empty or ommitted to reset)
      initial: [""]
      
    mask_hardness [strength]
      
      mask hardness (0<>1)
      initial: [0.0]
      
    mask_threshold [thresh]
      
      mask threshold (0<>1)
      initial: [1.0]
      
    noise [density]
      
      noise (density)
      initial: [0.0]
      
    rgbwave [value]
      
      rgbwave effect (strength)
      initial: [0.0]
      
    saturation [value]
      
      saturation (0<>1)
      initial: [1.0]
      
  (from Perspective)
  
    perspective [perspective]
      
      enable perspective (0|1)
      initial: [0]
      
  (from Group)
  
    sequence_index [index]
      
      currently visible child by index (z-sorted)
      initial: [0]
      
    sequence_mode [mode]
      
      sequence mode (0=disabled, 1=enabled)
      initial: [0]
      
    sequence_position [index]
      
      relative sequence position, normalized index (0<>1)
      initial: [0]
      
  (from Video)
  
    video_loop [loop]
      
      video looping state (0|1)
            if not looping, video_speed will be set to 0 when the video reaches the last frame
      initial: [0]
      
    video_speed [speed]
      
      video playback speed (0=paused, no reverse playback, high speed is cpu expensive)
      initial: [1.0]
      
    video_time [time]
      
      current video time in seconds (cpu expensive for any value other than 0)
      initial: [0]
      
  (from Warp)
  
    warp_1 [x, y]
      
      top left warping
      initial: [0.0, 0.0]
      
    warp_2 [x, y]
      
      top right warping
      initial: [0.0, 0.0]
      
    warp_3 [x, y]
      
      top left warping
      initial: [0.0, 0.0]
      
    warp_4 [x, y]
      
      bottom left warping
      initial: [0.0, 0.0]
      

Texts
  
  Exposed methods:
  
  (from Animable)
  
    /pyta/text/<name>/animate property [args ...]
  
      Animate a property
        property: exposed osc property
        args: [from ..] [to ...] duration loop=0 easing="linear"
          from: initial value(s) (items with default values must be omitted)
          to: destination value(s) (items with default values must be omitted)
          duration: animation duration in seconds
          loop: omitted / 0 (no loop), 1 (infinte loop) or -1 (infinite back-and-forth)
          easing: easing function (case-insentive), optionally suffixed with "in" or "out"
  
        note: loop and easing can be interchanged
        available easing functions: linear, random, back, bounce, circular, cubic, elastic, exponential, quad, quartic, quintic, sine
  
      
    /pyta/text/<name>/animate_stop [properties ...]
  
      Stop animation
        property: exposed osc property (stop all animations if omitted)
      
    /pyta/text/<name>/strobe property [args ...]
  
      Strobe a property
        property: exposed osc property
        args: [from ..] [to ...] period ratio
          from: initial value(s) (items with default values must be omitted)
          to: destination value(s) (items with default values must be omitted)
          duration: strobe period in seconds
          ratio: time proportion spent on "from" (0<>1)
      
    /pyta/text/<name>/strobe_stop [properties ...]
  
      Stop strobe
        property: exposed osc property (stop all strobes if omitted)
      
  (from OscNode)
  
    /pyta/text/<name>/get property return_port
  
      Send property's current value to return_port at /slide_address/get/reply
        property: exposed osc property
        return_port: port number, ip:port string, or valid full osc address
      
    /pyta/text/<name>/set property [value ...]
  
      Set a property
        property: exposed osc property
        value: new value (items with default values can be omitted)
      
    /pyta/text/<name>/subscribe property return_port
  
      Subscribe to property's updates and send them to return_port at /slide_address/subscribe/update
        property: exposed osc property
        return_port: (optional) port number, ip:port string, or valid full osc address
      
    /pyta/text/<name>/unsubscribe property [return_port ...]
  
      Unsubscribe from property's updates
        property: exposed osc property
        return_port: (optional) port number, ip:port string, or valid full osc address
               if omitted, applies to all registered ports
      
  (from State)
  
    /pyta/text/<name>/log property=None
  
      Print object's state in the console
        property: name of the property to display (all when omitted)
      
    /pyta/text/<name>/recall name="quicksave"
  
      Restore all properties, looped animations and strobes from a save slot
        name: slot name
      
    /pyta/text/<name>/reset 
  
      Reset all properties, animations and strobes
      
    /pyta/text/<name>/save name="quicksave"
  
      Save all properties, looped animations and strobes in a save slot
        name: slot name
      
  
  Exposed properties:
  
  (from SlideBase)
  
    align [h, v]
      
      horizontal and vertical alignment (center|left|right, center|top|bottom)
      initial: ["center", "center"]
      
    align_h [align]
      
      horizontal alignment (center|left|right)
      initial: ["center"]
      
    align_v [align]
      
      vertical alignment (center|top|bottom)
      initial: ["center"]
      
    alpha [alpha]
      
      object opacity (0<>1)
      initial: [1.0]
      
    color [r, g, b]
      
      rgb balance (0<>1)
      initial: [1.0, 1.0, 1.0]
      
    color_strobe [strobe]
      
      random color strobing (0|1)
      initial: [0.0]
      
    offset [x, y]
      
      texture offset (normalized)
      initial: [0.0, 0.0]
      
    position [x, y, z]
      
      object xyz offset to alignment (0<>1)
      initial: [0.0, 0.0, -100.0]
      
    position_x [x]
      
      object x-offset (0<>1, bottom to top)
      initial: [0.0]
      
    position_y [y]
      
      object y-offset (0<>1, left to right)
      initial: [0.0]
      
    position_z [z]
      
      object z-axis offset (near to far)
      initial: [-100.0]
      
    rotate [rx, ry, rz]
      
      object rotation around xyz axis (deg)
      initial: [0.0, 0.0, 0.0]
      
    rotate_x [rx]
      
      object rotation around x axis (deg)
      initial: [0.0]
      
    rotate_y [ry]
      
      object rotation around y axis (deg)
      initial: [0.0]
      
    rotate_z [rz]
      
      object rotation around z axis (deg)
      initial: [0.0]
      
    scale [sx, sy]
      
      object xy scaling
      initial: [1.0, 1.0]
      
    tiles [x, y]
      
      texture tiling (normalized)
      initial: [1.0, 1.0]
      
    visible [visible]
      
      object visibility (0|1)
      initial: [0]
      
    zoom [zoom]
      
      object scaling (scale shorthand)
      initial: [1.0]
      
  (from Effect)
  
    brightness [value]
      
      brightness (0<>1)
      initial: [1.0]
      
    charcoal [value]
      
      charcoal effect (size)
      initial: [0.0]
      
    contrast [value]
      
      contrast (0<>1)
      initial: [1.0]
      
    fish [value]
      
      fish effect(-1<>1)
      initial: [0.0]
      
    hue [value]
      
      hue shift (0<>1)
      initial: [0.0]
      
    invert [value]
      
      invert colors (0|1)
      initial: [0]
      
    key_color [r, g, b]
      
      key rgb color (0<>1)
      initial: [0.0, 0.0, 0.0]
      
    key_threshold [value]
      
      discard pixels when color distance to key_color is below this threshold (0-1)
      initial: [0.0]
      
    mask [slide=""]
      
      slide name to use as a mask (empty or ommitted to reset)
      initial: [""]
      
    mask_hardness [strength]
      
      mask hardness (0<>1)
      initial: [0.0]
      
    mask_threshold [thresh]
      
      mask threshold (0<>1)
      initial: [1.0]
      
    noise [density]
      
      noise (density)
      initial: [0.0]
      
    rgbwave [value]
      
      rgbwave effect (strength)
      initial: [0.0]
      
    saturation [value]
      
      saturation (0<>1)
      initial: [1.0]
      
  (from Perspective)
  
    perspective [perspective]
      
      enable perspective (0|1)
      initial: [0]
      
  (from Text)
  
    line_height [line_height]
      
      line height
      initial: [1.0]
      
    outline [outline]
      
      text outline width (0<>1)
      initial: [0]
      
    outline_color [r, g, b]
      
      text outline color (0<>1)
      initial: [1.0, 0.0, 0.0]
      
    size [size]
      
      text size (1=full height, "auto"=fit, "current"=fix current size if "auto")
      initial: ["auto"]
      
    spacing [spacing]
      
      letter spacing
      initial: [1.0]
      
    text [text, glitch_duration=0]
      
      text string with optional glitch duration
      initial: [" "]