Skip to main content

ISF Shader

info

Click here to watch a video tutorial about ISF Shader.

This device was specifically designed to make it easier to interact with ISF shaders in Live. Generator-type shaders and effect-type shaders can both be loaded into the device, the only difference being that effect-type shaders manipulate textures that are fed into the device, and generator-type shaders generate visuals on their own, effectively "overwriting" any incoming texture.

Any of Videosync's effects can then be used to further manipulate the generated visuals by ISF Shader. Using multiple ISF Shader devices in the same chain is also supported, so generator-type shaders can be manipulated with effect-type shaders, effect-type shaders can further manipulate effect-type shaders, and so on.

ISF Shader Initial State

Shader library

The device comes with a curated collection of over 200 shaders, which can be directly accessed through the integrated browser in the Factory folder. The Factory and User folders are installed during the installation process and can be found at User Library/Videosync/ISF Shaders/.

It is also possible to drop a shader file from the Finder into ISF Shader. More ISF shaders can be found at editor.isf.video, where you can browse, preview and interact with shaders created by a broad community.

info

ISF Shader only supports files with the .fs extension.

Controlling the user interface

The column of round toggles on the left side is used to show or hide sections of ISF Shader.

  • Show/Hide Browser: This selector shows or hides the Shader Browser.
  • Show/Hide Configure Window: This selector shows or hides all available shader parameters in a floating window. Use the Configure Window to map the shader parameters to the Parameter Controls in the device, which, unlike the parameters in the floating window, are automatable.
  • Show/Hide Parameter Controls: This selector shows or hides the Parameter Controllers.
  • Show More Parameter Controls: This button increases the number of visible Parameter Controls.
  • Show Less Parameter Controls: This button decreases the number of visible Parameter Controls.
  • Show/Hide Information Panel: This selector shows or hides the Shader Information Panel.
info

Use the tabs below to read about ISF Shader's different user interface panels and its parameters.

ISF Shader Initial State

The left most section of ISF Shader is the Browser, which allows for browsing through the included Factory shaders, or any custom shaders inside the User folder. Both folders are installed into User Library/Videosync/ISF Shaders/.

Parameters

  • Factory/User: The browser is populated with all shaders found in the selected folder.
  • Browse: Opens a dialog to browse for a shader file.
  • Show: Populates the browser with the shaders that fall under the selected category, within the current folder.

Shaders with image inputs

Some shaders, and certainly Transition shaders, have image inputs. These can be compared to audio sidechain inputs. Whenever the currently selected shader has an unused image input, the following message appears in the Information Panel:

Burn, a transition shader

In case of the Burn shader, which is a Transition shader, the Configure Window contains two dropdown menus: startImage and endImage. These can be used to select the two tracks for which to create a transition.

Configure window of Burn shader Configure window of Burn shader

In the image below, ISF Shader is on track 1, and both its image inputs are set to Video 1 and Video 2. The Audio To outputs of the latter two tracks are set to "Sends Only", so that their output will only be visible in track 1. Muting the two tracks will achieve the same result, as long as the Sends aren't used.

Live's mixer routing settings
info

While browsing through different Transition shaders, the selected tracks for the startImage and endImage are retained.

Editing shaders

ISF shader files are actually just text files that can easily be modified with a text editor. One example where this may be convenient is when some parameters of a shader don't seem to describe their function as accurately as you may prefer, perhaps because the names are too long to fit above the dials. In this case it could be helpful to abbreviate parts of the name.

Below is an excerpt of the code of the Optical Flow Distort shader. Look for the "LABEL" tags; these are the names that will appear above the dials in ISF Shader. Make sure to look for any other places in the code where the same name is used, to make sure it matches with the new name.

{
"CATEGORIES": ["Distortion Effect"],
"DESCRIPTION": "Uses an optical flow mask to create a distortion",
"ISFVSN": "2",
"INPUTS": [
{
"NAME": "inputImage",
"TYPE": "image"
},
{
"NAME": "amt",
"TYPE": "float",
"MAX": 1,
"DEFAULT": 0.5,
"LABEL": "Distortion Amount",
"MIN": 0
},
{
"NAME": "maskHold",
"TYPE": "float",
"MAX": 1,
"DEFAULT": 0.98,
"LABEL": "Flow Persistence",
"MIN": 0
}
]
}

Error handling

After opening a shader file using the Edit File button, saved changes will immediately be applied by Videosync. Whenever a shader can not be compiled, errors are reported in the Information Panel, as well as in the Console window. These errors should help to resolve the issues preventing Videosync from compiling the shader.

Errors visible in the Information Panels

Custom interfaces for ISF Shaders

Besides using ISF Shader to load shaders, Videosync also supports building your own device interface for a shader, using Max for Live. For more information, see Building Plugins.