MidiVid uses plugins to achieve most of its functionality. A plugin is a chunk of code that presents itself to MidiVid in a standard way. MidiVid can load and use new plugins, as long as they communicate with MidiVid in this standard way. The best part is, the way that these plugins talk to MidiVid is well documented, so other developers can write new plugins, you can download them, and they'll just work.
MidiVid uses two different kinds of plugins: Sources, and Effects. A Source plugin provides a stream of data that can be displayed or modified by an Effect plugin, and an Effect plugin takes a data source and does something with it. While this is their most common use, Effect plugins don't have to work from data sources. They can do other things, like send audio to a sound card, send out MIDI information, or send data over a network to some other program or other machine.
Source plugins are used indirectly, when an effect plugin requests them. Check out the page on choosing sources for more information.
Effect plugins are assigned to notes in MidiVid through the Notes Panel.
MidiVid GPU currently ships with these plugins, though this list is constantly growing:
- AVI Source: Reads video data from a Video for Windows AVI file.
- Image Source: Reads a single frame of data from an image file. File formats include BMP, JPEG, PNG, and TGA.
- Capture Source: Reads video data from an active capture device, configured in the Performance Options Capture panel.
- Framebuffer Loopback Source: Reads video data from the current framebuffer. Using this source allows you to take a file or capture source, display it with an effect, then read result back and put it through another effect. By layering a number of different effect plugins very complicated visuals can be achieved.
These are the workhorses of MidiVid, and most have numerous parameters and modes of operation. Many of their parameters can be varied by note velocity (how hard you hit the note on a MIDI keyboard or other device). They also generally expose a number of parameters on the Knob Shelf, which can be manipulated manually, or through continuous controllers.
- Color Fill: The most basic of the effect plugins. This effect simply paints the screen with a solid color.
- Display: This is the 2nd most basic effect, and a MidiVid staple. Simply displays a source on the screen, though you can position the display anywhere, at any size, or angle. Using the display plugin to display the current frame buffer can create some cool "feedback" effects.
- Blend: Mimics PhotoShop layer blending modes (Dissolve, Darken, Multiply, Burn, etc)
- Blur: Applies a variable blur filter to a video source.
- Brighten/Dim: Brightens or dims a video source.
- Chroma Key: Uses a hue value and an envelope to make parts of a source transparent
- Crosshatch: Draws a video source in a pencil-sketch or halftone style
- Fade: Fades a video source in, or out, over time.
- Fractal Shuffle: Moves pixels around an image according to a fractal equation.
- Glow: Applies a variable strength glow to a video source.
- HSV Modify: Allows you to modify a sources hue, saturation, and brightness in real time.
- Invert: Inverts a video source, either as a negative image or with a color-preserving brightness invert.
- Kaleidoscope: Applies a kaleidoscope effect to a video source.
- Outline: Draws outlines over hard edges on a video source.
- Pixel Shuffle: Uses one source as a template for how to move pixels around on another source.
- Radial Blur: Blurs an image from the middle out toward the edges
- Smooth: Applies an edge-preserving smooth filter to a video source.
- Solarize: Reduces the color precision of a source
- Tile: Tiles a source across the screen many times, with zoom and rotation
- Warp: Distorts a video source in numerous ways.
- Wipe: Uses a video source as a transition template. Anything displayed after this plugin executes will be excluded from some areas of the screen.
- Cube Wall: Draws a wall of rotating cubes, with a source projected on them.
- Cubist: Applies a source to the sides of a 3D cube.
- Display Spectrum : Draws a 3D audio spectrum as a scrolling landscape
- Sphere Pulse: Draws a video source on a pulsing blob-like sphere, or torus
- Tunnel: Shows the source being drawn into / coming out of a straight tunnel.
- Wormhole: Shows the source being drawn into / coming out of a wormhole.
- Polarity: Draws constantly moving ring segments of color
- Rays: Draws moving rays of color
- String Theory: Draws vibrating loops that fade in and out
- Twister: Draws a constantly changing spiral of rotating objects
- Sample Source: Captures a sequence of frames to an active sample. You can learn more about setting up and using a sample on the Video Sampler page.
- MiniSSC COM1/2: Sends servo control messages over serial ports COM1 and COM2, allowing you to control up to 512 connected servo motors. Useful for controlling robotics or other physical media. For more info, check out the robotics section on http://www.midivid.com, or get info on the Serial Servo Controller at http://www.seetron.com/ssc.htm.