Pixys is not the next visualizer with those psychedelic effects.
It also is not just a simple collage creator.
In fact, it lives a bit in the gap between those two.
A Pixys project contains scenes.
A scene is a collection of layers, and responds to a midi note number.
This way, a project can contain up to 128 scenes.
Each scene can have an unlimited number of layers.
Those layers can be automated with parameter changes (512 parameters, dynamically assignable) or audio levels (16 mono inputs).
Automatable properties are color, transparency, positioning, rotation and zoom. (Effects are planned in new beta's to come)
A layer contains images. (in this beta only 1 per layer)
Those images can be manipulated with different tools to shape them and create transparent regions.
Why a VST-plugin?
In 1 word : Automation!
DAW's nowadays have incredible automation possibilities. All kind of curves, lfo's and what's more : you can record everything.
So, why reinvent the wheel.
Surely, there were some technical obstacles to take.
Pixys should absolutely not interfere with the audio, no matter how complex the video is.
That's why all code is running in separate threads.
The GUI and the video engine are both completely separated from the GUI/Audio thread of your DAW
The video engine renders everything in GPU, leaving the CPU cycles to your DAW.
Getting started...
The basics.(Video shows how to create a layer and use the basic tools for picture manipulation.)
Modes, tools and actions
View mode
Layers aren't selectable.
Set cues. [Mouse-wheel] to zoom, click and drag to pan.
Automate cues. (Record will be available in next betas)
Tool-Pencil
Freeform selection.
Selection path will be closed automatically.
Tool-Line
Click to set starting point
And then hold [Shift] to add line segments.
Selection path will be closed automatically.
Tool-Rectangle
Rectangular selection.
Hold [Shift] for square.
Tool-Ellipse
Elliptical selection.
Hold [Shift] for circle.
Tool-Magic Wand
Selection according to color.
Adjustable tolerance.
Scene mode
Add layers with drag 'n drop
Select layers. (multiple layers=hold [Shift]
Set layers. [Mouse-wheel] to zoom, click and drag to pan.
Set width, height and rotation angle.
Click on a tool will start Edit mode.
Action-Replace
Replace layer.
Return to Scene mode.
Action-Add
Add layer.
Stay in Edit mode to add more.
Action-Cut
Cut transparent regions in layer.
Stay in Edit mode to add more.
Action-Cancel
Cancel edit.
Return to Scene mode.
Action-Save
Save layer in catalog. (needs further development).
Action-Delete
Delete selected layer(s).
Action-Extra
Opens extra window with tree view and properties.
Extra
Treeview : allows to change scene, select layer(s)(hold [Shift]=multiple), click and drag layer to change z-order.
Name : Name of scene or layer if selected. Confirm with [Enter]
Locked : layer is unselectable in screen.
Blending modes : all blending is done in GPU, except "Colorize" (not recommended when colors are automated).
Anchor points define how width/height of a layer is automated.
Listview and other buttons : see automation.
Automation
In the listview you can assign a parameter to an automatable item.
If you start a new project, all 512 parameters are named "Unused-"+parameter number.
If you select an item in the listview (click in first column), and click the "Link"-button, a new parameter is assigned to that item.
This parameter is renamed to the name of the layer + the item's letter.
P.e. you assign item Pos-X of layer "MyPhoto" -> the parameters name becomes "MyPhoto_X".
Most Daws will automatically use that new name.
This makes it much easier to see what is automating what item.
Clicking in the second column (link), you can type an existing parameter number to assign to that item.
This is useful if you want to use the same parameter to automate multiple items.
To remove the parameter-link, just type 0 (zero) into that input field and confirm with [Enter].
An example : you want to zoom an item and leave the Width/Height ratio intact.
First you select "Width" in the listview, and then click "Link".
The new assigned parameter is exposed to the host with the new name, in the listview however the number of the parameter is shown
Then you click in the second column of the "Height" row and you type in the same number as in the "Width" row.
In this second column you can also type an "i" + a number between 1 and 16.
The "i" stands for "input from mono-line". This way you assign audio levels to an item.
The audio level is an RMS value.
Set Min/Max
When you assign a new parameter to an item, you'll see that the min/max values are automatically filled.
You have to consider that automation between host and plugin is bi-directional.
A host can send automation to a plugin, but a plugin can also send automation to the host.
Normally this automation data are a series of values between 0 and 1.
If you start moving a layer in the screen of Pixys, and this layer has it's auto-items "Pos-X" and "Pos-Y" linked to some parameters,
Pixys must send those series of values between 0 and 1 to the host.
Consider a filter frequency knob in a synth. When the filter is completely closed, the value is 0, when fully opened the value is 1.
So, this a why a min/max value is automatically given when an item is linked for the first time.
In the case of Pos-X, the min value will become 0 minus the width of the layer, and the max value will be 1280 (the width of the screen).
If you click in the min/max columns however, you can assign different values (both positive as negative and "min" may be greater than "max").
The combination of freely assignable parameters together with variable min/max values make the automation in Pixys quite unique!
Things like assigning the same parameter to Pos-X and rotation for example. See what happens when you move that layer...;-)
Cues
A cue is the zoom/pan state of a complete scene. A bit like a camera view.
Unlike automatable items, cues do not have min and max values, they are just states.
To set a cue (no layers should be selected) switch to View mode.
Click in the listview on the cue row you wish to set and set zoom/pan (Mouse-Wheel/Click 'n drag) in the screen.
A good practice is to leave cue-1 unset, and use the other 5 available cues.
The moment you start automating those cues (linking of a parameter is the same as with layers),
you'll notice that a cue picks up it's position from the previous cue.
That's why it's a good idea to have 1 cue that is left unset.
The automation data from the host (those series of values between 0 and 1), determines the zoom/pan state between previous and current.
Work in progress
Rendering
Multi image per layer
Link to external picture editor
Effects...(trails, ghosts, no psychedelics!)
Scene copy/duplicate/delete
Combining layers.
???
It has been tested with following hosts :
Reaper v5.x : best to set "Save minimal undo states" !!
Live v10.x
RnT2 v2.x
Mulab v8.x, versions below 8 will not react on automation send from Pixys (coming from another thread)